Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Класс 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>и код превращается в адскую помесь рантайм кода с эдитор-кодом, разделенное флагами условной компиляции.
и код превращается в адскую помесь рантайм кода с эдитор-кодом
#if UNITY_EDITOR
void OnDrawGizmos()
{
Gizmos.color = Color.red;
if (_currentEnemy != null)
Gizmos.DrawLine(myTransform.position, _currentEnemy.transform.position);
}
#endifТакое вообще всегда делается из кода
Unity и «Помогаторы» для редактора