Game Development, 게임개발/개발

정해진 시간마다 Method 실행시키기 [Unity]

게임이 더 좋아 2021. 2. 25. 17:30
반응형
728x170

 

사실 저번에 랜덤위치에서 생성되게 했지만

솔직히 어떠한 조건을 만들어서 그 조건에 맞을 때 생성되게 하는 것은 정말 귀찮은 일이다.

 

++ 귀찮아서 메서드 만드는 것에 축하하며

 

그래서 이번에는 주기적으로 반복시키려고 한다. 마침 Unity에 유용한 메서드가 있다.

 

InvokeRepeating이란 메서드다.

 

{
    public GameObject[] animalPrefab;
    private float spawnRangeX = 20f;
    private float spawnposZ = 20;

    private float startDelay = 2;
    private float spawnInterval = 1.5f;
    // Start is called before the first frame update
    void Start()
    {
        InvokeRepeating("SpawnRandomAnimal", startDelay, spawnInterval);
    }

    // Update is called once per frame
    void Update()
    {
    
    }

    void SpawnRandomAnimal()
    {
        Vector3 spawnPos = new Vector3(Random.Range(-spawnRangeX, spawnRangeX), 0, spawnposZ);
        int animalIndex = Random.Range(0, animalPrefab.Length);
        Instantiate(animalPrefab[animalIndex], spawnPos, animalPrefab[animalIndex].transform.rotation);

    }
}

 

이 메서드를 알아보자면

역시 스샷은 안좋아

Invokes the method methodName in time seconds, then repeatdly every repeatRate seconds.라고 쓰여있다.

 

InvokeRepeating("실행시키고 싶은 메서드이름", "메서드를 실행하는 시간", "주기")라고 볼 수 있다.

 

결과물을 볼까?

하지만 결과물을 더 잘보기위해 나는 시간 간격을 줄여보았다.

 

 

오 굿굿

 

728x90
반응형
그리드형