2016-09-21 40 views
0

我有一个预设,在运行程序时实例化。预制件尚未进入现场。在这个预制件上有一个脚本,它带有一个应该在点击按钮时调用的功能。该按钮位于场景中。在按钮的检查器中,拖放预制件并选择要执行的功能。但是在运行中,我得到一个异常。有没有办法让按钮引用不在场景中的预制件上的功能?有没有办法将按钮onClick函数设置为不在Unity中的场景中的预制功能?

回答

0

除了使处理静态的,你可以找到按钮的实例:

public class MyScript: MonoBehaviour 
{ 
    void Awake() 
    { 
     Button myButton = GetReferenceToButton(); 
     myButton.onClick.AddListener ((UnityEngine.Events.UnityAction) this.OnClick); 
    } 

    public void OnClick() 
    { 
     Debug.Log("Clicked!"); 
    } 

    private Button GetReferenceToButton() 
    { 
     Button btn = null; 
     //Find it here 
     return btn; 
    } 
} 

还需要添加之前委托转换为UnityEngine.Events.UnityAction是为收听。

+0

嗨,谢谢你的回答。我正在尝试实施您的解决方案,但我遇到问题。这里有一个链接:http://stackoverflow.com/questions/39633143/get-a-reference-to-a-button-from-script-in-unity – Rango

相关问题