public void Init(Transform spawnPosition, List <Character> characters, SwarmMemberConfig config) { this.transform.position = spawnPosition.position; this.characters = characters; this.config = config; swarmMembers = new List <SwarmMember>(); }
private void Init(SwarmController controller, SwarmMemberConfig conf, Transform target) { this.controller = controller; this.conf = conf; this.target = target; }
public static SwarmController CreateNew(Transform spawnPosition, Transform swarmControllerPrefab, Transform swarmMemberPrefab, List <Character> characters, SwarmMemberConfig config) { var swarmPrefab = Instantiate(swarmControllerPrefab, swarmControllerPrefab.position, Quaternion.identity); var swarmController = swarmPrefab.GetComponent <SwarmController>(); var destinationSetter = swarmController.GetComponent <AIDestinationSetter>(); swarmController.Init(spawnPosition, characters, config); var closestCharacter = swarmController.FindClosestSquadMember(); destinationSetter.target = closestCharacter.transform; swarmController.currentTarget = closestCharacter.transform; swarmController.spawnPosition = spawnPosition; swarmController.memberPrefab = swarmMemberPrefab; for (int i = 0; i < config.swarmMaxLimit; i++) { var swarmMember = SwarmMember.CreateNew(swarmMemberPrefab, swarmController, config, swarmController.currentTarget); swarmController.swarmMembers.Add(swarmMember); } return(swarmController); }
static public SwarmMember CreateNew(Transform swarmMemberPrefab, SwarmController controller, SwarmMemberConfig config, Transform target) { var swarmPrefab = Instantiate(swarmMemberPrefab, controller.transform.position, Quaternion.identity); var swarmMember = swarmPrefab.GetComponent <SwarmMember>(); swarmMember.Init(controller, config, target); return(swarmMember); }