//---------------------------------------------------------------------------- protected override void DrawElement(Rect rect, int index, bool selected, bool focused) { SignDatabase.SignItem item = SignDatabase.GetSignById(index); if (item != null) { if (!string.IsNullOrEmpty(item.m_signText)) { GUI.Label(rect, m_mapNames[item.m_mapUniqueId] + "_Sign_" + item.m_indexSignOnMap.ToString()); } else { GUI.Label(rect, "NewSign!"); } if (selected) { if (m_currentlySelected != index) { m_currentlySelected = index; this.Repaint(); } } } }
//---------------------------------------------------------------------------- protected override void OnInternalInspectorGUI() { SignDatabase.SignItem item = SignDatabase.GetSignById(m_currentlySelected); if (item != null) { GUILayout.BeginHorizontal(); { GUILayout.BeginVertical(); { EditorGUILayout.LabelField("Sign Index", item.m_uniqueId.ToString()); item.m_mapUniqueId = EditorGUILayout.Popup("Map", item.m_mapUniqueId, m_mapNames); item.m_indexSignOnMap = EditorGUILayout.IntField("Index sign on map", item.m_indexSignOnMap); //Automaticaly filled EditorGUILayout.LabelField("Sign Position", item.m_position.ToString("0.00")); item.m_signText = EditorGUILayout.TextField("Sign's text", item.m_signText); //TextArea? } GUILayout.EndVertical(); } GUILayout.EndHorizontal(); } if (GUI.changed) { UpdateSignObjectAndPosition(item); EditorUtility.SetDirty(target); } }
//----------------------------------------------------------------------------------------------------------- // Use this for initialization void Start() { GameObject currentMapObject = GameObject.FindWithTag("CurrentMap"); if (currentMapObject) { MapDatabase.MapItem currentMapDb = MapDatabase.GetMapByName(currentMapObject.name); if (currentMapDb != null) { signList = SignDatabase.GetSignsOfMap(currentMapDb.m_uniqueId); } } }
//---------------------------------------------------------------------------- protected override void AddToList(ReorderableList list) { SignDatabase.CreateNewSign(); base.AddToList(list); }
// Use this for initialization void Awake() { instance = this; Add("axe", 1, "test", SignType.mage, 3, 20, 20, 0); Add("apple", 1, "testapple", SignType.warrior, 3, 0, 20, 0); }