유니티에서 아마 시간 지연을 이용해서 무엇인가를 구현할 떄가 있다.
void OnCollisionEnter(Collision other)
{
if(other.transform.tag == "trap" || other.transform.tag =="Bullet"){ //tag가 trap이거나 Bullet라면,
rigidbody.velocity = Vector3.up * jump * 1.5f *Time.deltaTime; //(rigidbody가 적용된 상태에서) up방향으로 잠시 이동.
gameObject.transform.collider.enabled = false; //게임오브젝트의 collider를 enabled 시킴.
StartCoroutine(Die(0.01f)); //IEnumerator Die 실행.
}
IEnumerator Die(float waitTime)
{ //float형의 waitTime(지금 여기에선 0.01f)을 읽어들임. 0.01초라고 가정했을때 거의 바로 실행됨.
yield return new WaitForSeconds(1.0f); // WaitForSeconds(1.0f)초 후에 게임오브젝트 삭제 및 게임카운트 1개 감소.
Destroy (gameObject);
--HeartCnt;
}
IEnumerator 함수이름(float waitTime){
yield return new WaitForSeconds(몇초후에 아래 코드를 실행시킬 것인가);
위 시간이 흐르고 실행 시킬 코드.
yield return new...
....
}
[Unity] Rigidbody의 Interpolate 옵션 (0) | 2023.07.19 |
---|---|
[Unity] 자주쓰는 함수_(6) LookAt (0) | 2023.07.19 |
[Unity] 자주쓰는 함수_(4) OnMouse (0) | 2023.07.19 |
[Unity] 자주쓰는 함수_(3) GUI, OnGUI, 3D Text (0) | 2023.07.19 |
[Unity] 자주쓰는 함수_(2) 충돌 (0) | 2023.07.19 |