1 //人物移动的一些基础属性 2 private float speed = 5; 3 private float h, v; 4 private Rigidbody rig; 5 private Camera cam; 6 private Animator anm; 7 private bool isMove=false; 8 // Use this for initialization 9 void Start () { 10 11 rig = gameObject.GetComponent<Rigidbody>();//寻找刚体组件 12 cam = Camera.main; //设置主摄像机 13 anm = gameObject.GetComponent<Animator>();//动画组件 14 } 15 16 // Update is called once per frame 17 void Update () { 18 //人物移动 19 h = Input.GetAxisRaw("Horizontal"); //寻找对应的轴 20 v = Input.GetAxisRaw("Vertical"); 21 Vector3 v3 = new Vector3(h, 0, v).normalized; 22 rig.velocity = v3 * speed;//给刚体施加一个力。 因为是施加力的原因 所以要把旋转给锁定 防止 物体翻滚。 23 rig.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezePositionY; 24 if (h == 0 && v == 0) 25 { 26 isMove = false;//这是动画系列 可以不用考虑 27 anm.SetBool("Move", false ); 28 } 29 else 30 { 31 isMove = true; 32 anm.SetBool("Move", true); 33 } 34 35 36 37 //人物朝向鼠标点击的方向 38 Ray ray = cam.ScreenPointToRay(Input.mousePosition); 39 RaycastHit hit; 40 if (Physics.Raycast (ray ,out hit,1<<8)) 41 { 42 Vector3 lookat = new Vector3(hit.point.x, transform.position.y, hit.point.z); 43 lookat = lookat - transform.position; 44 //旋转目标朝向 45 transform.rotation = Quaternion.LookRotation(lookat); 46 }