public static void UpdateStateFixZone(FixZone fixZone) { float xPositionTeleport = fixZone.GameObjectFixZone.transform.position.x; float zPositionTeleport = fixZone.GameObjectFixZone.transform.position.z; float xPositionAvatar; float zPositionAvatar; float error = 1f; GameObject _whoTaken = null; for (int i = 0; i < DamagedBotBehavior.Avatars.Length; i++) { xPositionAvatar = DamagedBotBehavior.Avatars[i].GameObjectAvatar.transform.position.x; zPositionAvatar = DamagedBotBehavior.Avatars[i].GameObjectAvatar.transform.position.z; if (((xPositionTeleport - error) < xPositionAvatar && xPositionAvatar < (xPositionTeleport + error)) && ((zPositionTeleport - error) < zPositionAvatar && zPositionAvatar < (zPositionTeleport + error))) { _whoTaken = DamagedBotBehavior.Avatars[i].GameObjectAvatar; break; } else { _whoTaken = null; } } fixZone.WhomTaken = _whoTaken; }
public void UpdateStateFixZone(GameObject _actorGameObject, FixZone fixZone) { Actor[] actorsInScene = _actorGameObject.GetComponent <AI_behaviour>().actors; /*Used to calculate area * near to interactive point */ float xPositionTeleport = fixZone.gameObjectFixZone.transform.position.x; float zPositionTeleport = fixZone.gameObjectFixZone.transform.position.z; float xPositionAvatar; float zPositionAvatar; float error = 1f; GameObject _whoTaken = null; //foreach actor for (int i = 0; i < actorsInScene.Length; i++) { //Get actor's position xPositionAvatar = actorsInScene[i].actorGameObject.transform.position.x; zPositionAvatar = actorsInScene[i].actorGameObject.transform.position.z; //if close to a interactive point if (((xPositionTeleport - error) < xPositionAvatar && xPositionAvatar < (xPositionTeleport + error)) && ((zPositionTeleport - error) < zPositionAvatar && zPositionAvatar < (zPositionTeleport + error))) { //store this actor as active in interactive point and break cycle _whoTaken = actorsInScene[i].actorGameObject; break; } else { //actor is not close to interactive point _whoTaken = null; } } //store variable fixZone.whoTaken = _whoTaken; }