unity獲取指令碼元件 獲取物件指令碼 變數 名稱

2021-10-12 15:06:35 字數 1393 閱讀 7976

遊戲中相當常使用的功能getcomponent,經常用來get(取得)物件上的component(元件)資訊,若沒有取得元件會回傳null值。

gameobject.getcomponent(「scriptname」);

如果發現要抓取getcomponent上的值為大寫可能就要注意一下原本的變數是否為小寫如圖1所示:

textmesh是3d text上原本就包含的component,可以發現到他所有變數都為大寫,但使用上並不是這樣。

1.unity會將開頭的英文本元自動轉換成大寫。例如 text > text。

2.而駝峰式的命名法textmesh會變成text mesh會讓人誤認為中間有空白字元

var vaule:string;

var scriptname;

var getvaule:string;

function start()

vaule=「you see me」;

function oncollisionenter(target : collision)

//當進入碰撞

debug.log(「oncollisionenter」);

//取得target(撞到的目標)上的script名稱

scriptname=target.gameobject.getcomponent(「mysetcomponent」);

debug.log(「script name: 」+scriptname);

//取得target(撞到的目標)上script的值

getvaule=target.gameobject.getcomponent(「mysetcomponent」).vaule;

debug.log(「get vaule: 」+getvaule);

function update()

if(transform.position.x<15)

transform.position+=vector3.right*time.deltatime*5;

var vaule:string;

function start()

vaule=「i love easyunity !」;

function oncollisionexit(target : collision)

//當離開碰撞

debug.log(「oncollisionexit」);

//傳送target(撞到的目標)上script的值

target.gameobject.getcomponent(「mygetcomponent」).vaule=「easyunity」;

debug.log(「target vaule: 」+target.gameobject.getcomponent(「mygetcomponent」).vaule);

結果:

unity獲取物件

unity提供了多種獲取某個物件的方法,1.gameobject.find name 2.gameobject.findgameobjectwithtag tag 3.gameobject.findwithtag tag find方法都是全場景尋找,算是unity裡最耗事的一種方法,通過tag尋找次...

unity獲取遊戲物件

recttransform tr this.getcomponent recttransform rect this.transform as recttransform 直接獲得物件身上的其它元件 類 button bb this.getcomponent panel center left bt...

Unity 獲取遊戲物件詳解

我覺得unity裡面的transform 和 gameobject就像兩個雙胞胎兄弟一樣,這倆哥們很要好,我能直接找到你,你也能直接找到我。我看很多人喜歡在類裡面去儲存gameobject物件。解決gameobject.find 無法獲取天生activie false的問題。private game...