【问题标题】:Creating similar tool like Game Creator | Unity Editor Customization创建类似的工具,如 Game Creator | Unity 编辑器自定义
【发布时间】:2019-07-02 20:48:45
【问题描述】:

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

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

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

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

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

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

提前非常感谢:)

【问题讨论】:

  • 那么您是否需要编辑器中 UI.Button 对象的 OnClick 事件? (但在您的自定义游戏对象上)
  • OnClick 是一个 UnityEvent 类型的对象。您可以使用它并在您希望它触发的任何地方进行调用(在发生碰撞时?然后在OnCollission 中调用它)。
  • @dreamend 是的。你是对的。我想为游戏对象上的 onClick 或 onCollision 或 onTrigger 等事件添加自定义编辑器工具。类似于 Unity 默认为 UI.Button 对象(用于点击)提供的功能
  • @Draco18s 我没听懂。如何通过编辑器脚本集成它?
  • @rsinha 查看 dreamend 的回答。它只是一个 UnityEvent 对象。

标签: unity3d unity-editor


【解决方案1】:

您需要的是 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();
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多