2.3.7 (벽에 충돌되었을 때 딜레이 설정하기)
- 게임 종료가 되면 바로 재시작 하기 떄문에 몇m 거리를 갔는지 알기 힘듦.
- MyPlayer.cs 변수추가
private bool _IsGameOver = false;
private float _fGameOverTime = 0.0f;
- Start() 함수에 코드 추가
Time.timeScale = 1.0f; //1 :정상속도, 0.5 : 50%속도
-> time이라는 내장함수
- Update() 함수에 코드 추가
OnRestart();
- private void OnCollisionEnter(Collision collision)
{
//벽이랑 충돌했을때 0이라고 멈추게함.
Time.timeScale = 0.0f;
_IsGameOver = true;
//켰을 때 부터 계속 흐른 시간!
_fGameOverTime = Time.realtimeSinceStartup;
//SceneManager.LoadScene("Main"); //현재 씬 이름 꼭 맞출 것. 밑에 함수로 내려갔음!!!.
}
private void OnRestart()
{
if(_IsGameOver == true)
{
if (Time.realtimeSinceStartup - _fGameOverTime > 2.0f)
SceneManager.LoadScene("Main");
}
}
Time.timeScale -> ex) 게임이 특수기능을 썼을때 - 슬로우 모션같은 or 게임을 리플레이할때
스타같은 게임을 할 때 시간순서대로 벌어진 일을 큐에 저장하고 FIFO함.
* 게임쪽 가고싶으면 디자인 패턴 공부하기
2.4.1 게임균형조정하기
- Top과 Bottom 이름의 큐브 2개 생성.
(Top -> positon 0 10 0 Scale 20 1 1, Bottom -> positon 0 -10 0 Scale 20 1 1)
1) 중력 변경하기
edit > project Settings > physics > Y:-20 (9.8은 중력가속도임ㅋ)
2) 플레이어 점프력 변경하기
Player 오브젝트 > jump Power : 10 변경
* 중력은 하나로 밖에 세팅이 안됨.
[정리]
- SceneManager.LoadScene() 함수 이해하기
- 코루틴 이해하기
- Time.deltaTime 변수를 이용한 이동처리
- Time.realtimeSinceStartup 변수 이해하기
- PC 빌드 환경 구축
난이도에 따른 속도 가속화 - (시간에따를 떄) interval이 있으면 안됨.
* 추가사항 - 터치 이벤트 처리하기 : MyPlayer.cs
'Unity' 카테고리의 다른 글
0620 GyroBall 2 (0) | 2019.06.20 |
---|---|
0619 GyroBall (0) | 2019.06.19 |
0618 Flappy Bird (Mini Game) (0) | 2019.06.18 |
0618 유니티기초2 (0) | 2019.06.18 |
0617 유니티 기초 (0) | 2019.06.17 |