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>();
 }
Beispiel #2
0
 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);
    }
Beispiel #4
0
    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);
    }