[내배캠] 유니티 심화 팀프로젝트#3

Sungchan Ahn(안성찬)·2024년 11월 19일

내일배움캠프

목록 보기
65/104

Player Clone 생성

Player의 Clone 수를 증가시키는 아이템을 얻으면 증가할 수 만큼 새로 생성해주어야 한다.
Clone을 생성 후 움직임을 여러 방법으로 구현해보았다.

Clone 생성 방법

  1. Clone을 행렬로 정해진 위치에 생성

  2. 플레이어 주변에 원형으로 생성
    위의 두 방식은 수학적으로 위치를 정해 생성하는 방식. Clone 움직임 방법 1과 같이 사용했는데 공간적인 낭비가 심해서 선택하지 않았다.

  3. 플레이어 근처에 서로 겹치지 않는 위치로 랜덤하게 생성
    Collider[] OverlapSphere 메서드를 이용해 겹치는지 체크 후 생성

Clone 움직임 방법

  1. 플레이어 오브젝트의 자식으로 넣어 플레이어에 이동에 맞춰 움직이기
    너무 고정된 느낌이라 자연스럽지 않음
    주의할 점은 Clone의 Rigidbody의 IsKinematic을 True로 해줘야 플레이어와 함께 움직인다.

  2. Clone을 Fixed Update를 통해 플레이어에게 이동시키는 방법 (현재 선택한 방법)
    플레이어 방향으로 계속 이동 플레이어 근처에서 정렬되지 않고 플레이어와 뭉쳐서 이동하게 됨
    주의할 점은 플레이어와 클론들이 서로 밀어낼 수 있기 때문에 튕겨나가거나 플레이어가 제 위치에서 벗어날 수 있다.
    이런 경우 플레이어의 Rigidbody 컴포넌트의 Constraints의 Freeze Position로 Y, Z를 고정, Clone은 Y 고정시켜 서로 밀어내 자리가 벗어나는 것을 최소화 한다.
    또 Physics Material를 새로 만들어 Friction, Bounciness를 0으로 하면 좀 더 부드럽게 뭉칠 수 있다.

profile
게임 개발 기록

0개의 댓글