Example #1
0
    public SteeringPipeline InitializeSteeringPipeline(DynamicCharacter orig, KinematicData dest)
    {
        //Pipeline
        SteeringPipeline pipe = new SteeringPipeline(orig.KinematicData)
        {
            MaxAcceleration = 15.0f

        };

        //Targeter
        Targeter MouseClickTargeter = new Targeter()
        {
            Target = dest
        };
        pipe.Targeters.Add(MouseClickTargeter);

        //Decomposer
        pathfindingDecomposer = new PathfindingDecomposer()
        {
            Graph = this.navMesh,
            Heuristic = new EuclideanDistanceHeuristic()
        };
        pipe.Decomposers.Add(pathfindingDecomposer);

        //Actuator - Default: Car behaviour
        Actuator actuator = new CarActuator()
        {
            MaxAcceleration = 15.0f,
            Character = orig.KinematicData
        };

        if (orig.GameObject.tag.Equals("Enemies"))
        {
            actuator = new TrollActuator()
            {
                MaxAcceleration = 10.0f,
                Character = orig.KinematicData
            };
        }
        pipe.Actuator = actuator;

        //Constraints
        foreach (DynamicCharacter troll in enemies)
        {
            TrollConstraint trollConstraint = new TrollConstraint()
            {
                Troll = troll,
                margin = 1.0f
        };
            pipe.Constraints.Add(trollConstraint);
        }

        MapConstraint mapConstraint = new MapConstraint()
        {
            chars = character,
            navMeshP = navMesh,
            margin = 1.0f
        };
        pipe.Constraints.Add(mapConstraint);

        return pipe;
    }
Example #2
0
        public SteeringPipeline InitializeSteeringPipeline(DynamicCharacter orig)
        {
            //Pipeline
            SteeringPipeline pipe = new SteeringPipeline(orig.KinematicData)
            {
                MaxAcceleration = 15.0f

            };

            //Targeter
            this.Targeter = new FixedTargeter();
            pipe.Targeters.Add(this.Targeter);

            //Decomposer
            pathfindingDecomposer = new PathfindingDecomposer()
            {
                Graph = this.navMesh,
                Heuristic = new EuclideanDistanceHeuristic()
            };
            pipe.Decomposers.Add(pathfindingDecomposer);

            //Actuator - Default: Car behaviour
            Actuator actuator = new CarActuator()
            {
                MaxAcceleration = 15.0f,
                Character = orig.KinematicData
            };

            pipe.Actuator = actuator;

            /*
            if (orig.GameObject.tag.Equals("Enemies"))
            {
                actuator = new TrollActuator()
                {
                    MaxAcceleration = 10.0f,
                    Character = orig.KinematicData
                };
            }
            pipe.Actuator = actuator;
            */

            return pipe;
        }