180 lines
5.4 KiB
C#
180 lines
5.4 KiB
C#
|
using RotaryHeart.Lib.SerializableDictionary;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace RotaryHeart.Lib
|
||
|
{
|
||
|
[CreateAssetMenu(fileName = "DataBase.asset", menuName = "Data Base")]
|
||
|
public class DataBaseExample : ScriptableObject
|
||
|
{
|
||
|
public enum EnumExample
|
||
|
{
|
||
|
None,
|
||
|
Value1,
|
||
|
Value2,
|
||
|
Value3,
|
||
|
Value4,
|
||
|
Value5,
|
||
|
Value6
|
||
|
}
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class ChildTest
|
||
|
{
|
||
|
public Color myChildColor;
|
||
|
public bool myChildBool;
|
||
|
public Gradient test;
|
||
|
}
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class ClassTest
|
||
|
{
|
||
|
public string id;
|
||
|
public float test;
|
||
|
public string test2;
|
||
|
public Quaternion quat;
|
||
|
public ChildTest[] childTest;
|
||
|
}
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class ArrayTest
|
||
|
{
|
||
|
public int[] myArray;
|
||
|
}
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class AdvancedGenericClass
|
||
|
{
|
||
|
[Range(0, 100)]
|
||
|
public float value;
|
||
|
|
||
|
public bool Equals(AdvancedGenericClass other)
|
||
|
{
|
||
|
if (ReferenceEquals(null, other)) return false;
|
||
|
if (ReferenceEquals(this, other)) return true;
|
||
|
return other.value == value;
|
||
|
}
|
||
|
|
||
|
public override bool Equals(object obj)
|
||
|
{
|
||
|
if (ReferenceEquals(null, obj)) return false;
|
||
|
if (ReferenceEquals(this, obj)) return true;
|
||
|
if (obj.GetType() != typeof(AdvancedGenericClass)) return false;
|
||
|
return Equals((AdvancedGenericClass)obj);
|
||
|
}
|
||
|
|
||
|
public override int GetHashCode()
|
||
|
{
|
||
|
unchecked
|
||
|
{
|
||
|
return value.GetHashCode();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[SerializeField]
|
||
|
public Generic_String _genericString;
|
||
|
|
||
|
[SerializeField]
|
||
|
public Generic_Generic _genericGeneric;
|
||
|
|
||
|
[SerializeField, ID("id")]
|
||
|
private S_GenericDictionary _stringGeneric;
|
||
|
|
||
|
[SerializeField]
|
||
|
private I_GenericDictionary _intGeneric;
|
||
|
|
||
|
[SerializeField]
|
||
|
private I_GO _intGameobject;
|
||
|
[SerializeField]
|
||
|
private GO_I _gameobjectInt;
|
||
|
|
||
|
[SerializeField]
|
||
|
private S_GO _stringGameobject;
|
||
|
[SerializeField]
|
||
|
private GO_S _gameobjectString;
|
||
|
|
||
|
[SerializeField]
|
||
|
private S_Mat _stringMaterial;
|
||
|
[SerializeField]
|
||
|
private Mat_S _materialString;
|
||
|
|
||
|
[SerializeField]
|
||
|
private V3_Q _vector3Quaternion;
|
||
|
[SerializeField]
|
||
|
private Q_V3 _quaternionVector3;
|
||
|
|
||
|
[SerializeField]
|
||
|
private S_AC _stringAudioClip;
|
||
|
[SerializeField]
|
||
|
private AC_S _audioClipString;
|
||
|
|
||
|
[SerializeField]
|
||
|
private C_Int _charInt;
|
||
|
[SerializeField]
|
||
|
private G_Int _gradientInt;
|
||
|
|
||
|
[SerializeField]
|
||
|
private Int_IntArray _intArray;
|
||
|
|
||
|
[SerializeField]
|
||
|
private Enum_String _enumString;
|
||
|
|
||
|
[SerializeField, DrawKeyAsProperty]
|
||
|
private AdvanGeneric_String _advancedGenericKey;
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class Generic_String : SerializableDictionaryBase<ClassTest, string> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class Generic_Generic : SerializableDictionaryBase<ClassTest, ClassTest> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class C_Int : SerializableDictionaryBase<char, int> { }
|
||
|
[System.Serializable]
|
||
|
public class G_Int : SerializableDictionaryBase<Gradient, int> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class I_GO : SerializableDictionaryBase<int, GameObject> { }
|
||
|
[System.Serializable]
|
||
|
public class GO_I : SerializableDictionaryBase<GameObject, int> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class S_GO : SerializableDictionaryBase<string, GameObject> { }
|
||
|
[System.Serializable]
|
||
|
public class GO_S : SerializableDictionaryBase<GameObject, string> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class S_Mat : SerializableDictionaryBase<string, Material> { }
|
||
|
[System.Serializable]
|
||
|
public class Mat_S : SerializableDictionaryBase<Material, string> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class S_AC : SerializableDictionaryBase<string, AudioClip> { }
|
||
|
[System.Serializable]
|
||
|
public class AC_S : SerializableDictionaryBase<AudioClip, string> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class S_Sprite : SerializableDictionaryBase<string, Sprite> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class V3_Q : SerializableDictionaryBase<Vector3, Quaternion> { }
|
||
|
[System.Serializable]
|
||
|
public class Q_V3 : SerializableDictionaryBase<Quaternion, Vector3> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class S_GenericDictionary : SerializableDictionaryBase<string, ClassTest> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class I_GenericDictionary : SerializableDictionaryBase<int, ClassTest> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class Int_IntArray : SerializableDictionaryBase<int, ArrayTest> { }
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class Enum_String : SerializableDictionaryBase<EnumExample, string> { };
|
||
|
|
||
|
[System.Serializable]
|
||
|
public class AdvanGeneric_String : SerializableDictionaryBase<AdvancedGenericClass, string> { };
|
||
|
}
|
||
|
}
|