本帖最后由 u75379946 于 2016-3-8 18:36 編輯 在上一次的學(xué)習(xí)中我們介紹了unity3D腳本生命周期,今天我們來看看如何使用簡單的腳本讓我們的角色動起來。 首先我們看一個簡單的: void Update () { float h = Input.GetAxis("Horizontal");//獲取水平方向值 float v = Input.GetAxis("Vertical");//獲取垂直方向值 transform.Translate(h,0,v);//通過Translate改變物體位置 }//通過坐標軸移動 將以上腳本拖給角色或物體,點擊Play,按上下左右即可實現(xiàn)簡單的移動了?。ㄗ⒁獠灰思觿傮w) 下面我們再來看一個相似的: void FixedUpdate() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(h,0,v); GetComponent<Rigidbody>().velocity = movement; }//通過控制剛體速度移動物體 同樣不要忘記加剛體組件,(上節(jié)講過一般涉及物理狀態(tài)的一般在FixedUpdate中寫) 下面還有一個方法:為角色添加CharacterController(這個組件自動為我們添加了重力和碰撞還有坡度識別等) CharacterController characterController; public float speed = 4f; void Start () { characterController = GetComponent<CharacterController>(); } void Update () { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(h, 0, v); characterController.SimpleMove(movement*speed); }//通過SimpleMove實現(xiàn)物體移動 下面我們看看如何實現(xiàn)相機跟隨物體移動:在Scripts文件夾下建立一個FollowTarget.cs,將一下代碼放入 public Transform target; public float smoothTime = 0.3F; private Vector3 velocity = Vector3.zero; void Update() { Vector3 targetPosition = target.TransformPoint(new Vector3(-5, 5, -5));//目標位置 transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);//相機平滑移動 }//相機跟隨目標物體平滑移動 將腳本拖到相機上面,在Inspector下方我們可以看到: ![]() 我們可以看到Target還有Smooth Time變量,此時我們可以把需要跟隨的角色目標拖到Target上,點擊Play,隨著目標的移動相機也在平滑的跟隨,此時你還可以通過調(diào)整Smooth Time來控制平滑速率噢。 好了,心動不如行動,今天的Achor講到的內(nèi)容雖然簡單,但是仍然需要你動手去實踐,跟多細節(jié)值得你去自己體會噢。 最近公眾微信中有很多朋友留言給Achor說:“由于剛?cè)腴T,學(xué)到的知識很多很雜,容易忘怎么辦!”今天送給大家的東西非常重要!!它可以幫助你記錄和保存你所學(xué)到的知識,方便你定期回顧和梳理知識,Achor也一直在用,正所謂獨樂樂不如眾樂樂,就分享給大家吧! ![]() 最后,微信公眾平臺:黑客畫家 以及我的 個人博客 :anchorart9.com 定期為大家分享游戲開發(fā)經(jīng)驗和行業(yè)最新資訊,需要的朋友可以關(guān)注一下我們相互學(xué)習(xí)哦! 本帖隱藏的內(nèi)容![]() |
|