Comments 11
Класс Debug позволяет выводить текст, ошибки, рисовать линии, ставить редактор на паузу и тд.
Handles используют для отображения и управления объектами в окне сцены.
и код превращается в адскую помесь рантайм кода с эдитор-кодом, разделенное флагами условной компиляции. По возможности все редакторское нужно выносить во внешние инспекторы, которые не поедут в конечный билд, например, так:
<code class="cs">[DrawGizmo (GizmoType.Active | GizmoType.NonSelected)] static void OnDrawGizmos (ZoneSector obj, GizmoType gizmoType) { Gizmos.color = Color.yellow; Gizmos.DrawWireSphere (obj.transform.position, obj.Radius); Gizmos.DrawIcon (obj.transform.position, "icon-sector"); }</code>
Юнити сама детектит что нужно показывать по типу первого параметра, атрибутом можно регулировать когда оно будет отрисовываться. Те рантайм код получается чистым.
Допустим, вы построили UI с 30 достижениями, они отображаются и скролятся как вы задумали. Вам необходимо заполнить List-ы в классе ссылками на них. Нужно 30 раз перетянуть названия, 30 раз описания и тд.
Такое вообще всегда делается из кода: делается префаб одного айтема и в цикле оно генерится, инициализируется, втыкается в корень списка — никаких ручных настроек. А если потребуется поменять визуальный вид или логику поведения вложенных виджетов — перенастраивать опять все руками?
<code class="cs">for (var i = 0; i < ShopPowerupVisualItem.PowerupCount; i++) { var item = Instantiate<ShopPowerupVisualItem> (PowerupVisualPrefab); item.transform.SetParent (PowerupRoot, false); item.transform.localScale = PowerupVisualPrefab.transform.localScale; item.Init (i, false); // Тут как раз инициализация айтема и всех его свойств происходит. item.OnSelect += OnPowerupSelect; } PowerupRoot.GetComponent<UIGrid> ().Reposition (); PowerupRoot.GetComponentInParent<UIScrollView> ().SetDragAmount (0f, 0f, true);</code>
0
Нормально редактор хабры работает с повторным редактированием кода… Но суть, думаю, понятна.
0
и код превращается в адскую помесь рантайм кода с эдитор-кодом, разделенное флагами условной компиляции.
Просто к слову: есть ещё один хитрый вариант с C# — partial классы. Editor-only код можно писать отдельным файлом с общей условной компиляцией, а runtime логику как обычно в одном месте без лишней каши.
0
и код превращается в адскую помесь рантайм кода с эдитор-кодом
Да, есть и такой способ. В моем случае я не чувствую нагромождения кода от лишних 10 строк кода. Может я люблю держать в одном файле, может у меня не было больших нагромождений — все это дело вкуса, или указания свыше (тимлид и тд)
Пример
#if UNITY_EDITOR
void OnDrawGizmos()
{
Gizmos.color = Color.red;
if (_currentEnemy != null)
Gizmos.DrawLine(myTransform.position, _currentEnemy.transform.position);
}
#endif
Такое вообще всегда делается из кода
Опять же дело привычки. Кто то любит делать все кодом, некоторые собирают визуально. Когда наступает рутина — написать небольшой скрипт.
Статьей я просто хотел напомнить как делать некоторые вещи нагляднее, а не делать по моему.
0
Вроде как и полезная информация, но статья "так себе". Местами приходилось гуглить отдельно, чтобы понять, как же оно на самом деле работает.
0
Пожалуйста, не используйте слово "помогатор". И "помогатель". Это чудовищно звучит, и просто безграмотно — если мы только не говорим про маленьких шурупо-образных человечков со встроенным "помогатором" — детский мультик можно простить. Есть огромное количество альтернатив в русском языке и адекватных жаргонизмов, которые лучше передадут смысл, не калеча при этом тех, кто искренне любит русский язык.
Утилиты, возможности, инструменты, расширения, методы, фичи, дополнения, функции, на худой конец — "полезности".
Утилиты, возможности, инструменты, расширения, методы, фичи, дополнения, функции, на худой конец — "полезности".
-2
А "фичи" значит по-русски грамотно? Вообще, не нужно было переводить, есть уже устоявшееся выражение "хелпер" — прямой транслит с английского, тут уже ничего нового не придумать и тем более не заменить ни на один из предложенных вариантов. Автор просто пытался донести суть до как можно большего количества людей.
0
Спасибо, в том числе и комментирующим) Узнал несколько полезных моментов для себя. Думаю если говорить о вещах, помогающих в разработке и тестировании, то можно упомянуть и профайлер. http://docs.unity3d.com/ru/current/Manual/Profiler.html
0
Sign up to leave a comment.
Unity и «Помогаторы» для редактора