1.新建js脚本,命名为RotateObserve,双击脚本进行编辑,代码如下 - var target:Transform;
- var distance = 10.0;
- var xSpeed = 250.0;
- var ySpeed = 120.0;
- var yMinLimit = -20;
- var yMaxLimit = 80;
- var distanceMin = 3;
- var distanceMax = 15;
- var x = 0.0;
- var y = 0.0;
- //@script AddComponentMenu("Camera-Control/Mouse Orbit");
- function Start () {
- var angles = transform.eulerAngles;
- x = angles.y;
- y = angles.x;
- // Make the rigid body not change rotation
- if (rigidbody)
- rigidbody.freezeRotation = true;
- }
- function LateUpdate () {
- if(Input.GetAxis("Fire1")==0)return;
- if (target) {
- x += Input.GetAxis("Mouse X") * xSpeed * distance* 0.02;
- y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
- var rotation = Quaternion.Euler(y, x, 0);
- distance = Mathf.Clamp(distance - Input.GetAxis("Mouse ScrollWheel")*5, distanceMin, distanceMax);
- var hit : RaycastHit;
- if (Physics.Linecast (target.position, transform.position, hit)) {
- distance -= hit.distance;
- }
- var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
- transform.rotation = rotation;
- transform.position = position;
- }
- }
复制代码2.将脚本拖曳至场景相机,将需要观察的物体拖曳至Transform下,运行即可。
|