티스토리 뷰
유니티를 개발할때 일정 시간 이후 이벤트를 걸어야 할 경우가 많습니다!
이럴때 어떻게 타이머를 설정해야 할까요?
그 방법에 대해서 빠르게 알아보겠습니다.
오늘 설명할 방법은 3가지입니다.
1. Time.deltatime을 활용
2. 코루틴 활용
3. invoke 활용
먼저 Time.deltatime을 활용한 방법을 알아보겠습니다. 해당 방법은 다른 이론없이 update내에서 간단하게 구현할 수 있는 방법입니다.
float dTime = 0;
// Update is called once per frame
void Update()
{
dTime += Time.deltaTime;
if(dTime >= 5f){
Debug.Log("5초 경과!!");
dTime = 0;
}
- 전역변수로 dTime을 설정해줍니다. dTime에 Time.deltaTime을 업데이트마다 더해 시간이 얼마나 흘렀는지 체크한 합니다.
- if문을 활용해 dTime에 원하는 초를 초과했는지 체크하면 완료입니다.
두번째, 코루틴을 활용한 방법입니다. 코루틴은 멀티쓰레드와는 다른 개념이란점 유의해 주시길 부탁드립니다.
IEnumerator Timer(float time){
yield return new WaitForSeconds(time);
//액션
}
코루틴의 WaitForSeconds를 활용하면 타이머를 구현 할 수 있습니다. (코루틴을 사용할때는 중복을 조심하셔야합니다.)
마지막은 invoke 입니다. invoke는 많은 초급 개발자들이 모르고 있는 방법입니다. 사용법은 다음과 같습니다.
void Update()
{
Invoke("Action", 5f);
}
void Action(){
Debug.Log("5초 경과!!");
//액션
}
Invoke(함수의 이름, 시간)입니다. Update에 넣은건 예시라 필요한 부분에서 Invoke를 호출하시면 됩니다.
그럼 다음 글에서 뵙겠습니다!
반응형
'개발 > UNITY3D' 카테고리의 다른 글
[Unity3D] 유니티 게임 오브젝트(캐릭터)를 이동시키는 방법들 (0) | 2018.02.23 |
---|---|
[Unity3D] 유니티 스크립트 에디터 변경 (0) | 2018.02.23 |
[Unity3D] 유니티 설치 방법 (0) | 2018.02.20 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인디게임
- 인디
- 용사
- 유니티
- QueryDSL
- 신작
- mobx
- 턴드림
- 게임
- 모험
- 이명규
- frontend
- 우주게임
- 보따리장사
- JPA
- Java
- 개발
- JIRA
- 스크럼
- JPQL
- 튜토리얼
- 게임개발
- 개발일지
- 사이드프로젝트
- studio108
- 게임 개발
- spring
- Lombok
- Unity3D
- spring boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함