public void ManageEditor(MovementAIEditor editor)
        {
            AIType      aiType      = (AIType)editor.aiType_Prop.enumValueIndex;
            AIAlgorithm aiAlgorithm = (AIAlgorithm)editor.aiAlgorithm_Prop.enumValueIndex;

            switch (aiAlgorithm)
            {
            case AIAlgorithm.KinematicSeek:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                break;

            case AIAlgorithm.KinematicFlee:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                break;

            case AIAlgorithm.KinematicArrive:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.satisfactionRadius_Prop, new GUIContent("Satisfaction radius"));
                EditorGUILayout.PropertyField(editor.timeToTarget_Prop, new GUIContent("Time to target"));
                break;

            case AIAlgorithm.KinematicWander:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.maxRotation_Prop, new GUIContent("Max rotation"));
                break;
            }
        }
예제 #2
0
        public void ManageEditor(MovementAIEditor editor)
        {
            AIType      aiType      = (AIType)editor.aiType_Prop.enumValueIndex;
            AIAlgorithm aiAlgorithm = (AIAlgorithm)editor.aiAlgorithm_Prop.enumValueIndex;

            switch (aiAlgorithm)
            {
            case AIAlgorithm.DynamicSeek:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.maxAcceleration_Prop, new GUIContent("Max acceleration"));
                break;

            case AIAlgorithm.DynamicFlee:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.maxAcceleration_Prop, new GUIContent("Max acceleration"));
                break;

            case AIAlgorithm.DynamicArrive:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.maxAcceleration_Prop, new GUIContent("Max acceleration"));
                EditorGUILayout.PropertyField(editor.targetRadius_Prop, new GUIContent("Target radius"));
                EditorGUILayout.PropertyField(editor.slowRadius_Prop, new GUIContent("Slow radius"));
                EditorGUILayout.PropertyField(editor.timeToTarget_Prop, new GUIContent("Time to target"));
                break;

            case AIAlgorithm.DynamicAlign:
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.maxRotation_Prop, new GUIContent("Max rotation"));
                EditorGUILayout.PropertyField(editor.maxAngularAcceleration_Prop, new GUIContent("Max angular acceleration"));
                EditorGUILayout.PropertyField(editor.targetRadius_Prop, new GUIContent("Target radius"));
                EditorGUILayout.PropertyField(editor.slowRadius_Prop, new GUIContent("Slow radius"));
                EditorGUILayout.PropertyField(editor.timeToTarget_Prop, new GUIContent("Time to target"));
                break;

            case AIAlgorithm.DynamicVelocityMatch:
                EditorGUILayout.PropertyField(editor.maxSpeed_Prop, new GUIContent("Max speed"));
                EditorGUILayout.PropertyField(editor.target_Prop, new GUIContent("Target"));
                EditorGUILayout.PropertyField(editor.maxAcceleration_Prop, new GUIContent("Max acceleration"));
                EditorGUILayout.PropertyField(editor.timeToTarget_Prop, new GUIContent("Time to target"));
                break;
            }
        }