コード例 #1
0
ファイル: Entity.cs プロジェクト: TotalAI/TotalAI-2D-Demo
 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);
             }
         }
     }
 }
コード例 #2
0
ファイル: EntityTriggerEditor.cs プロジェクト: ming81/TotalAI
        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();
        }