Пример #1
0
    IEnumerator SpawnCrow()
    {
        crowHasSpawned          = false;
        transform.localPosition = new Vector3(Random.Range(-0.375f, 0.375f), 2f, Random.Range(-0.225f, 0.5f));

        RaycastHit hit;

        if (Physics.Raycast(transform.position, Vector3.down, out hit, layerMask))
        {
            Vector3 randomSpawnPosition = new Vector3(Random.Range(transform.parent.position.x - 10f, transform.parent.position.x + 10f),
                                                      transform.parent.position.y + 10f,
                                                      Random.Range(transform.parent.position.z - 10f, transform.parent.position.z + 10f));
            Debug.Log("RandomSpawnPoint:" + randomSpawnPosition);
            CrowMovement crowObject = ObjectPooler.instance.SpawnFromPool("Crow", randomSpawnPosition, Quaternion.identity).GetComponent <CrowMovement>();
            crowCount++;
            crowObject.moveSpot = hit.point;
            crowHasSpawned      = true;
            if (crowCount < 5)
            {
                yield return(new WaitForSeconds(Random.Range(10f, 16f)));

                yield return(StartCoroutine(SpawnCrow()));
            }
        }
        else
        {
            yield return(StartCoroutine(SpawnCrow()));
        }
    }
Пример #2
0
 void Awake()
 {
     animator     = GetComponent <Animator>();
     crow         = GetComponentInParent <Crow>();
     crowMovement = GetComponentInParent <CrowMovement>();
 }