Создание аналогичного инструмента, как Game Creator | Настройка Unity Editor - PullRequest
1 голос
/ 01 июля 2019

Требование для проекта - создать инструмент, с помощью которого я могу определять простые действия onClick, onTrigger или onCollision над объектами игры непосредственно через сценарии редактора.

Unity уже предоставляет что-то для кнопки onClick, в которой я могу выбрать игровой объект, который дает мне доступ ко всем сценариям и его функциям в этом игровом объекте, а затем я просто выбираю функцию, которая выполняется во время выполнения.

Что мне нужно -
OnCollisionTrigger -> Показывает в редакторе два поля
1. Поле игрового объекта - куда я могу просто перетащить любую сцену игрового объекта
2. Список функций, таких как Toggle Active, Destroy и т. Д.

Я посмотрел много видео, доступных для редактирования сценариев, но ни одно из них не могло объяснить эти темы.

Я знаю, что в редакторе Unity у нас есть ручки, которые очень удобны для выполнения множества задач. Но я действительно не знаю, как реализовать что-то подобное в редакторе.

Я не уверен, что эту проблему можно решить несколькими способами. Но я не получаю отправную точку, с которой мне нужно начинать исследования. Скрипты Unity Editor действительно менее документированы в видео или документах. Любая помощь, чтобы направить меня в правильном направлении, действительно поможет мне.

Заранее большое спасибо:)

1 Ответ

2 голосов
/ 02 июля 2019

Что вам нужно, так это UnityEvents.Когда вы создаете объект UI.Button, он имеет UnityEvent с именем OnClick.

В следующем примере я создал пример класса, который запускает событие OnSomethingHappened (вы можете назвать его OnClick или как-нибудь еще) каждый раз, когда вызывается SomeFunction.Потому что я «вызвал» событие.

Если вы перетащите его в игровой объект, вы увидите событие OnSomethingHappened как событие OnClick объекта UI.Button.

using UnityEngine;
using UnityEngine.Events;

public class Example : MonoBehaviour
{
    public UnityEvent OnSomethingHappened;

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...