Unity

0619 Flappy Bird

피곤핑 2019. 6. 19. 10:39

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

안드로이드 환경에서 실행 할 수 있또록