第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Unity3D:如何從附加到預(yù)制件的其他腳本中調(diào)用一個(gè)腳本中的函數(shù)?

Unity3D:如何從附加到預(yù)制件的其他腳本中調(diào)用一個(gè)腳本中的函數(shù)?

C#
冉冉說 2021-08-07 17:40:00
我有對(duì)象 A 和預(yù)制件 B。在每個(gè)附加的腳本“ScriptA”和“ScriptB”上。在“ScriptA”中,我需要從“ScriptB”調(diào)用函數(shù)。我試過這個(gè)(C#代碼):public ScriptB MyScript;MyScript.function();但是我不能將對(duì)象 A 附加到公共變量“MyScript”,我只看到交叉的圓圈圖標(biāo)。什么問題?
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

如何從附加到預(yù)制件的其他腳本中調(diào)用一個(gè)腳本中的函數(shù)?


你不能直接這樣做,因?yàn)檫@是一個(gè)預(yù)制件。要訪問附加到預(yù)制件的腳本,請(qǐng)實(shí)例化預(yù)制件,然后使用GetComponent獲取腳本。


//Assign the prefab from the Editor

public GameObject prefab;

public ScriptB MyScript;


void Start()

{

    //Instantiate prefab 

    GameObject obj = Instantiate(prefab);


    //Get script attached to it

    MyScript = obj.GetComponent<ScriptB>();


    //Call the function

    MyScript.function();

}

如果ScriptB已經(jīng)附加到場(chǎng)景中的 GameObject(在 Hierarchy 選項(xiàng)卡中看到),那么您不必實(shí)例化它。只需找到游戲?qū)ο螅缓笫褂盟麲etComponent來獲取附加到它的腳本。


ScriptB MyScript;


void Start()

{

    //Find the GameObject

    GameObject obj = GameObject.Find("NameOfGameObjectScriptBIsAttachedTo");


    //Get script attached to it

    MyScript = obj.GetComponent<ScriptB>();


    //Call the function

    MyScript.function();

}


查看完整回答
反對(duì) 回復(fù) 2021-08-07
?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您使用公共游戲?qū)ο螅瑒t可以參考該腳本。然后就可以參考腳本中的函數(shù)了。


//This would be in script A


public gameObject objectB;


void Start () {

  objectB.functionB();

}

只需確保您的函數(shù)是public void.


//This would be in script B


public void functionB () {

  //Do something

}


查看完整回答
反對(duì) 回復(fù) 2021-08-07
  • 2 回答
  • 0 關(guān)注
  • 509 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)