public static gvmPropertiesManager GetInstance() { if(_instance == null) { _instance = new gvmPropertiesManager(); _instance.Load(); } return _instance; }
public void Load() { TextAsset _xml = Resources.Load<TextAsset>(_path); XmlSerializer serializer = new XmlSerializer(typeof(gvmPropertiesManager)); StringReader reader = new StringReader(_xml.text); _instance = serializer.Deserialize(reader) as gvmPropertiesManager; reader.Close(); }
void OnGUI() { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Save")) { var path = EditorUtility.SaveFilePanel("Save Properties", "Asset/Ressources", "PropertiesCompatibility", "xml"); if (path.Length != 0) { Debug.Log(data[0].ToString()); properties.Save(data); } } if (GUILayout.Button("Load")) { var path = EditorUtility.OpenFilePanel("Load Properties", "Asset/Ressources", "xml"); if (path.Length != 0) { properties.Load(); properties = gvmPropertiesManager.GetInstance(); data = properties.propertiesContainer; } } if (GUILayout.Button("Create New Properties")) { data = new List<gvmSpellProperty>(); } EditorGUILayout.EndHorizontal(); if (GUILayout.Button("Add Property")) { int length = 0; if (data.Count > 0) { length = data[0].compatibilities.Count; } data.Add(new gvmSpellProperty(length)); for (int j = 0; j < data.Count; j++) { data[j].compatibilities.Add(0); } } EditorGUILayout.BeginHorizontal(); if (data != null) { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Name", GUILayout.Width(60)); EditorGUILayout.LabelField("Duration", GUILayout.Width(60)); EditorGUILayout.LabelField("Corruption/seconds", GUILayout.Width(60)); EditorGUILayout.LabelField("Total Corruption", GUILayout.Width(60)); EditorGUILayout.LabelField("Damage/seconds", GUILayout.Width(65)); EditorGUILayout.LabelField("Total Damage", GUILayout.Width(60)); /* EditorGUILayout.LabelField("Name", GUILayout.Width(60)); EditorGUILayout.LabelField("Duration", GUILayout.Width(60)); EditorGUILayout.LabelField("Cast Time", GUILayout.Width(60)); EditorGUILayout.LabelField("Cooldown", GUILayout.Width(60)); EditorGUILayout.LabelField("Instant Damage", GUILayout.Width(60)); EditorGUILayout.LabelField("Instant Corruption", GUILayout.Width(60)); EditorGUILayout.LabelField("Spell Area Damage Per Seconds", GUILayout.Width(60)); EditorGUILayout.LabelField("Spell Area Corruption Per Seconds", GUILayout.Width(60)); EditorGUILayout.LabelField("Properties Effect Multiplicator", GUILayout.Width(60));*/ EditorGUILayout.EndHorizontal(); for (int i = 0; i < data.Count; i++) { EditorGUILayout.BeginHorizontal(); data[i].name = EditorGUILayout.TextField(data[i].name, GUILayout.Width(60)); data[i].duration = EditorGUILayout.IntField(data[i].duration, GUILayout.Width(60)); data[i].cot = EditorGUILayout.IntField(data[i].cot, GUILayout.Width(60)); EditorGUILayout.LabelField((data[i].cot * data[i].duration).ToString(), GUILayout.Width(60)); data[i].dot = EditorGUILayout.IntField(data[i].dot, GUILayout.Width(65)); EditorGUILayout.LabelField((data[i].dot * data[i].duration).ToString(), GUILayout.Width(60)); if (GUILayout.Button("Remove")) { data.RemoveAt(i); for (int j = 0; j < data.Count; j++) { data[j].compatibilities.RemoveAt(i); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (data.Count > 0) { EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("name", GUILayout.Width(60)); for (int i = 0; i < data.Count; i++) { EditorGUILayout.BeginVertical(GUILayout.Width(60)); EditorGUILayout.LabelField(data[i].name, GUILayout.Width(60)); EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); for (int i = 0; i < data.Count; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(data[i].name, GUILayout.Width(60)); int j; for (j = 0; j < data[i].compatibilities.Count; j++) { data[i].compatibilities[j] = EditorGUILayout.IntField(data[i].compatibilities[j], GUILayout.Width(60)); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndVertical(); }
void Awake() { properties = gvmPropertiesManager.GetInstance(); AOEDamage = false; }
void OnEnable() { properties = gvmPropertiesManager.GetInstance(); data = properties.propertiesContainer; }