0
我有一个预设,在运行程序时实例化。预制件尚未进入现场。在这个预制件上有一个脚本,它带有一个应该在点击按钮时调用的功能。该按钮位于场景中。在按钮的检查器中,拖放预制件并选择要执行的功能。但是在运行中,我得到一个异常。有没有办法让按钮引用不在场景中的预制件上的功能?有没有办法将按钮onClick函数设置为不在Unity中的场景中的预制功能?
我有一个预设,在运行程序时实例化。预制件尚未进入现场。在这个预制件上有一个脚本,它带有一个应该在点击按钮时调用的功能。该按钮位于场景中。在按钮的检查器中,拖放预制件并选择要执行的功能。但是在运行中,我得到一个异常。有没有办法让按钮引用不在场景中的预制件上的功能?有没有办法将按钮onClick函数设置为不在Unity中的场景中的预制功能?
除了使处理静态的,你可以找到按钮的实例:
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
是为收听。
嗨,谢谢你的回答。我正在尝试实施您的解决方案,但我遇到问题。这里有一个链接:http://stackoverflow.com/questions/39633143/get-a-reference-to-a-button-from-script-in-unity – Rango