public override void Enter() { ship.StartCoroutine(IUpdate()); patrolBehaviour = ship.boid.GetBehaviour <OffsetPursue> (); Pursue pursueBehaviour = ship.boid.GetBehaviour <Pursue> (); Wander wanderBehaviour = ship.boid.GetBehaviour <Wander> (); if (wanderBehaviour != null) { wanderBehaviour.enabled = true; wanderBehaviour.weight = 0.25f; } if (patrolBehaviour != null) { patrolBehaviour.enabled = true; } if (pursueBehaviour != null) { pursueBehaviour.enabled = false; } }
public override void Enter() { updateRefresh = 0.5f; Wander wanderBehaviour = ship.boid.GetBehaviour <Wander> (); if (wanderBehaviour != null) { wanderBehaviour.enabled = true; wanderBehaviour.weight = 0.25f; } offsetPursueBehaviour = ship.boid.GetBehaviour <OffsetPursue> (); if ((offsetPursueBehaviour == null) || (escortingShip == null)) { AttackEmporer(); } else { offsetPursueBehaviour.enabled = true; offsetPursueBehaviour.leader = escortingShip; offsetPursueBehaviour.RefreshOffset(); } ship.StartCoroutine(IUpdate()); }
public override void Enter() { boid = owner.GetComponent <Boid>(); offsetPursue = owner.GetComponent <OffsetPursue>(); offsetPursue.leader = leader; offsetPursue.enabled = true; lastVelocityMagnitude = -1; }
public ProtonPatrolState(StateMachine _stateMachine, Ship _ship, BoidActor _leader) : base(_stateMachine, _ship) { patrolBehaviour = ship.boid.GetBehaviour <OffsetPursue> (); if (patrolBehaviour != null) { patrolBehaviour.leader = _leader; } }
private void Start() { targetingSystem = GetComponent <TargetingSystem>(); pursue = GetComponent <Pursue>(); arrive = GetComponent <Arrive>(); seek = GetComponent <Seek>(); flee = GetComponent <Flee>(); fleeAndArrive = GetComponent <FleeAndArrive>(); offsetPursue = GetComponent <OffsetPursue>(); }
public override void Think() { // Update the offset as it might change as members die. OffsetPursue offsetPursue = owner.GetComponent <OffsetPursue>(); Squad squad = owner.transform.parent.transform.GetComponent <Squad>(); Vector3 offset = squad.getSquadOffset(owner.gameObject); offsetPursue.leader = squad.leader.GetComponent <Boid>(); offsetPursue.offset = offset; }
GameObject CreateFollower(Vector3 offset, Boid leader) { GameObject follower = GameObject.Instantiate <GameObject>(prefab); follower.transform.position = this.transform.TransformPoint(offset); follower.transform.parent = this.transform; follower.transform.rotation = this.transform.rotation; OffsetPursue op = follower.AddComponent <OffsetPursue>(); op.leader = leader; return(follower); }
// Use this for initialization void Start() { //select whether leader or follower to activate behaviour if (leader == true) { s = GetComponent <Seek> (); } else { o = GetComponent <OffsetPursue> (); } rb = GetComponent <Rigidbody>(); }
public override void Enter() { OffsetPursue offsetPursue = owner.GetComponent <OffsetPursue>(); Squad squad = owner.transform.parent.transform.GetComponent <Squad>(); Vector3 offset = squad.getSquadOffset(owner.gameObject); offsetPursue.predefinedOffset = true; offsetPursue.leader = squad.leader.GetComponent <Boid>(); offsetPursue.offset = offset; owner.GetComponent <ObstacleAvoidance>().enabled = true; owner.GetComponent <OffsetPursue>().enabled = true; }
private void LookForBomber() { OffsetPursue offsetPursue = ship.boid.GetBehaviour <OffsetPursue> (); if (offsetPursue != null) { BoidActor escortingShip = offsetPursue.leader; if (escortingShip != null) { stateMachine.ChangeState(new IntercepterEscortState(stateMachine, ship, escortingShip)); } else { stateMachine.ChangeState(new IntercepterEmporerState(stateMachine, ship, ShipManager.main.emporer)); } } }
void CreateFollower(Vector3 offset, Boid leader) { GameObject follower = GameObject.Instantiate <GameObject> (prefab); follower.transform.position = leader.transform.TransformPoint(offset); follower.transform.parent = this.transform; follower.transform.rotation = this.transform.rotation; OffsetPursue op = follower.AddComponent <OffsetPursue> (); op.leader = leader; Seek seek = follower.AddComponent <Seek> (); seek.enabled = !seek.enabled; Boid b = follower.GetComponent <Boid> (); b.maxSpeed = 6.5f; }
void Awake() { //instantiaite leader GameObject leaderEagleShip = GameObject.Instantiate <GameObject>(prefab); leaderEagleShip.transform.position = transform.position; Seek leaderSeek = leaderEagleShip.AddComponent <Seek>(); //seek target position 1000 units ahead of leader leaderSeek.target = new Vector3(0, 0, 1000); for (int i = 1; i < followers + 1; i++) { Vector3 row = leaderEagleShip.transform.position; //adjust for row relative to leader position row.z -= gap * i; //left follower position Vector3 leftFollowerPosition = row; //adjust x for column position leftFollowerPosition.x -= gap * i; //right follower position Vector3 rightFollowerPosition = row; //adjsut x for column position rightFollowerPosition.x += gap * i; //instantiate left follower GameObject leftFollowerEagleShip = GameObject.Instantiate <GameObject>(prefab); leftFollowerEagleShip.transform.position = leftFollowerPosition; OffsetPursue leftFollowPursue = leftFollowerEagleShip.AddComponent <OffsetPursue>(); //pursue leader leftFollowPursue.target = new Vector3(0, 0, 1000); leftFollowPursue.leader = leaderEagleShip.GetComponent <Boid>(); //instantiate right follower GameObject rightFollowerEagleShip = GameObject.Instantiate <GameObject>(prefab); rightFollowerEagleShip.transform.position = rightFollowerPosition; OffsetPursue rightFollowPursue = rightFollowerEagleShip.AddComponent <OffsetPursue>(); //pursue leader rightFollowPursue.target = new Vector3(0, 0, 1000); rightFollowPursue.leader = leaderEagleShip.GetComponent <Boid>(); } }
//Method to create Follwers void CreateFollower(Vector3 offset, Boid leader) { GameObject follower = GameObject.Instantiate <GameObject> (prefab); follower.transform.position = leader.transform.TransformPoint(offset); follower.transform.parent = this.transform; follower.transform.rotation = this.transform.rotation; follower.name = "follower"; //add steering behaviours OffsetPursue op = follower.AddComponent <OffsetPursue> (); op.leader = leader; Seek seek = follower.AddComponent <Seek> (); seek.enabled = !seek.enabled; Path path = follower.AddComponent <Path> (); path.mothership = mothership; FollowPath fpath = follower.AddComponent <FollowPath> (); fpath.path = path; fpath.enabled = !fpath.enabled; ObstacleAvoidance obavd = follower.AddComponent <ObstacleAvoidance> (); obavd.enabled = !obavd.enabled; //Add boid and seek to the bombs(missiles) int count = follower.transform.Find("Bombs").gameObject.transform.childCount; for (int i = 0; i < count; i++) { Boid b = follower.transform.Find("Bombs").GetChild(i).gameObject.AddComponent <Boid> (); b.maxSpeed = 25f; b.explosionPrefab = expPrefab; Seek sb = follower.transform.Find("Bombs").GetChild(i).gameObject.AddComponent <Seek> (); sb.target = RandomTarget(); sb.enabled = !sb.enabled; } }