튜토리얼(실험용) 맵
쿠키런은 기본적으로 고정된 맵을 사용하기에 비슷하게 맵을 제작하였다. 게임 동작 방식은 플레이어가 앞으로 가는 것이 아닌 맵이 일정한 속도로 플레이어 쪽으로 움직이게 하였다.
젤리 프리펩
기본 적인 점수가 되는 젤리이다. 젤리는 상하로 반복하게 움직이며 캐릭터와 닿으면 점수가 올라가고 사라진다.
젤리와 플레이어가 맞닿을 때 트리거가 발동되며 점수가 올라가고 사라지도록 코드를 만들었지만 Debug.Log
를 사용하여 젤리와 닿았을 때 젤리 먹기를 출력하도록 실험 했는데 출력이 두번 실행되는 문제를 겪었다. 플레이어와 젤리가 맞닿고 파괴되기 전에 겹쳐 있을 때 또다시 트리거가 발동되어 생긴 문제였다.
해결 방법은 의외로 간단했는데 스크립트에 hasEaten이라는 Bool값을 추가하고 OnTriggerEnter함수에 조거문을 넣어 처음 닿는 즉시 이를 true로 바꾸어 한번만 실행하게끔 만드는 것이였다.
코드
private void OnTriggerEnter2D(Collider2D collision)
{
if (!hasEaten)
{
hasEaten = true;
Debug.Log(++score);
Debug.Log("젤리 먹기");
animator.SetBool("IsEat", true);
Destroy(this.gameObject, 0.2f);
}
}
유니티로는 처음하는 팀프로젝트여서 초반에 허우적했지만 이제는 속도를 내어 원활한 팀플을 만들 것이다.