我這裏從網上下載一個角色模型,裏面有一組動畫。有站立、奔跑、殺怪等學習
咱們來實現角色的先後左後移動,即鍵盤上的WSDA鍵,這裏由於沒有行走的動畫。索性就用奔跑代替了!!動畫
暫時先不計較代碼冗餘的狀況。由於我也是剛學習的新手。一切爲了先實現效果。this
1 using UnityEngine; 2 using System.Collections; 3 4 public class modelMove : MonoBehaviour 5 { 6 7 public float speed = 2; 8 // Use this for initialization 9 void Start() 10 { 11 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 18 //保存移動前位置 19 Vector3 oldPosition = transform.position; 20 if (Input.GetKey(KeyCode.W)) 21 { 22 transform.Translate(Vector3.forward * Time.deltaTime * speed, Space.World); 23 animation.Play("run");//開始奔跑 24 25 } 26 if (Input.GetKey(KeyCode.S)) 27 { 28 transform.Translate(Vector3.back * Time.deltaTime * speed, Space.World); 29 animation.Play("run");//開始奔跑 30 31 } 32 if (Input.GetKey(KeyCode.A)) 33 { 34 transform.Translate(Vector3.left * Time.deltaTime * speed, Space.World); 35 animation.Play("run");//開始奔跑 36 37 } 38 if (Input.GetKey(KeyCode.D)) 39 { 40 transform.Translate(Vector3.right * Time.deltaTime * speed, Space.World); 41 animation.Play("run");//開始奔跑 42 43 } 44 45 46 //設置角色方向 47 /* 48 * LookAt(Vector3 worldPosition); 49 * 手冊上的解釋:旋轉物體,這個向前向量指向target的當前位置。 50 51 * 我是這樣理解的: 52 假設: 53 * 移動前的向量爲 v1 54 * 移動後的向量爲 v2 55 * 那麼當前目標物體就會旋轉指向v2-v1的方向向量 56 * LookAt()方法。要使用世界座標系 Space.World 57 * transform.position - oldPosition :移動前的方向-移動後的方向=目標向量 58 * transform.position + transform.position - oldPosition :在當前位置轉向 59 */ 60 transform.LookAt(transform.position + transform.position - oldPosition); 61 } 62 }