2D 프로젝트 경험 요약

2D 프로젝트 경험 요약

머리말

이 글에서는 그다지 자세하게 기술하지는 않겠지만, 당시 사용했던 경험을 간략하게 기록해 보겠습니다.

지도 그리기

스프라이트 편집기

그림을 자르고 아틀라스에 사용해야 할 그림을 잘라내는 데 사용됩니다.

오버레이에 대한 참고 사항(SortingLayer 관련 지식 포인트)

정렬 레이어가 낮을수록 렌더링 순서가 늦어집니다.
여기에 이미지 설명을 삽입하세요.
동일한 레이어의 경우 레이어 순서가 클수록 렌더링 순서가 늦어집니다.
여기에 이미지 설명을 삽입하세요.

타일 ​​팔레트 사용 방법

먼저 WIndows 패널 아래의 Tile Paltette를 엽니다.
그런 다음 새 팔레트를 만들고
여기에 이미지 설명을 삽입하세요.
잘라낸 앨범을 끌어다 놓습니다.
여기에 이미지 설명을 삽입하세요.
그런 다음 브러시를 클릭하고 그림을 선택한 다음 장면 패널에 그립니다.
여기에 이미지 설명을 삽입하세요.

애니메이션 타일(애니메이션 그림(타일 또는 타일이라고도 함))

프로젝트 패널에서 애니메이션 타일을 생성한 후 애니메이션화할 그림의 수를 선택합니다. 그림에서는 폭포가 4개의 그리드이므로 4개의 그리드를 추가한 후 해당 순서대로 폭포 그림을 채워줍니다. 총 3개입니다. 애니메이션 타일이 생성된 다음 타일 팔레트로 드래그하고 움직이는 폭포가 될 그림을 선택합니다.
여기에 이미지 설명을 삽입하세요.

플레이어의 움직임

플레이어의 움직임을 구현하기 위해서는 강체(Rigid Body), 충돌체(Collision Body), 유니티 입력 시스템(Unity Input System) 세 가지 구성 요소가 필요하며,
강체(Rigid Body)는 주로 플레이어의 움직임, 점프 등 신체적 특성을 구현합니다.
충돌체는 주로 지형과의 상호작용 및 이동할 위치를 담당합니다.
입력 시스템은 플레이어의 지시를 수신하는 역할을 합니다.

플레이어 방향 뒤집기

하나는 해당 방향으로 Scale 값을 변경하는 것이고, 다른 하나는 Sprite Renderer의 Filp를 변경하는 방법으로, 개인의 취향에 따라 두 방법 모두 사용 가능합니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

강체

주로 물체의 물리적 성질을 구현하는데, 여기서 주목해야 할 점은 Z축의 회전을 잠그는 것입니다. 플레이어가 조작하는 캐릭터는 실제로 그림이기 때문에 모서리에 부딪히면 Z축을 중심으로 회전할 가능성이 높으므로 Z축을 잠가야 합니다.
여기에 이미지 설명을 삽입하세요.

주의점

플레이어의 상하 방향 힘은 일반적으로 강체에 따른 값을 사용하는데, 기본적으로 플레이어는 중력의 영향을 받기 때문에 0으로 변경하면 낙하 속도가 매우 느려집니다.
여기에 이미지 설명을 삽입하세요.

충돌기

플레이어와 지형 간의 충돌은 충돌체를 사용하여 트리거됩니다. 충돌체의 모양과 크기를 직접 조정할 수 있으며, 캐릭터는 일반적으로 타원을 사용합니다.
여기에 이미지 설명을 삽입하세요.

입력 시스템 InputSystem(새 버전 또는 이전 버전)

구 버전

이전 버전은 InputSystem에 입력된 값을 얻은 다음, 얻은 값을 기반으로 해당 작업을 수행하는 것입니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

새 버전: 시각화 도구가 추가되었습니다.

예를 들어 플레이어 캐릭터에 점프 이벤트를 추가하고 싶습니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
아니면 플레이어의 위, 아래, 왼쪽, 오른쪽 키 움직임을 모니터링하고 싶을 수도 있습니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
해당 데이터를 가져온 다음 이를 강체에 제공하여 해당 이동 또는 점프 작업을 수행합니다.

