csharpcode:
[code]01 | using UnityEngine; |
02 | using System.Collections; |
03 | //
直接放在相机上,控制相机的旋转和缩放 // |
04 | public class CameraContro
: MonoBehaviour { |
06 | public Transform target; |
07 | public float xSpeed=200,
ySpeed=200, mSpeed=10; |
08 | public float yMinLimit=-50,
yMaxLimit=50; |
09 | public float distance=7,
minDistance=2, maxDistance=30; |
11 | //bool
needDamping = false; |
12 | public bool needDamping
= true ; |
19 | public void SetTarget(
GameObject go ) |
25 | //
Use this for initialization |
27 | Vector3
angles = transform.eulerAngles; |
32 | //
Update is called once per frame |
39 | //use
the light button of mouse to rotate the camera |
40 | if (
Input.GetMouseButton(0) ) |
42 | x
+= Input.GetAxis( "Mouse
X" )
* xSpeed * 0.02f; |
43 | y
-= Input.GetAxis( "Mouse
Y" )
* ySpeed * 0.02f; |
45 | y
= ClampAngle(y, yMinLimit, yMaxLimit); |
47 | //print(Input.GetAxis("Mouse
X")); |
48 | //print(
Input.GetAxis("Mouse Y")); |
52 | //<a
href="http://www.unitymanual.com" target="_blank" class="relatedlink">unity3d</a>教程手册:www.unitymanual.com |
56 | distance
-= Input.GetAxis( "Mouse
ScrollWheel" )*mSpeed; |
57 | distance
= Mathf.Clamp(distance, minDistance, maxDistance); |
60 | Quaternion
rotation = Quaternion.Euler(y, x, 0.0f); |
61 | Vector3
disVector = new Vector3(
0.0f, 0.0f, -distance ); |
62 | Vector3 position = rotation * disVector +target.position; |
66 | transform.rotation
= Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime*damping); |
67 | transform.position
= Vector3.Lerp(transform.position, position, Time.deltaTime*damping); |
71 | transform.rotation
= rotation; |
72 | transform.position
= position; |
74 | //Unity3D教程手册:www.unitymanual.com |
79 | static float ClampAngle
( float angle, float min, float max) |
85 | return Mathf.Clamp (angle,min,max); |
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理