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

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
}
- 2 回答
- 0 關(guān)注
- 509 瀏覽
添加回答
舉報(bào)