Сделать некоторые части скрипта в редакторе - PullRequest
0 голосов
/ 04 марта 2019

Так что проблема в том, что у меня есть одна общедоступная переменная в моем скрипте, и когда эта переменная изменяется, я хочу вызвать определенную функцию, но только в режиме редактирования и только когда я нахожусь в UnityРедактор . ExecuteInEditMode заставит весь скрипт работать в режиме редактирования, когда я хочу одну маленькую функцию .Прямо сейчас я использую отдельный компонент сценария с этим кодом:

using UnityEngine;
using UnityEditor;

[ExecuteInEditMode]
public class OtherScript: MonoBehaviour
{
    private ThatBigScript that_script;
    private float last_variable_value = 0.0f;

    void Update()
    {
        if(Application.isEditor && !EditorApplication.isPlaying)
        {
            if(that_script == null)
            {
                that_script = GetComponent<ThatBigScript >();
            }

            if(that_script.variable_to_check != last_variable_value )
            {
                that_script.FunctionToCall(that_script.variable_to_check );
                last_variable_value = that_script.variable_to_check ;
            }
        }
    }

}

Это большая работа по созданию целого отдельного компонента для одной маленькой функции, поэтому кто-то может помочь мне создать что-то более красивое и короткое?

1 Ответ

0 голосов
/ 04 марта 2019

Этот API спасет вам жизнь: MonoBehaviour.OnValidate

"Эта функция вызывается при загрузке сценария или изменении значения в инспекторе (вызывается только в редакторе). "

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