Unity之一天一个技术点(十三)---以指定对象为中心,根据鼠标位置旋转照相机

来源:互联网 发布:itunes软件备份 编辑:程序博客网 时间:2024/05/16 12:16

var target : Transform;var distance = 10.0;var xSpeed = 250.0;var ySpeed = 120.0;var yMinLimit = -20;var yMaxLimit = 80;private var x = 0.0;private var y = 0.0;@AddComponentMenu("Camera-Control/Mouse Orbit")partial class MouseOrbit { }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 (target) {        x += Input.GetAxis("Mouse X") * xSpeed * 0.02;        y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;                                y = ClampAngle(y, yMinLimit, yMaxLimit);                              var rotation = Quaternion.EulerAngles(y * Mathf.Deg2Rad, x * Mathf.Deg2Rad, 0);        var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;               transform.rotation = rotation;        transform.position = position;    }}static function ClampAngle (angle : float, min : float, max : float) {        if (angle < -360)                angle += 360;        if (angle > 360)                angle -= 360;        return Mathf.Clamp (angle, min, max);}

以指定对象为中心,根据鼠标位置旋转照相机



0 0
原创粉丝点击