Большинство встроенных компонентов Unity имеют соответственно [CustomEditor]
, перезаписывающего Инспектора по умолчанию.
В частности, GridLayoutGroup
имеет специальный инспектор с именем GridLayoutGroupEditor
, перезаписывающий инспектор для любого класса, полученного из GridLayoutGroup
.
& RightArrow; Вы должны унаследовать его, чтобы создать специальный редактор для класса, производного от GridLayoutGroup
.
Чтобы сделать дополнительные поля видимыми, вы можете сделать что-то вроде, например,
using UnityEditor;
...
[CustomEditor(typeof(Myscript))]
public class MyScriptEditor : GridLayoutGroupEditor
{
private SerializedProperty ishhh;
// Called when the Inspector is loaded
// Usually when the according GameObject gets selected in the hierarchy
private void OnEnable ()
{
// "Link" the SerializedProperty to a real serialized field
// (public fields are serialized automatically)
ishhh = serializedObject.FindProperty("ishhh");
}
// Kind of the Inspector's Update method
public override void OnInpectorGUI ()
{
// Draw the default inspector
// base.OnInspectorGUI();
// Fetch current values into the serialized properties
serializedObject.Update();
// Automatically uses the correct field drawer according to the property type
EditorGUILayout.PropertyField(ishhh);
// Write back changed values to the real component
serializedObject.ApplyModifiedProperties();
}
}
Важное замечание: Поместите этот сценарий в папку с именем Editor
, чтобы исключить его из сборки во избежание ошибок, связанных с пространством имен UnityEditor
.
В качестве альтернативы (поскольку я вижу, что у вас уже есть код using UnityEditor
в вашем примере кода), вы можете оставить его в том же сценарии, но затем вам придется вручную использовать #if Pre-Processors
для удаления все кодовые блоки / строки выключены, которые используют что-то из пространства имен UnityEditor
, например
#if UNITY_EDITOR
using UnityEditor;
#endif
...
#if UNITY_EDITOR
// any code using UnityEditor
#endif
В противном случае вы не сможете собрать свое приложение, поскольку UnityEditor
существует только в самом редакторе Unity и полностью удален для сборок.
Примечание: напечатано на смартфоне, поэтому никаких гарантий, но я надеюсь, что идея проясняется