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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
public Type Execute() { IBoid[] agentTab = SteeringBehavior.GetAllAgent(); //for (int i = 0; i < agentTab.Length; i++) //{ // if (agentTab[i].GetTransform() == eatenTarget) // continue; // if (Vector3.Distance(owner.transform.position, agentTab[i].GetPosition()) <= fleeDistance) // { // steeringBehavior.AddForce(steeringBehavior.AvoidAllAgent(fleeDistance), .5f); // } //} steeringBehavior.AddForce(steeringBehavior.Flee(SwanController.Instance.transform.position), 1); //steeringBehavior.AddForce(steeringBehavior.AvoidObstacles(5, OBSTACLES_MASK, 180 / 2), 5f); if (targetController.LoseLife(DAMAGES_PER_SECONDS * Time.deltaTime)) { return(typeof(EnnemyIdleState)); } eatenTarget.position = Vector3.MoveTowards(eatenTarget.position, mouthTransform.position, .5f); return(GetType()); }