플레이어의 움직임

강체의 속도를 변경하면 됩니다.
여기에 이미지 설명을 삽입하세요.

플레이어 점프

플레이어가 점프할 때 주의할 점이 있는데, 제한이 없다면 플레이어는 화면 밖으로 뛰어내릴 때까지 계속 점프할 수 있다(미친새). 따라서 플레이어의 점프에 몇 가지 제한 사항을 추가해야 합니다.

구현 방법 1: 발 아래 충돌을 실시간으로 감지합니다.

발 밑의 충돌을 실시간으로 감지하고, 땅에 닿았을 때 점프 가능 상태를 설정합니다. 그렇지 않으면 점프가 금지됩니다.
여기에 이미지 설명을 삽입하세요.여기에 이미지 설명을 삽입하세요.

구현방법 2: 이벤트를 통한 등록

이벤트에 시작이 있으면 끝도 있으므로 점프 시작이 감지될 때 -1이 될 수 있는 점프 수를 설정할 수 있습니다. 또한 이 방법은 소품(예: 내가 원하는 게임). 점프할 때마다 아직 점프가 남아있는지 판단하고, 없으면 점프가 금지됩니다.
여기에 이미지 설명을 삽입하세요.

플레이어를 위한 다단계 공격 구현

애니메이션 구현 방법

구현은 아래 그림과 같이 매우 간단합니다.
여기에 이미지 설명을 삽입하세요.

여기서는 Has Exit Time 매개변수를 사용하는데,
먼저 다음 공격 진입 조건이 동일하다고 판단하여 플레이어가 공격 상태가 되어 공격이 발동된다.
종료 시간은 0.9 부분 이전에 공격을 누르면 플레이어가 공격 상태로 설정되고 공격이 발동되며, 그렇지 않으면 종료로 들어가 현재 공격을 종료합니다. 종료 시 플레이어 상태가 재설정됩니다.

피해 판정 방법

충돌체를 통해 트리거됩니다.
여기서는 다각형 충돌체를 사용하고 캐릭터의 공격 애니메이션을 프레임별로 본 다음 캐릭터가 공격할 때 프레임에 무기와 동일한 충돌체를 그리고 이 충돌체를 True, False로 설정해야 합니다. 남은 프레임에 대해.. 그런 다음 무기에 스크립트를 추가하여 충돌하는 적을 획득하고 그에게 피해와 공격 효과를 줍니다.

2D 애니메이션 활용

공통 속성

종료 시간 있음

자주 사용되는 속성으로, 현재 액션에서 다음 액션으로 전환하려면 현재 액션이 재생을 끝내야 하는지 여부를 의미하며, 체크를 해제하면 바로 다음 액션으로 진입할 수 있습니다.
트리나 보조 메뉴의 마지막 애니메이션인 경우 조건이 없으면 이 속성을 확인해야 하며, 그렇지 않으면 Unity에서 마지막 애니메이션을 직접 건너뜁니다.
여기에 이미지 설명을 삽입하세요.

프레임 애니메이션 만들기

해당 그림을 애니메이션 패널에 삽입합니다. 그림과 그림의 알파 값 등 여러 항목이 동일한 프레임에서 변경될 수 있습니다. 아래 그림과 같이 공격받는 주인공의 애니메이션도 깜박입니다.
여기에 이미지 설명을 삽입하세요.

애니메이션 트리(BlendTree)(보통 점프 상태 또는 달리기와 걷기 상태 간 전환에 사용됨)

즉, 일련의 애니메이션이 하나의 값으로 제어되는 경우 애니메이션 트리를 사용할 수 있습니다.
여기서는 플레이어의 점프 거리를 측정하고 점프 동작은 점프, 위로 가속, 공중에 떠 있기, 땅으로 아래로 가속 등으로 구분됩니다. 그것들은 모두 플레이어의 수직 속도에 의해 제어될 수 있습니다.
여기에 이미지 설명을 삽입하세요.

보조 애니메이션 메뉴(상태 머신)

