在人物上新建腳本GamePlayer.cs
using UnityEngine; using System.Collections; public class GamePlayer : MonoBehaviour { //是否被拖拽 private bool onDrag = false; //旋轉速度 public float speed = 6f; //阻尼速度 private float zSpeed; //鼠標沿水平方向拖拽的增量 private float X; //鼠標沿豎直方向拖拽的增量 //private float Y; //鼠標移動的距離 private float mXY; //接受鼠標按下的事件 void OnMouseDown() { X = 0f; //Y = 0f; } //鼠標拖拽時的操作 void OnMouseDrag() { Debug.Log("鼠標拖拽"); onDrag = true; X = -Input.GetAxis("Mouse X"); //獲得鼠標增量 //Y = Input.GetAxis ("Mouse Y"); //mXY = Mathf.Sqrt (X * X + Y * Y); //計算鼠標移動的長度 // if(mXY == 0f){ mXY=1f; } } //計算鼠標移動的長度// mXY = Mathf.Sqrt (X * X); if(mXY == 0f) { mXY=1f; } } //獲取阻尼速度 float RiSpeed () { if (onDrag) { zSpeed = speed; } else { //if (zSpeed> 0) //{ //通過除以鼠標移動長度實現拖拽越長速度減緩越慢 // zSpeed -= speed*2 * Time.deltaTime / mXY; //} //else //{ zSpeed = 0; //} } return zSpeed; } void LateUpdate() { transform.Rotate(new Vector3(0, X, 0) * RiSpeed(), Space.World); if (!Input.GetMouseButtonDown(0)) { onDrag = false; } } }
