2 回答

TA貢獻1895條經驗 獲得超3個贊
如何從附加到預制件的其他腳本中調用一個腳本中的函數?
你不能直接這樣做,因為這是一個預制件。要訪問附加到預制件的腳本,請實例化預制件,然后使用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已經附加到場景中的 GameObject(在 Hierarchy 選項卡中看到),那么您不必實例化它。只需找到游戲對象,然后使用它GetComponent來獲取附加到它的腳本。
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貢獻1804條經驗 獲得超3個贊
如果您使用公共游戲對象,則可以參考該腳本。然后就可以參考腳本中的函數了。
//This would be in script A
public gameObject objectB;
void Start () {
objectB.functionB();
}
只需確保您的函數是public void.
//This would be in script B
public void functionB () {
//Do something
}
- 2 回答
- 0 關注
- 520 瀏覽
添加回答
舉報