コード例 #1
0
    void Start()
    {
        playerEntety          = FindObjectOfType <Player>();
        playerT               = playerEntety.transform;
        nextCampCheckTime     = timeBetweenCampingChacks + Time.time;
        campPosOld            = playerT.position;
        playerEntety.OnDeath += OnPlayerDeath;

        for (int i = 0; i < waves.Length; i++)
        {
            if (i == 0)
            {
                waves[0].enemyCount        = startAmount;
                waves[0].timeBetweenSpawns = startSpawnTime;
            }
            else
            {
                waves[i].enemyCount        = waves[0].enemyCount + waves[0].enemyCount * i;
                waves[i].timeBetweenSpawns = waves[i - 1].timeBetweenSpawns - waves[0].timeBetweenSpawns / waves.Length;
            }
        }

        map = FindObjectOfType <MapGenerator>();
        NextWave();
    }
コード例 #2
0
    protected override void Start()
    {
        base.Start();
        pathfinder = GetComponent <UnityEngine.AI.NavMeshAgent>();
        if (GameObject.FindGameObjectWithTag("GM").GetComponent <Spawner>().currentWaveNumber - 1 != 0)
        {
            pathfinder.speed += pathfinder.speed * ((GameObject.FindGameObjectWithTag("GM").GetComponent <Spawner>().currentWaveNumber - 1) / 2);
        }
        //Debug.Log(GameObject.FindGameObjectWithTag("GM").GetComponent<Spawner>().currentWaveNumber);
        if (GameObject.FindGameObjectWithTag("Player") != null)
        {
            currentSrate = State.Chasing;
            hasTarget    = true;

            target                = GameObject.FindGameObjectWithTag("Player").transform;
            targetEntety          = target.GetComponent <LivingEntety>();
            targetEntety.OnDeath += OnTargetDeath;

            myCollisionRadius     = GetComponent <CapsuleCollider>().radius;
            targetCollisionRadius = target.GetComponent <CapsuleCollider>().radius;

            StartCoroutine(UpdatePath());
        }
    }