티스토리 뷰
유니티용입니다.
싱글톤을 사용해서 접근할 수 있게 했습니다.
단 하나의 게임오브젝트에 컴퍼넌트로 올려놓으시고
TimerManager.Instance.StartTimer(초수, 액션);
으로 사용하시면 됩니다.
퍼포먼스 테스트를 조금 진행해봤는데,
사용 상에 문제가 되지는 않은 것으로 보입니다.
모바일 기기 테스트를 해본 것은 아니니까...
혹시 사용해 보시고 개선이 필요한 걸 느끼시면 알려주세요.
근데 유니티는 왜 타이머를 안 만들까요
게임에서 시간체크 하는 게 얼마나 많은데;
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 31 32 33 34 35 36 37 38 39 40 41 42 43 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class TimerManager : MonoBehaviour { public static TimerManager Instance; List<Timer> timers = new List<Timer>(); private void Awake() { if(Instance == null) { DontDestroyOnLoad(this); Instance = this; } } private void Update() { for(int i= timers.Count -1; i >= 0; i--) { timers[i].restTime -= Time.deltaTime; if(timers[i].restTime <= 0) { timers[i].OnTime(); timers.RemoveAt(i); } } } public void StartTimer(float time, System.Action OnTime) { timers.Add(new Timer(time, OnTime)); } } public class Timer { public System.Action OnTime; public float restTime; public Timer(float restTime, System.Action OnTime) { this.restTime = restTime; this.OnTime = OnTime; } } | cs |
'개발일기 > 유니티3D' 카테고리의 다른 글
유니티에서 각도 구할 때 Mathf.Atan()대신에 Mathf.Atan2를 쓰는 이유 (0) | 2018.10.02 |
---|---|
캐릭터컨트롤러로 10초만에 키보드로 이동 구현 (0) | 2018.10.01 |
아주 간단한 Unity3D 예제. (0) | 2018.09.30 |
유니티에서 Scene뷰 조종하기 꿀팁 (0) | 2018.09.29 |
유니티로 안드로이드 게임 개발 준비하기 (0) | 2018.09.05 |
댓글