Exemplo n.º 1
0
 public virtual void do_actions(AI_controller_3d controller)
 {
     foreach (behavior.Behavior behavior in behaviors)
     {
         behavior.act(controller);
     }
 }
Exemplo n.º 2
0
                        public override Vector3 act(AI_controller_3d controller)
                        {
                            stats.Orbit stat = controller.stat as stats.Orbit;
                            if (stat == null)
                            {
                                Debug.LogError(string.Format(
                                                   "Los stat de {0} no son del tipo orbit",
                                                   controller.name));
                                return(Vector3.zero);
                            }
                            Vector3 target_position =
                                controller.target.transform.position;
                            float angle = controller.properties.angle_x;

                            angle += (Time.deltaTime * stat.orbit_delta) % 1f;
                            controller.properties.angle_x = angle;

                            Vector3 desire = helper.shapes.Ellipse.evaluate(
                                stat.x_radius, stat.z_radius, angle);

                            Vector3 result = new Vector3(
                                desire.x + target_position.x,
                                target_position.y, desire.z + target_position.z);

                            result = desire + target_position;

                            controller.controller.desire_direction =
                                steering.seek(
                                    result, controller.controller.transform.position);
                            return(result);
                        }
Exemplo n.º 3
0
 public void prepare(AI_controller_3d controller)
 {
     foreach (behavior.Behavior behavior in behaviors)
     {
         behavior.prepare(controller);
     }
 }
Exemplo n.º 4
0
 public override Vector3 act(AI_controller_3d controller)
 {
     if (controller.target != null)
     {
         controller.controller.look_at(
             controller.target.transform);
     }
     return(Vector3.zero);
 }
Exemplo n.º 5
0
                            public override float calculate(
                                AI_controller_3d controller, string angle_letter)
                            {
                                float angle = get_angle(controller, angle_letter);

                                angle += Time.deltaTime * delta_period % 1f;
                                set_angle(controller, angle_letter, angle);
                                angle = Mathf.Deg2Rad * 360 * angle;
                                return(Mathf.Sin(angle) * radius);
                            }
Exemplo n.º 6
0
                        public override void prepare(AI_controller_3d controller)
                        {
                            Vector3 current_position =
                                controller.controller.transform.position;
                            Vector3 direction =
                                current_position
                                - controller.target.transform.position;

                            controller.properties.angle_x = helper.shapes.Ellipse
                                                            .get_progrest(direction);
                        }
Exemplo n.º 7
0
                            public float get_angle(
                                AI_controller_3d controller, string letter)
                            {
                                switch (letter)
                                {
                                case "x":
                                    return(controller.properties.angle_x);

                                case "z":
                                    return(controller.properties.angle_z);
                                }
                                return(0f);
                            }
Exemplo n.º 8
0
                        public override Vector3 act(AI_controller_3d controller)
                        {
                            var desire_direction = steering.follow_waypoints(
                                controller.target.gameObject,
                                controller.gameObject,
                                ref controller.properties.index);

                            controller.controller.desire_direction =
                                steering.seek(
                                    desire_direction,
                                    controller.controller.transform.position);
                            return(desire_direction);
                        }
Exemplo n.º 9
0
                        public override Vector3 act(AI_controller_3d controller)
                        {
                            var properties = controller.properties;

                            properties.sum_delta_period += Time.deltaTime;
                            if (properties.sum_delta_period > delta_period)
                            {
                                foreach (var weapon in controller.weapons)
                                {
                                    weapon.attack();
                                }
                                properties.sum_delta_period -= delta_period;
                            }
                            return(Vector3.zero);
                        }
Exemplo n.º 10
0
                            public void set_angle(
                                AI_controller_3d controller, string letter,
                                float angle)
                            {
                                switch (letter)
                                {
                                case "x":
                                    controller.properties.angle_x = angle;
                                    break;

                                case "z":
                                    controller.properties.angle_z = angle;
                                    break;
                                }
                            }
Exemplo n.º 11
0
                        public override Vector3 act(AI_controller_3d controller)
                        {
                            float x = 0, y = 0, z = 0;

                            if (x_behavior != null)
                            {
                                x = x_behavior.calculate(controller, "x");
                            }
                            if (y_behavior != null)
                            {
                                y = y_behavior.calculate(controller, "y");
                            }
                            if (z_behavior != null)
                            {
                                z = z_behavior.calculate(controller, "z");
                            }

                            Vector3 result = new Vector3(x, y, z) + direction_move;

                            controller.controller.desire_direction = result;

                            /*
                             * float angle = controller.properties.angle_x;
                             * angle += ( Time.time* (1/2f)) % 1f;
                             * controller.properties.angle_x = angle;
                             *
                             * angle = Mathf.Deg2Rad * 360 * angle;
                             *
                             * result = new Vector3(
                             *      Mathf.Sin( angle ) * 1f, 0f, -1f );
                             * //result = Vector3.back + result;
                             *
                             * controller.controller.desire_direction = result;
                             */
                            return(result);
                        }
Exemplo n.º 12
0
 public virtual void prepare(AI_controller_3d controller)
 {
 }
Exemplo n.º 13
0
 public abstract Vector3 act(AI_controller_3d controller);
Exemplo n.º 14
0
 public abstract float calculate(
     AI_controller_3d controller, string angle);
Exemplo n.º 15
0
 public void update(AI_controller_3d controller)
 {
     do_actions(controller);
 }