void OnGUI() { if (!inited) Init(); UniRPGEdGui.UseSkin(); EditorGUILayout.BeginHorizontal(); { GUILayout.Label("filter", GUILayout.Width(60)); filter = (UniRPGGlobal.ActorType)EditorGUILayout.EnumPopup(filter); GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); scroll = UniRPGEdGui.BeginScrollView(scroll); { if (UniRPGEditorGlobal.Cache.actors.Count > 0) { foreach (Actor actor in UniRPGEditorGlobal.Cache.actors) { if (filter != 0 && (int)actor.GetComponent<Actor>().ActorType != (int)filter) continue; Rect r = EditorGUILayout.BeginHorizontal(); { r.x = 3; r.width = 19; r.height = 19; GUI.DrawTexture(r, (actor.portrait[0] != null ? actor.portrait[0] : UniRPGEdGui.Texture_NoPreview)); GUILayout.Space(21); if (UniRPGEdGui.ToggleButton(selectedActor == actor, actor.screenName, UniRPGEdGui.ButtonRightStyle, UniRPGEdGui.ButtonOnColor, GUILayout.Width(150))) { selectedActor = actor; } } EditorGUILayout.EndHorizontal(); } } else { GUILayout.Label("No Actors are defined\n\nYou might need to Refresh the\ncache if you did define actors.\nDatatabase -> Main -> Actors", UniRPGEdGui.WarningLabelStyle); } } UniRPGEdGui.EndScrollView(); UniRPGEdGui.DrawHorizontalLine(1, UniRPGEdGui.DividerColor, 0, 10); EditorGUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); if (selectedActor == null) GUI.enabled = false; if (GUILayout.Button("Accept", UniRPGEdGui.ButtonStyle)) accepted = true; GUI.enabled = true; if (GUILayout.Button("Cancel", UniRPGEdGui.ButtonStyle)) this.Close(); GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(10); }
protected override void OnCharacterTargeted(bool becomeTargeted, CharacterBase character) { int id = 0; if (character.ActorType() == UniRPGGlobal.ActorType.Neutral) id = 1; else if (character.ActorType() == UniRPGGlobal.ActorType.Hostile) id = 2; selectedCharaType = character.ActorType(); UpdateSelectionRing(id, becomeTargeted, character.transform); }