Transform 組件
組件:Component,游戲物體的組成零件。
Unity3D 就是一款“組件式”游戲開發(fā)引擎,使用各種各樣的組件拼裝出我們 游戲物體,最終拼接出一款完整的游戲。
Unity3D 這款引擎提供了很多種類的組件,組成我們游戲世界最基本的元素。
Transform: 變換。 所有 的游戲物體都具備的一個組件,也是最最基礎(chǔ)的一個 組件,用于存儲游戲物體的基本信息。
屬性:
Position:位置;
Rotation:旋轉(zhuǎn);
Scale:縮放;
腳本
Start()方法:當(dāng)游戲運(yùn)行起來,就會馬上執(zhí)行,且只執(zhí)行一次。
Update()方法:循環(huán)調(diào)用,每幀調(diào)用一次。一秒鐘大概執(zhí)行 60 次。 幀:我們的游戲畫面是在不停的刷新的,沒刷新一次,就是一幀。
輸出調(diào)試:Debug.Log ();
Start()和 Update()方法都是 Unity3D 內(nèi)部的“事件方法”,不需要我
們?nèi)斯ふ{(diào)用,系統(tǒng)會自動調(diào)用和管理這些“事件方法”。
如何使用腳本?
1.直接將腳本拖拽到 Hierarchy 面板上物體身上; 2.直接將腳本游戲物體的 Inspector 面板上; 運(yùn)行游戲,腳本就會執(zhí)行。
Console 面板
Console:控制臺。用于輸出顯示游戲運(yùn)行過程中的調(diào)試信息。 功能按鈕:
Clear:清除功能,清除控制臺中的信息; Collapase:折疊功能,將相同的內(nèi)容合并到一條顯示,更新后面的數(shù)字; Clear on Play:運(yùn)行時清除之前的內(nèi)容;
如何使用 Transform 組件(變換組件)移動物體?
相關(guān)方法:
1 、gameObject.GetComponent<T>():獲取相應(yīng)組件的引用。 查找當(dāng)前游戲物體身上的某個組件,然后保存它的引用。
2、Transform.Translate(Vector3, Space):移動物體的位置。
游戲物體往某個方向移動;以自身坐標(biāo)系或世界坐標(biāo)系。
相關(guān)參數(shù)
Vector3[struct]:三維向量。 向量,可以表示一個方向,也可以表示一個位置。
Space[enum]:空間。 Space.Self:表示物體自身的坐標(biāo)系。 Space.World:表示物體所在的世界坐標(biāo)系。
注意:腳本是游戲物體的一部分,一般控制誰的腳本就掛載在誰的身上。
例子:
private Transform m_Transform;
//1次. init .
void Start () {
m_Transform = gameObject.GetComponent<Transform> ();
}
void Update () {
if (Input.GetKey (KeyCode.A)) {
m_Transform.Translate (Vector3.left * 0.1f, Space.World);
}
}
2、如何顯示和隱藏 某個主件?
a. 使用使用腳本掛載到主件上,實(shí)現(xiàn)想要的功能。

b. 前提要新建一個空物體,聲明一個公共變量。

實(shí)現(xiàn)代碼:
public class Test : MonoBehaviour {
// 聲明一個公共的 變量
public MeshRenderer m_MeshRenderer;
void Start () {
}
void Update () {
// 隱藏和顯示 “網(wǎng)格組件”
if (Input.GetKeyDown(KeyCode.Space))
{
m_MeshRenderer.enabled = !m_MeshRenderer.enabled;
}
}
}
或者: 使用 物體本身的做法。使用:gameObject
public class Test : MonoBehaviour {
void Start () {
}
void Update () {
// 隱藏和顯示 “網(wǎng)格組件”
if (Input.GetKeyDown(KeyCode.Space))
{
// gameObject:指 指該物體本身
gameObject.GetComponent<MeshRenderer> ().enabled = !gameObject.GetComponent<MeshRenderer> ().enabled;
}
}
}

總結(jié):
必須學(xué)會會使用組件的獲取、查詢、刪除、遍歷?
void Start () {
// 添加
gameObject.AddComponent<ParticleSystem> ();
// 查詢
ParticleSystem ps = gameObject.GetComponent<ParticleSystem> ();
// ParticleSystem ps1 = gameObject.GetComponentInChildren<ParticleSystem> ();
// ParticleSystem[] ps2 = gameObject.GetComponentsInChildren<ParticleSystem> ();
// ParticleSystem[] ps_parents = gameObject.GetComponentsInParent<ParticleSystem> ();
// 刪除
Destroy(ps);
}