Вызов функции в редакторе Unity - PullRequest
0 голосов
/ 30 августа 2018

Мне нужен скрипт, который принимает большое количество монобихевов у детей и упорядочивает их по спискам в родительском скрипте особым образом, чтобы сохранить родителя как префаб. Это заняло бы целую вечность. И я не хочу делать это в Start () во время выполнения, потому что эти префабы могут создаваться несколько раз за кадр и вызывать мини-лаги при поиске сценариев у детей. Так как мне сделать это один раз в редакторе, чтобы сохранить все ссылки на сборные? Никогда не делал ничего подобного, но видел кнопки в инспекторе, которые вызывают функции для плагинов. Я попытался [ExecuteInEditMode], который дает хороший результат, но он также продолжает выполняться во время выполнения. Поэтому спрашиваю, каким способом было бы проще всего просто вызвать функцию в редакторе и заставить ее не работать во время выполнения?

1 Ответ

0 голосов
/ 30 августа 2018

Попробуйте что-то вроде этого:

[ExecuteInEditMode]
public class YourClass : MonoBehaviour
{
    void Update()
    {
        if (!Application.isPlaying)
        {
            Debug.Log("This should only run in edit mode.");
            // More code
        }
    }
}

В зависимости от того, что именно вы пытаетесь сделать, может быть лучший способ вызвать это, чем ExecuteInEditMode, но это самый простой способ получить запрошенный вами эффект. Это не будет работать до тех пор, пока Application.isPlaying вернет true. Так что он никогда не будет работать в режиме воспроизведения и никогда не будет запускаться в каких-либо сборках.

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