Unity編碼篇—獲取組件,顯示隱藏和銷毀
我們想要訪問游戲物體的組件 , 首先要找到這個游戲物體 , 然后才能找到這個物體身上的某個組件去改變它. 我們使用 GetComponent 方法獲取組件 :
using UnityEngine;
public class Test : MonoBehaviour
{
// 定義一個cube對象
private Transform m_Cube;
private void Start()
{
// 獲取這個cube身上的 Transform 組件
m_Cube = GameObject.Find("Cube").GetComponent<Transform>();
}
private void Update()
{
// cube 繞著y軸旋轉(zhuǎn)
m_Cube.Rotate(Vector3.up * Time.deltaTime * 30f);
// 如果按下鼠標左鍵
if (Input.GetMouseButtonDown(0))
{
// cube 的顏色變藍
m_Cube.GetComponent<MeshRenderer>().material.color = Color.cyan;
}
// 如果按下鼠標右鍵
if (Input.GetMouseButtonDown(1))
{
// cube變大一倍
m_Cube.localScale = Vector3.one * 2f;
}
// 如果按下鼠標中鍵
if (Input.GetMouseButtonDown(2))
{
// 將cube隱藏
m_Cube.gameObject.SetActive(false);
}
// 如果按下鍵盤 D 鍵
if (Input.GetKeyDown(KeyCode.D))
{
// 3s 后銷毀這個 cube (這里的gameObject指的就是這個cube本身)
Destroy(gameObject, 3f);
}
}
}
代碼已寫好注釋 , 可以對比注釋看
我們在unity新建一個cube , 給這個cube掛上上面的腳本 , 然后運行 unity
運行效果 :
cube運行狀態(tài)下一直在繞Y軸旋轉(zhuǎn) ;
按下鼠標左鍵 cube變藍 ;
按下鼠標右鍵 cube變大1倍 ;
這里我們先在 Start 方法里獲取了這個cube的 Transform 組件 , 而 Transform 組件是場景里每個游戲?qū)ο蠖加械慕M件 , 它控制物體的 位置 ,旋轉(zhuǎn),大小
我們獲取到了cube身上的 Tranform 組件 , 我們就可以改變這個cube的位置,大小,旋轉(zhuǎn)等屬性 .

請輸入圖片描述
Transform組件
同理 ,我們也可以獲取cube的 Box Collider 組件 , 將cube的 Is Trigger 勾選上 , 這個留給大家做練習 , 如果不會的可以留言 , 我在為大家寫一下 .
現(xiàn)在為大家介紹設置游戲物體的顯示和隱藏 SetActive() :
SetActive方法里面需要傳一個 bool 值 :
true : 表示顯示物體 ;
false : 表示隱藏物體 ;
運行效果 :
當我們按下鼠標中鍵的話 , cube會消失 ;
最后為大家介紹 Destroy 方法 :
銷毀游戲?qū)ο蠹捌浣M件 , 當我們不需要這個游戲物體了 , 我們就需要將這個物體銷毀 .
格式 :
Destroy(GameObject) : 銷毀某個物體(要銷毀的游戲?qū)ο?.
Destroy(GameObject , time) : 延遲一段時間后 , 銷毀這個物體 (第一個參數(shù)是要銷毀的游戲?qū)ο?, 第二個參數(shù)是延遲的時間).
運行效果 :
當按下鍵盤 D 鍵的時候 , 3s后 cube被銷毀 。
更多資源請點擊:https://bycwedu.vipwan.cn/promotion_channels/630597732