纳金网

标题: 如何使用Unity进行360度观察物体? [打印本页]

作者: 狂风大尉    时间: 2015-1-31 18:25
标题: 如何使用Unity进行360度观察物体?
1.新建js脚本,命名为RotateObserve,双击脚本进行编辑,代码如下
  1. var target:Transform;
  2. var distance = 10.0;
  3. var xSpeed = 250.0;
  4. var ySpeed = 120.0;
  5. var yMinLimit = -20;
  6. var yMaxLimit = 80;
  7. var distanceMin = 3;
  8. var distanceMax = 15;
  9. var x = 0.0;
  10. var y = 0.0;
  11. //@script AddComponentMenu("Camera-Control/Mouse Orbit");
  12. function Start () {
  13.     var angles = transform.eulerAngles;
  14.     x = angles.y;
  15.     y = angles.x;
  16.     // Make the rigid body not change rotation
  17.     if (rigidbody)
  18.         rigidbody.freezeRotation = true;
  19. }
  20. function LateUpdate () {
  21.     if(Input.GetAxis("Fire1")==0)return;
  22.     if (target) {
  23.         x += Input.GetAxis("Mouse X") * xSpeed * distance* 0.02;
  24.         y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
  25.         var rotation = Quaternion.Euler(y, x, 0);
  26.         distance = Mathf.Clamp(distance - Input.GetAxis("Mouse ScrollWheel")*5, distanceMin, distanceMax);
  27.         var hit : RaycastHit;
  28.         if (Physics.Linecast (target.position, transform.position, hit)) {
  29.             distance -= hit.distance;
  30.         }
  31.         var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
  32.         transform.rotation = rotation;
  33.         transform.position = position;
  34.     }
  35. }
复制代码
2.将脚本拖曳至场景相机,将需要观察的物体拖曳至Transform下,运行即可。


作者: hariboot    时间: 2015-1-31 18:50
Thanks for sharing!




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5