Unity組件與腳本之介紹

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)想要的功能。


1.png

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

2.png

實(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;
    }

}
}
03.png

總結(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);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容