오늘은 게임을 자동으로 불러오는것으로 Loader Script를 만들고 기존의 GameManager를 Prefebs로 이동하여 Prefebs에서 GameManager를 Loader에 참조해주었다 GameManager의 Script에서 만든 GameManager instance를 Singleton을 사용하여 어느 Script에서든 한개의 GameManager를 참조하였다 혹시 GameManager instance가 두개 이상이 되면 Destroy로 삭제 해주었고
적과 캐릭터의 이동을 관리하는 Moving Script를 abstract로 작성하였다 millisecond마다 Component를 확인하여 상속받아 Override한 클래스의 좌표를 확인하고 충돌과 공격을 함께 하였는지 체크한다. 또 Move라는 함수를 작성하여 상속받은 클래스가 이동을 할 수 있는지, 이동 할 수 있는 거리를 체크하고, 자기 자신은 충돌할 수 없도록 시작 시 boxColider.enable(false)를 실행하고, 해당 위치 라인의 시작에서 끝까지 충돌을 확인하고 RaycasHit2D.transform으로 체크하여 충돌이 없을시 StartCoroutine로 시간 격차를 두고 이동하는 함수를 실행한다. 캐릭터는 Wall을 파괴할 수 있는데
설정해준 Wall의 FullHP를 벽과 충돌하고 캐릭터가 공격을 하면 현재의 HP에서 입힌 데미지만큼 닳고
Wall의 HP가 <=0이면 boxcolider.enable(false)로 비활성화 하여 Wall을 통과 할 수 있게 하였다.
또 하나의 Moving Script로 적과 캐릭터 둘에게서 모두 사용하기위해 virtual로 Generic을 받는 함수를 작성하였다 where T : Component로 타입에 한정을 주었고 받는 Type에 따라서 상속받은 클래스가 해당 클래스에 따라 Override하여 사용하기 위해서..
그리고 Wall이 파괴되면 Wall의 Image 변경을 위해 spriteRender를 새로운 Sprite로 변경하고 gameObject.SetActive(false)를 실행한다!
'Unity 도전하기' 카테고리의 다른 글
2D Unity Game 예제소스 따라하기 6p (0) | 2019.05.09 |
---|---|
2D Unity Game 예제소스 따라하기 5p (0) | 2019.05.02 |
2D Unity Game 예제소스 따라하기 3p (0) | 2019.04.23 |
2D Unity Game 예제소스 따라하기 2p (0) | 2019.04.18 |
2D Unity Game 예제소스 따라하기 (0) | 2019.04.16 |