Урок на оффсайте: Building a Custom Inspector.
Если присвоить объекту следующий скрипт:
using UnityEngine;
public class LevelScript : MonoBehaviour
{
public int experience;
public int Level
{
get
{
return experience / 750;
}
}
}
То в этом случае значения Опыта будут выведены без указания Уровня:
Можно конечно будет выставить показания Level не как свойство, а как переменная в public, но тогда получится путаница, если случайно изменить значение Level. Для того, чтобы подобной путаницы не возникло, можно изменить отображение значений в Инспекторе:
В данном случае поле Level будет доступно только для чтения, а не для изменений.
Для этого нужно добавить в папку Editor файл LevelScriptEditor.cs:
using UnityEditor;
[CustomEditor (typeof(LevelScript))]
public class LevelScriptEditor : Editor
{
public override void OnInspectorGUI()
{
LevelScript myLevelScript = (LevelScript)target;
myLevelScript.experience = EditorGUILayout.IntField("Experience", myLevelScript.experience);
EditorGUILayout.LabelField("Level", myLevelScript.Level.ToString());
}
}
DenTNT недавно публиковал (посмотреть все)
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024