遊戲中相當常使用的功能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...