2

该项目的要求是创建一个工具,我可以使用该工具直接通过编辑器脚本在游戏对象上定义简单的 onClick、onTrigger 或 onCollision 操作。

Unity 已经在 onClick 按钮上提供了一些东西,我可以在其中选择游戏对象,这使我可以访问该游戏对象上的所有脚本及其函数,然后我只需选择一个在运行时执行的函数。

我需要什么 -
OnCollisionTrigger -> 它在编辑器中显示两个字段
1. Gameobject 字段 - 我可以简单地拖动任何场景游戏对象
2. 功能列表,如 Toggle Active、Destroy 等

我查看了许多可用于编辑器脚本的视频,但没有一个可以解释这些主题。

我知道我们在 Unity 编辑器中有句柄,这对于做很多事情来说非常方便。但我真的不知道如何在编辑器上实现这样的东西。

我不确定这个问题是否可以通过多种方式解决。但我没有找到我需要开始研究的起点。Unity Editor 脚本在视频或文档中的记录确实较少。任何能引导我走向正确方向的帮助都会真正帮助我。

提前非常感谢:)

4

1 回答 1

2

您需要的是 UnityEvents。创建 UI.Button 对象时,它有一个名为 OnClick 的 UnityEvent。

在下面的示例中,我创建了一个示例类,它在 SomeFunction 调用时触发 OnSomethingHappened 事件(您可以将其命名为 OnClick 或其他任何内容)。因为我“调用”了这个事件。

如果将其拖放到游戏对象上,您将看到 OnSomethingHappened 事件作为 UI.Button 的 OnClick 事件。

using UnityEngine;
using UnityEngine.Events;

public class Example : MonoBehaviour
{
    public UnityEvent OnSomethingHappened;

    private void SomeFunction() {
        OnSomethingHappened.Invoke();
    }

}
于 2019-07-02T12:48:45.613 回答