本節(jié)要點(diǎn)
#1.變換組件移動物體
1.相關(guān)方法
gameObject.GetComponent<T>():獲取相應(yīng)組件的引用骏令。
查找當(dāng)前游戲物體身上的某個組件藻治,然后保存它的引用需忿。
Transform.Translate(Vector3, Space):移動物體的位置。
游戲物體往某個方向移動铺坞;以自身坐標(biāo)系或世界坐標(biāo)系。
2.相關(guān)參數(shù)
Vector3[struct]:三維向量挟憔。
向量抠藕,可以表示一個方向,也可以表示一個位置勺阐。
Space[enum]:空間卷中。
Space.Self:表示物體自身的坐標(biāo)系渊抽。
Space.World:表示物體所在的世界坐標(biāo)系蟆豫。
備注:腳本是游戲物體的一部分懒闷,一般控制誰的腳本就掛載在誰的身上。
#2.鍵盤控制移動方向
查使用鍵盤上的“W愤估,A帮辟,S,D”來控制游戲物體的前后左右移動灵疮。
場景視圖
關(guān)鍵代碼
public class StudentMove : MonoBehaviour {
private Transform m_Transform;
// Use this for initialization
void Start () {
//獲取相應(yīng)組件的引用,聲明同類型字段去接收
m_Transform=gameObject.GetComponent<Transform>();
}
// Update is called once per frame
void Update () {
//移動物體位置的關(guān)鍵語句
// m_Transform.Translate(Vector3.forward*0.1f,Space.World);
//參數(shù)1:Vector3移動物體的三維變量(枚舉類型),表示x荔棉,y闹炉,z;Space參數(shù)2:移動物體的坐標(biāo)系(枚舉類型)自身坐標(biāo)系或世界坐標(biāo)系
//0.1f 表示將當(dāng)前速度下調(diào)到原來十分之一润樱;切記加上f
//獲取相應(yīng)鍵控制方向渣触;w a s d
if (Input.GetKey(KeyCode.W))
{
m_Transform.Translate(Vector3.forward*0.1f,Space.World);//往前
}
if (Input.GetKey(KeyCode.S))
{
m_Transform.Translate(Vector3.back * 0.1f, Space.World);//向后
}
if (Input.GetKey(KeyCode.A))
{
m_Transform.Translate(Vector3.left * 0.1f, Space.World);//向左
}
if (Input.GetKey(KeyCode.D))
{
m_Transform.Translate(Vector3.right * 0.1f, Space.World);//向右
}
}
}
小結(jié)
游戲物體與組件.png
Unity API.png