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 | 29 | 30 |
Tags
- skybox
- ObjectPool
- 스택
- 프로그래머스
- 비선형자료구조
- invokec#events
- delegate
- InputManager
- inputsystem
- c#
- 유니티
- 배열
- LINQ
- 람다식
- 자료구조
- script
- 효과음
- 직렬화
- BGM
- 인터페이스
- UI
- Generic
- 코루틴
- 메서드
- 장애물달리기
- soundmanager
- 유한상태머신
- 스파르타내일배움캠프
- FSM
- unity
Archives
- Today
- Total
Unity 개발일지
[Unity] 게임이 끝났을 때 멈추기, 재시작 하기 본문
1. 시간의 흐름을 조정
Time.timeScale 프로퍼티 사용
Time.timeScale 는 시간이 경과하는 크기를 나타내며 값을 수정하여 시간이 흐르는 속도(배율)을 조절할 수 있다.
2. 코드 작성
시간이 30초가 지나거나 cardCount 가 0 이되면 timeScale이 0 이 되고 endTxt를 출력한다.
재시작을 고려하여 Update 함수에 timeScale을 1로 설정하였다.
Retry 버튼을 만들기 위하여 Script를 작성하였다.
3. Unity 엔진 내 적용
EndTxt 텍스트에 Button 컴포넌트와 RetryButton 스크립으를 적용하고 On Click 시 RetryButton의 Retry 함수를 실행하도록 적용하였다.
4. 추가사항
* Time.timeScale = 0; 일때 Update()는 실행되고 FixedUpdate()는 실행되지 않는다.
>> Update는 프레임마다 호출이며, FixedUpdate는 독립적인 타이머가 존재하여 그떄마다 호출된다.
비슷한 예로 Coroutine에서 WaitForSeconds는 멈추고 WautForSecondsRealtime은 멈추지 않는다.
* 해당 함수를 이용하여 Fade Effect를 만들 수 있다.
* Audio/Sound의 속도는 timeScale로 제어할 수 없다.
>> AudioSource의 Pitch값을 변경하여 제어할 수 있다.
반응형
'Unity 개발' 카테고리의 다른 글
[Unity] Script를 이용한 UI 조작 (0) | 2024.04.17 |
---|---|
[Unity] 스크립트를 이용해 이미지 넣기 (0) | 2024.04.17 |
[Unity] BGM, 효과음 넣기 (0) | 2024.04.16 |
[Unity] 화면에 시간의 흐름 숫자로 표시하기 (0) | 2024.04.14 |
[Unity] 어플리케이션 종료 ,ESC 게임종료 (0) | 2024.04.13 |