- Home /
How to get an array inside a simple class at Editor window and change arraysize?
Hello, guys! I hope you are fine in first!!!
Well, I have a simple script to show some arrays of GameObjects on my Custom Window, and I use SerializedObject to show array "enemies" with OnGui:
EditorGUILayout.PropertyField(enemiesProp, true);
So far, it's OKAY, But I need to know how to get the array "heroes" inside World class and transform it in new SerializedObject like enemiesProp and set arraysize to 1 (and if it is possible).
My idea is: when the Editor Window opens for first time, we set the array "enemies" with 1 in size and populate th array heroes with 4 empty GameObjects
The current code works and set enemies size to 1 on opening, but I can't add the 4 GameObjects, I don't know to access heroes array and refresh on opening
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class myClass : EditorWindow
{
[MenuItem("Tests/My Class")]
public static void ShowWindow()
{
EditorWindow.GetWindow<myClass>("Test Window");
}
private SerializedObject so;
private SerializedProperty enemiesProp;
private SerializedProperty heroesProp;
[System.Serializable]
public class World
{
public List<GameObject> heroes = new List<GameObject>();
}
public List<World> enemies = new List<World>();
void OnGUI()
{
//Show "enemies" field and set 1 to initial size
EditorGUILayout.PropertyField(enemiesProp, true);
enemiesProp = so.FindProperty("enemies");
//Show "heroes" field and set 4 on size
//?
}
void OnEnable()
{
so = new SerializedObject(this);
enemiesProp = so.FindProperty("enemies");
// heroesProp = ????
}
}
Thanks in Advanced! <3
Your answer
Follow this Question
Related Questions
CustomPropertyDrawer undoable properties 1 Answer
How do I use serializedObject when extending EditorWindow? 0 Answers
Custom brush tool? 0 Answers
In search of a gradient editor tool.. 0 Answers