현재 애니메이션 패널에 새 애니메이션 패널을 추가하는 것인데, 이는 현재 클래스에 다른 클래스를 추가하는 것과 같습니다. 내부에는 별도의 판단 조건이 있는데, 애니메이션 트리와 달리 내부의 값도 개별적으로 판단할 수 있습니다.
여기에 이미지 설명을 삽입하세요.

여기에 이미지 설명을 삽입하세요.

주의점

일부 애니메이션에서는 충돌 본체를 동시에 변경해야 합니다.

예를 들어 쪼그리고 앉는 애니메이션에서 플레이어가 쪼그리고 앉을 때 실제로 충돌 영역이 더 작으므로 충돌 몸체의 영역과 오프셋을 변경해야 합니다. (충돌 몸체는 앵커 포인트를 지원하지 않으므로 전체 충돌 영역이 확대/축소됩니다. 안팎)

충돌기

공통 속성

레이어 재정의

상호작용할 레이어 레벨과 상호작용하지 않을 레이어 레벨을 선택할 수 있습니다. 상호 작용의 우선 순위를 제어할 수도 있습니다. 숫자가 클수록 우선 순위가 높아집니다(객체에 여러 개의 충돌체가 있는 경우).

여러 충돌기(충돌기와 트리거 모두) 사용(한 개체가 다른 개체와 서로 다른 상호 작용 효과를 갖기 위해)

예를 들어 적은 지형과 충돌해야 하지만 이는 플레이어 캐릭터의 트리거이기도 합니다(충돌 시 밀쳐내기 및 피해 유발). 이때 아주 당황스러운 점이 있는데, isTrigger를 체크하면 지형과 상호작용을 하지 않고 직접 떨어지게 되고, 체크를 하지 않으면 플레이어와 상호작용하여 데미지와 넉백을 발동시킬 수 없으므로 충돌체는 2개만 있으면 된다. 하나는 충돌체로, 하나는 트리거로 사용됩니다.
여기에 이미지 설명을 삽입하세요.

적의 다양한 상태 판정

벽에 부딪히다

적 앞에 충돌체를 추가하고 벽에 충돌하는지 감지해 보세요. 벽에 충돌하면 방향을 바꿉니다.

절벽에서 떨어질까 말까

적의 전면과 하단에 충돌체를 추가하여 적의 아래에 도로가 있는지 감지하고, 도로가 없으면 돌아옵니다.

카메라 관련 용도

카메라 따라가기

Cinemaachine 구성요소를 사용하여 2D 카메라를 선택합니다.

카메라 범위가 잠기고 표시 영역이 지정됩니다.

Add Extension을 추가하고 Confinder2D를 선택한 다음 지도에서 충돌체를 선택하여 범위를 설정합니다. 이 충돌체는 트리거로 사용해야 합니다. 그렇지 않으면 주인공의 길을 막을 수 있습니다.
여기에 이미지 설명을 삽입하세요.

카메라를 사용하여 공격 불안감 조성

Inpulse 리스터를 추가하고, 관련 스크립트를 게임에 추가하고, 관련 매개변수를 설정합니다.
여기에 이미지 설명을 삽입하세요.

여기에 이미지 설명을 삽입하세요.

음향 효과

오디오 믹서

모든 볼륨을 하나로 통일하여 제어할 수 있고 개별 음향 효과를 별도로 제어할 수 있도록 음향 효과를 분류합니다.
여기에 이미지 설명을 삽입하세요.

모바일 화면 제어

그림을 추가한 다음 온스크린 스틱을 추가하면 됩니다. 이는 Unity의 새로운 입력 시스템과 함께 사용됩니다.
여기에 이미지 설명을 삽입하세요.
오류가 있으면 이 매개변수를 변경하면 됩니다.
여기에 이미지 설명을 삽입하세요.

게임 일시정지 기능

Time.timeScale에 의해 제어되며 1은 정상을 의미하고 0은 일시 중지를 의미합니다. 이 값은 개인의 필요에 따라 게임 속도를 제어할 수도 있습니다.

추천

출처blog.csdn.net/qq_40629631/article/details/132478375