using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class SerializePropertyArrayElementTypeExample : ScriptableObject
{
// Various kinds of lists/arrays
public List<string> m_strings;
public int[] m_ints;
public List<Vector3> m_vectors;
public GameObject[] m_gameObjects;
[MenuItem("Example/SerializedProperty arrayElementType Example")]
static void ArrayElementTypeExample()
{
var scriptableObject = ScriptableObject.CreateInstance<SerializePropertyArrayElementTypeExample>();
using (var serializedObject = new SerializedObject(scriptableObject))
{
LogType(serializedObject, "m_strings");
LogType(serializedObject, "m_ints");
LogType(serializedObject, "m_vectors");
LogType(serializedObject, "m_gameObjects");
}
}
static void LogType(SerializedObject serializedObject, string arrayFieldName)
{
var arrayType = serializedObject.FindProperty(arrayFieldName).arrayElementType;
Debug.Log($"{arrayFieldName} array type: {arrayType}");
}
}