Invoke, InvokeRepeating
지연 호출, 일정 간격 호출 기능을 가지고 있는 Invoke, InvokeRepeating에 대해 알아보도록 하겠습니다.
- Invoke
Invoke (string methodName, float time)
invoke의 인자 값으로 methodName과 time이 들어 갑니다.
말그대로 첫번째에는 실행할 메소드의 이름을 넣어주고 두번째에는 몇초 후 메소드를 실행시킬것인지 시간을 적어 주시면 됩니다.
아래의 그림으로 예로 들면 "SpawnObject메소드를 2초후에 실행 시켜라" 라는 의미가 됩니다.
사용 예)
public class InvokeScript : MonoBehaviour {
public GameObject target;
void Start() {
Invoke ("SpawnObject", 2);
}
void SpawnObject() {
Instantiate(target, new Vector3(0, 2, 0), Quaternion.identity);
}
}
- InvokeRepeating
InvokeRepeating (string methodName, float time, float repeatRate)
invokeRepeating의 인자 값으로 methodName과 time이 들어가며 Invoke와 다르게 repeatRate라는 인자값이 하나더 추가 되었습니다.
time 까지는 Invoke와 동일하며 3번째 인자값은 몇초마다 한번씩 실행을 시킬 시간을 적어주시면 됩니다.
아래의 그림으로 예로 들면 "SpawnObject메소드를 2초후에 1초마다 실행 시켜라" 라는 의미가 됩니다.
사용 예)
public class InvokeRepeating : MonoBehaviour {
public GameObject target;
void Start() {
InvokeRepeating("SpawnObject", 2, 1);
}
void SpawnObject() {
float x = Random.Range(-2.0f, 2.0f);
float z = Random.Range(-2.0f, 2.0f);
Instantiate(target, new Vector3(x, 2, z), Quaternion.identity);
}
}
해당 Invoke 함수의 타임 인자값을 랜덤으로 돌릴 수 없습니다.
랜덤 값을 돌리긴 위해서는 코루틴(Coroutine) 라는 것을 이용해야 합니다.
코루틴 사용법 ↓↓↓↓↓
http://iflife1124.tistory.com/18
'유니티(unity)' 카테고리의 다른 글
유니티(unity) 현재 클래스에 특정 다른 C#스크립트 클래스 가져오기 (0) | 2017.12.11 |
---|---|
유니티(unity) 간단한 코루틴(Coroutine) 사용법 (0) | 2017.12.11 |
유니티(unity) Mathf.Clamp(클램프) 사용법 (0) | 2017.12.08 |
유니티(unity) prefab(프리팹) 만들기 (0) | 2017.12.07 |
유니티(unity) 카메라를 이용한 거울반사(Mirror reflection) 효과 적용 (0) | 2017.12.07 |