Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- joystick
- 자리배정
- 종결
- 스카이박스
- 장개
- JavaFX 기본
- 유저인터페이스
- 딜레이
- Unity
- 개조
- skybox
- JavaFX 코드
- 마법
- 원드
- 유니티
- 초등부
- javaFX
- 저울
- fxml
- 조이스틱
- delay
- 2014
- 스펙
- FXML 로딩
- KOI
- 풀이
- JavaFX 컨테이너
- 스태프
- 한국정보올림피아드시․도지역본선
- 개미
Archives
- Today
- Total
Sage
[Unity] 딜레이 주는 방법 본문
유니티에서 미사일이나 총알을 발사하거나 몬스터를 일정 시간 간격으로 생성하는 등 delay(시간 지연)를 줘야하는 경우가 있다.
여러 가지 방법을 정리해보았다.
1. 특정 시간 경과 이후 특정 작업 반복 실행하기
Coroutines으로 작업이 가능하지만 단순한 지연 이벤트를 처리하기는 Coroutines의 처리로직이 복잡해질 수 있다.
Time.deltaTime을 사용하는 방법
float timer; int waitingTime; void Start() { timer = 0.0; waitingTime = 2; inside = false; } void Update() { timer += Time.deltaTime; if(timer > waitingTime) { //Action timer = 0; } }
화면에 오브젝트가 나타난 뒤, 일정시간 이후 제거하려 한다면 다음과 같은 코드를 사용하면 된다.
3. Coroutine을 이용한 Action 지연 처리
4. 함수 지연 호출
function Start() { //Destroy the game object in 5 seconds Destroy(gameObject, 5); }
using UnityEngine; using System.Collections; public class Wait : MonoBehaviour { public bool check =true; int i =0; void Update () { if(Input.GetKeyDown(KeyCode.A)&&check) { check = false; print("Inside" + i++); StartCoroutine(WaitForIt()); } } IEnumerator WaitForIt() { yield return new WaitForSeconds(2.0f); check=true; } }
public Rigidbody projectile; void LaunchProjectile() { Rigidbody instance = Instantiate(projectile); instance.velocity = Random.insideUnitSphere * 5; // CancelInvoke(“LaunchProjectile”); // 필요할 경우 Invoke 취소처리 } void Start() { Invoke("LaunchProjectile", 2); // 2초뒤 LaunchProjectile함수 호출 Invoke("LaunchProjectile", 2, 0.3f); // 2초뒤 0.3초주기로 LaunchProjectile함수 반복 호출 }
5. 언제 Coroutine을 사용할까?
Coroutine은 Update함수의 내용이 너무 복잡해지는걸 원치 않을때 유용하게 사용될 수 있습니다.
※ 주의 : 여러개의 Coroutine이 같은 변수를 수정하고자 하면 찾기 어려운 오류를 발생시킬 수 있습니다.
'Project > Unity' 카테고리의 다른 글
[Unity] UI JoyStick 적용하기 (2) | 2017.11.27 |
---|---|
[Unity] SkyBox 적용하는 메뉴 위치 (1) | 2017.11.27 |
Comments