public void RunEntityTriggers(Entity target, EntityTrigger.TriggerType triggerType) { //Debug.Log(name + ": RunEntityModifiers for " + triggerType + " - target = " + (target != null ? target.name : "None")); foreach (EntityTrigger entityTrigger in entityTriggers) { if (entityTrigger != null && entityTrigger.triggerType == triggerType) { //Debug.Log(name + ": TryToRun EntityModifier for " + triggerType + " - target = " + (target != null ? target.name : "None")); if (entityTrigger.forTarget && target != null) { entityTrigger.TryToRun(target, this); } else if (!entityTrigger.forTarget) { entityTrigger.TryToRun(this, target); } } } }
public override void OnInspectorGUI() { infoBoxStyle = EditorStyles.helpBox; Texture2D texture = new Texture2D(1, 1); texture.SetPixels(new Color[] { new Color(0.3f, 0.3f, 0.3f) }); texture.Apply(); infoBoxStyle.normal.background = texture; infoBoxStyle.richText = true; infoBoxStyle.wordWrap = true; infoBoxStyle.fontSize = 12; infoBoxStyle.padding = new RectOffset(20, 20, 5, 5); infoBoxStyle.alignment = TextAnchor.MiddleLeft; serializedObject.Update(); GUI.enabled = false; SerializedProperty prop = serializedObject.FindProperty("m_Script"); EditorGUILayout.PropertyField(prop, true, new GUILayoutOption[0]); GUI.enabled = true; EditorGUILayout.PropertyField(serializedObject.FindProperty("triggerType")); EditorGUILayout.PropertyField(serializedObject.FindProperty("coolDown")); EntityTrigger.TriggerType triggerType = (EntityTrigger.TriggerType)serializedObject.FindProperty("triggerType").enumValueIndex; if (triggerType == EntityTrigger.TriggerType.LevelChange) { EditorGUILayout.PropertyField(serializedObject.FindProperty("levelType")); } if (EntityTrigger.HasTarget(triggerType)) { EditorGUILayout.PropertyField(serializedObject.FindProperty("forTarget")); EditorGUILayout.PropertyField(serializedObject.FindProperty("targetMatchType")); InputCondition.MatchType ownerMatchType = (InputCondition.MatchType)serializedObject.FindProperty("targetMatchType").enumValueIndex; switch (ownerMatchType) { case InputCondition.MatchType.TypeGroup: EditorGUILayout.PropertyField(serializedObject.FindProperty("typeGroup")); break; case InputCondition.MatchType.TypeCategory: EditorGUILayout.PropertyField(serializedObject.FindProperty("typeCategory")); break; case InputCondition.MatchType.EntityType: EditorGUILayout.PropertyField(serializedObject.FindProperty("entityType")); break; } } GUILayout.Space(10f); inputConditionList.DoLayoutList(); GUILayout.Space(10f); outputChangeList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); }