C# Unity-所有克隆对象的一个按钮

C# Unity-所有克隆对象的一个按钮,c#,unity3d,C#,Unity3d,你好 我遵循了本教程: 在游戏中使用Instantiate()函数选择汽车会改变预制汽车,我想用UI按钮控制它们(油门、刹车等) 我有一个问题,按钮在新创建的克隆对象上找不到事件触发器(pointerDown,pointerUp),因为预置仍在更改 我有按钮,没有按键(如视频中所示),按钮找不到新创建对象的输入 我尝试使用一个固定在按钮上的脚本,使用OnPointerEnter()和OnPointerExit()来实现这一点,但它不起作用,我应该如何实现?如果您能给我答复,我将不胜感激,谢谢 统

你好

我遵循了本教程:

在游戏中使用Instantiate()函数选择汽车会改变预制汽车,我想用UI按钮控制它们(油门、刹车等)

我有一个问题,按钮在新创建的克隆对象上找不到事件触发器(pointerDown,pointerUp),因为预置仍在更改

我有按钮,没有按键(如视频中所示),按钮找不到新创建对象的输入

我尝试使用一个固定在按钮上的脚本,使用OnPointerEnter()和OnPointerExit()来实现这一点,但它不起作用,我应该如何实现?如果您能给我答复,我将不胜感激,谢谢

统一版本2019.4.14f1

public class GasButton : MonoBehaviour
{
    public CarController controller;

    private void Update()
    {
        controller = GameObject.FindGameObjectWithTag("Player").GetComponent<CarController>();
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        controller.GasPressed();
        Debug.Log("Gas Pressed");
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        controller.GasReleased();
        Debug.Log("Gas Released");

    }
公共类按钮:单行为
{
公共车辆控制员;
私有void更新()
{
controller=GameObject.FindGameObjectWithTag(“玩家”).GetComponent();
}
公共void OnPointerEnter(pointereventdataeventdata)
{
控制器;
调试日志(“气压”);
}
公共void OnPointerExit(pointereventdataeventdata)
{
controller.gasleased();
调试日志(“气体释放”);
}

OnPointerEnter
OnPointerExit
应实现
ipinterenterhandler
ipinterexithandler

要在monobehavior中执行此附加接口,请执行以下操作

public class GasButton : MonoBehaviour,IPointerEnterHandler, IPointerExitHandler
{
    public CarController controller;

    private void Update()
    {
        controller = GameObject.FindGameObjectWithTag("Player").GetComponent<CarController>();
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        controller.GasPressed();
        Debug.Log("Gas Pressed");
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        controller.GasReleased();
        Debug.Log("Gas Released");

    }
公共类GasButton:MonoBehavior、IPInterenterHandler、IPInterexitHandler
{
公共车辆控制员;
私有void更新()
{
controller=GameObject.FindGameObjectWithTag(“玩家”).GetComponent();
}
公共void OnPointerEnter(pointereventdataeventdata)
{
控制器;
调试日志(“气压”);
}
公共void OnPointerExit(pointereventdataeventdata)
{
controller.gasleased();
调试日志(“气体释放”);
}

这解决了我的问题,非常感谢!