using System.Collections.Generic; using UnityEngine; namespace LunaWolfStudios.ScriptableSheets.Samples.Sampler { [System.Serializable] public class SerializedComponentPropertySampler : MonoBehaviour { // Generic [SerializeField] private int[] m_IntArray = { 1, 2, 3 }; public int[] IntArray { get => m_IntArray; set => m_IntArray = value; } [SerializeField] private List m_StringList = new List { "one", "two", "three" }; public List StringList { get => m_StringList; set => m_StringList = value; } [SerializeField] private List m_MaterialList; public List MaterialList { get => m_MaterialList; set => m_MaterialList = value; } [SerializeField] private SampleStruct m_SampleStruct = new SampleStruct { X = 10, Y = 20 }; public SampleStruct SampleStruct { get => m_SampleStruct; set => m_SampleStruct = value; } [SerializeField] private SampleClass m_SampleClass = new SampleClass { Name = "Foo", Id = 1 }; public SampleClass SampleClass { get => m_SampleClass; set => m_SampleClass = value; } // Integer [SerializeField] private int m_IntValue = int.MaxValue; public int IntValue { get => m_IntValue; set => m_IntValue = value; } [SerializeField] private byte m_ByteValue = byte.MaxValue; public byte ByteValue { get => m_ByteValue; set => m_ByteValue = value; } [SerializeField] private short m_ShortValue = short.MaxValue; public short ShortValue { get => m_ShortValue; set => m_ShortValue = value; } [SerializeField] private long m_LongValue = long.MaxValue; public long LongValue { get => m_LongValue; set => m_LongValue = value; } [SerializeField] private uint m_UIntValue = uint.MaxValue; public uint UIntValue { get => m_UIntValue; set => m_UIntValue = value; } [SerializeField] private ulong m_ULongValue = ulong.MaxValue; public ulong ULongValue { get => m_ULongValue; set => m_ULongValue = value; } // Boolean [SerializeField] private bool m_BoolValue = true; public bool BoolValue { get => m_BoolValue; set => m_BoolValue = value; } // Float [SerializeField] private float m_FloatValue = 2.71f; public float FloatValue { get => m_FloatValue; set => m_FloatValue = value; } [SerializeField] private double m_DoubleValue = 3.141592653589; public double DoubleValue { get => m_DoubleValue; set => m_DoubleValue = value; } // String [SerializeField] private string m_StringValue = "Hello, World!"; public string StringValue { get => m_StringValue; set => m_StringValue = value; } // Color [SerializeField] private Color m_ColorValue = Color.red; public Color ColorValue { get => m_ColorValue; set => m_ColorValue = value; } // ObjectReference [SerializeField] private GameObject m_GameObjectReference; public GameObject GameObjectReference { get => m_GameObjectReference; set => m_GameObjectReference = value; } // LayerMask [SerializeField] private LayerMask m_LayerMaskValue; public LayerMask LayerMaskValue { get => m_LayerMaskValue; set => m_LayerMaskValue = value; } // Enum [SerializeField] private SampleEnum m_EnumValue = SampleEnum.OptionA; public SampleEnum EnumValue { get => m_EnumValue; set => m_EnumValue = value; } // Vector2 [SerializeField] private Vector2 m_Vector2Value = new Vector2(1.0f, 2.0f); public Vector2 Vector2Value { get => m_Vector2Value; set => m_Vector2Value = value; } // Vector3 [SerializeField] private Vector3 m_Vector3Value = new Vector3(1.0f, 2.0f, 3.0f); public Vector3 Vector3Value { get => m_Vector3Value; set => m_Vector3Value = value; } // Vector4 [SerializeField] private Vector4 m_Vector4Value = new Vector4(1.0f, 2.0f, 3.0f, 4.0f); public Vector4 Vector4Value { get => m_Vector4Value; set => m_Vector4Value = value; } // Rect [SerializeField] private Rect m_RectValue = new Rect(0, 0, 100, 100); public Rect RectValue { get => m_RectValue; set => m_RectValue = value; } // ArraySize [SerializeField] private int m_ArraySize = 3; public int ArraySize { get => m_ArraySize; set => m_ArraySize = value; } // Character [SerializeField] private char m_CharValue = 'A'; public char CharValue { get => m_CharValue; set => m_CharValue = value; } // AnimationCurve [SerializeField] private AnimationCurve m_AnimationCurveValue = AnimationCurve.Linear(0, 0, 1, 1); public AnimationCurve AnimationCurveValue { get => m_AnimationCurveValue; set => m_AnimationCurveValue = value; } // Bounds [SerializeField] private Bounds m_BoundsValue = new Bounds(Vector3.zero, Vector3.one); public Bounds BoundsValue { get => m_BoundsValue; set => m_BoundsValue = value; } // Gradient [SerializeField] private Gradient m_GradientValue = new Gradient(); public Gradient GradientValue { get => m_GradientValue; set => m_GradientValue = value; } // Quaternion [SerializeField] private Quaternion m_QuaternionValue = Quaternion.identity; public Quaternion QuaternionValue { get => m_QuaternionValue; set => m_QuaternionValue = value; } // ExposedReference [SerializeField] private ExposedReference m_ExposedReferenceValue; public ExposedReference ExposedReferenceValue { get => m_ExposedReferenceValue; set => m_ExposedReferenceValue = value; } // FixedBufferSize [SerializeField] private int m_FixedBufferSize = 10; public int FixedBufferSize { get => m_FixedBufferSize; set => m_FixedBufferSize = value; } // Vector2Int [SerializeField] private Vector2Int m_Vector2IntValue = new Vector2Int(1, 2); public Vector2Int Vector2IntValue { get => m_Vector2IntValue; set => m_Vector2IntValue = value; } // Vector3Int [SerializeField] private Vector3Int m_Vector3IntValue = new Vector3Int(1, 2, 3); public Vector3Int Vector3IntValue { get => m_Vector3IntValue; set => m_Vector3IntValue = value; } // RectInt [SerializeField] private RectInt m_RectIntValue = new RectInt(0, 0, 100, 100); public RectInt RectIntValue { get => m_RectIntValue; set => m_RectIntValue = value; } // BoundsInt [SerializeField] private BoundsInt m_BoundsIntValue = new BoundsInt(Vector3Int.zero, Vector3Int.one); public BoundsInt BoundsIntValue { get => m_BoundsIntValue; set => m_BoundsIntValue = value; } #if UNITY_2022_1_OR_NEWER // ManagedReference [SerializeReference] private SampleClass m_ManagedReferenceValue; public SampleClass ManagedReferenceValue { get => m_ManagedReferenceValue; set => m_ManagedReferenceValue = value; } #endif // Hash128 [SerializeField] private Hash128 m_Hash128Value = new Hash128(1, 2, 3, 4); public Hash128 Hash128Value { get => m_Hash128Value; set => m_Hash128Value = value; } } }