Ejemplo n.º 1
0
    public Type Execute()
    {
        wanderForce = steeringBehavior.Wander(stateData.turnChance, stateData.circleDistance, stateData.circleRadius, wanderForce);
        steeringBehavior.AddForce(wanderForce, .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(AVOID_DISTANCE, FIELD_OF_VIEW), .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);

        return(this.GetType());
    }
Ejemplo n.º 2
0
    public Type Execute()
    {
        wanderForce = steeringBehavior.Wander(stateData.turnChance, stateData.circleDistance, stateData.circleRadius, wanderForce);
        steeringBehavior.AddForce(wanderForce, .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(AVOID_DISTANCE, FIELD_OF_VIEW), .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);
        steeringBehavior.AddForce(steeringBehavior.Follow(perimeterController.transform.position), Vector3.Distance(owner.transform.position, perimeterController.transform.position) / (perimeterController.radius * 100));

        return(this.GetType());
    }
Ejemplo n.º 3
0
    public Type Execute()
    {
        if (controller.target)
        {
            return(typeof(EnnemyChaseState));
        }

        wanderForce = steeringBehavior.Wander(stateData.turnChance, stateData.circleDistance, stateData.circleRadius, wanderForce);;
        steeringBehavior.AddForce(wanderForce, .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(fov.Radius, fov.HalfAngle * 2), .3f);

        return(this.GetType());
    }
Ejemplo n.º 4
0
    public Type Execute()
    {
        if (controller.target)
        {
            return(typeof(EnnemyChaseState));
        }

        wanderForce = steeringBehavior.Wander(stateData.turnChance, stateData.circleDistance, stateData.circleRadius, wanderForce);
        steeringBehavior.AddForce(wanderForce, .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(fov.Radius, fov.HalfAngle * 2), .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);
        steeringBehavior.AddForce(steeringBehavior.Follow(perimeterController.transform.position), Vector3.Distance(owner.transform.position, perimeterController.transform.position) / (perimeterController.radius * 100));

        return(this.GetType());
    }
Ejemplo n.º 5
0
    public Type Execute()
    {
        if (Vector3.Distance(leaderToFollow.position, Owner.transform.position) > stateData.maxFollowDistance)
        {
            return(typeof(BabyWanderState));
        }

        if (Vector3.Distance(leaderToFollow.position, Owner.transform.position) >= stateData.closeEnoughDistance)
        {
            steeringBehavior.AddForce(steeringBehavior.Follow(leaderToFollow.position), .7f);
        }
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(AVOID_DISTANCE, FIELD_OF_VIEW), .3f);

        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);

        return(this.GetType());
    }
Ejemplo n.º 6
0
    public Type Execute()
    {
        if (targetToFollow == null)
        {
            return(typeof(EnnemyIdleState));
        }

        if (Vector3.Distance(targetToFollow.position, Owner.transform.position) <= stateData.closeEnoughDistance)
        {
            return(typeof(EnnemyEatingState));
        }

        steeringBehavior.AddForce(steeringBehavior.Follow(targetToFollow.position), .7f);
        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(fov.Radius, fov.HalfAngle * 2), .3f);

        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);

        return(this.GetType());
    }
Ejemplo n.º 7
0
    public Type Execute()
    {
        if (Time.time >= startTimeState + stateDuration)
        {
            return(typeof(EnnemyIdleState));
        }

        IBoid[] agentTab = SteeringBehavior.GetAllAgent();
        for (int i = 0; i < agentTab.Length; i++)
        {
            if (Vector3.Distance(owner.transform.position, agentTab[i].GetPosition()) <= stateData.fleeDistance)
            {
                steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(stateData.fleeDistance), .3f);
            }
        }
        steeringBehavior.AddForce(steeringBehavior.Flee(SwanController.Instance.transform.position), .3f);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);
        return(GetType());
    }
Ejemplo n.º 8
0
    public Type Execute()
    {
        if (Time.time >= startTime + stateDuration)
        {
            return(typeof(BabyWanderState));
        }

        steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(stateData.fleeDistance), 5);
        steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(fov.FovOrigin, fov.Radius, stateData.OBSTACLES_MASK, fov.HalfAngle), 5f);

        IBoid[] agentTab = SteeringBehavior.GetAllAgent();
        for (int i = 0; i < agentTab.Length; i++)
        {
            if (agentTab[i].GetTransform().GetComponent <EnnemyController>())
            {
                steeringBehavior.AddForce(steeringBehavior.Flee(agentTab[i].GetPosition()), 1);
            }
        }
        return(this.GetType());
    }