Unity 3D 一个简单的角色控制脚本
之所以寫(xiě)這個(gè)腳本,是因?yàn)槲蚁肫鹆宋疫€是新手的時(shí)候,那時(shí)為了一個(gè)角色控制腳本百度了半天還是一無(wú)所獲,因?yàn)榭床欢?都寫(xiě)的太高級(jí)了
希望這個(gè)腳本能夠幫助那些 像曾經(jīng)的我一樣迷失于代碼中的新手們能夠清晰的理解這個(gè)角色控制的含義
?
1 ///角色控制腳本 2 3 public class Player : MonoBehaviour { 4 5 public float m_speed=1; //這個(gè)是定義的玩家的移動(dòng)速度 之所以Public是因?yàn)闉榱朔奖銓?duì)其進(jìn)行調(diào)節(jié) (public的屬性和對(duì)象會(huì)在Unity中物體的腳本選項(xiàng)中顯示出來(lái) 前提是你把腳本掛在了物體上) 6 7 void Update () //這個(gè)是刷新的意思 以幀為單位的大概每刷新一次1/20秒 8 9 { 10 11 float movex = 0; //這個(gè)代表的是玩家在x軸上的移動(dòng) 12 13 float movez = 0; //這個(gè)代表的是玩家在z軸上的移動(dòng) 14 15 if (Input.GetKey(KeyCode.W)) //這個(gè)意思是"當(dāng)按下W鍵時(shí)" 16 17 { 18 19 movez += m_speed * Time.deltaTime; //物體獲得在z軸方向上的增量 也就是向前 20 21 } 22 23 if (Input.GetKey(KeyCode.S)) //按下S鍵時(shí) 24 25 { 26 27 movez -= m_speed * Time.deltaTime; //后 28 29 } 30 31 if (Input.GetKey(KeyCode.A)) //A鍵 32 33 { 34 35 movex -= m_speed * Time.deltaTime; //左 36 37 } 38 39 if (Input.GetKey(KeyCode.D)) //D鍵 40 41 { 42 43 movex += m_speed * Time.deltaTime; //右 44 45 } 46 47 this.transform.Translate(new Vector3(movex,0,movez)); //這句代碼是把得到的偏移量通過(guò)translate(平移函數(shù))給玩家 從而使得玩家的位置得到改變 48 49 } }?
?
附上玩家的坐標(biāo)軸??圖中飛機(jī)就是玩家? 便于理解x軸z軸對(duì)玩家移動(dòng)方向的影響
?
同時(shí)附上Translate函數(shù)的圣典介紹:
Transform.Translate 平移
?
function Translate (translation : Vector3, relativeTo : Space = Space.Self) : void
Description描述
Moves the transform in the direction and distance of translation.
移動(dòng)transform在translation的方向和距離。
簡(jiǎn)單的說(shuō),向某方向移動(dòng)物體多少距離。
If relativeTo is left out or set to Space.Self the movement is applied relative to the transform's local axes. (the x, y and z axes shown when selecting the object inside the Scene View.) If relativeTo is Space.World the movement is applied relative to the world coordinate system.
如果relativeTo留空或者設(shè)置為Space.Self,移動(dòng)被應(yīng)用相對(duì)于變換的自身軸。(當(dāng)在場(chǎng)景視圖選擇物體時(shí),x、y和z軸顯示)如果相對(duì)于Space.World 移動(dòng)被應(yīng)用相對(duì)于世界坐標(biāo)系統(tǒng)。
?
using UnityEngine; using System.Collections;public class example : MonoBehaviour {void Update() {transform.Translate(Vector3.forward * Time.deltaTime);transform.Translate(Vector3.up * Time.deltaTime, Space.World);} }?
轉(zhuǎn)載于:https://www.cnblogs.com/qiaogaojian/p/5868561.html
總結(jié)
以上是生活随笔為你收集整理的Unity 3D 一个简单的角色控制脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 雪碧图
- 下一篇: canvas 移动光速特效-