김산나
[멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 4일 회고록 - 깃 협업 2, NavMeshplus, 플랫포머 1 본문
[멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 4일 회고록 - 깃 협업 2, NavMeshplus, 플랫포머 1
김산나 2026. 2. 4. 14:452026_02_04 강의 요약본
1. 깃 협업의 뒷이야기
하나 안 한 게 있는데, 내 브랜치를 main에다 merge하고 (push도 하고)
main브랜치 내용도 내 브랜치로 merge해줘야 한다. (업데이트 반영)
2. NavMeshplus
다음 노벨 평화상 받아야 하는 분이라고 생각한다.
원래라면 긴 코드와 길찾기 알고리즘에 대한 이해가 있어야 길찾기, 트랙킹 기능 등의 구현이 가능했다.
하지만 이걸 몇 줄 딸깍 쉬운 설정으로,
심지어 무료 배포로 (!) 사용할 수 있다.
https://github.com/h8man/NavMeshPlus
GitHub - h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding
Unity NavMesh 2D Pathfinding. Contribute to h8man/NavMeshPlus development by creating an account on GitHub.
github.com
정말 독특한 길찾기를 구현할 게 아니라면 범용적으로 사용할 수 있다.
진짜 쉬움!
준비물: 맵, 탐색자, 탐색대상, NavMesh 관리자(?)

2.1. NavMesh
NavMesh부터 알아보자

필요 컴포넌트
- Navigation Surface
- Navigation CollectSource2D

초기화면.
서피스는 경로 탐색기? 느낌이라고 보면 된다.
맵을 세팅했다는 가정 하에 Bake버튼을 누르면 이동 가능 경로를 파악하고, 탐색자가 이 길을 기준으로 대상까지의 경로를 탐색한다.
경로가 좁은 경우



Radius값을 작게 한다.
그럼 얇은 길도 인식해서 뚫어줌.

이번에는 CollectSources2D이다. 이건 딱히 건들 거 없고, 초반에 노란 애러 표시 있으면 Rotate Surface to XY버튼 한 번 눌러주면 된다.
2.2. 탐색자
다음은 탐색자를 알아보자.

필요 컴포넌트
- NavMesh Agent
- NavMesh 스크립트

탐색자의 설정을 할 수 있다. 일단 플레인 상태로 사용.
using UnityEngine;
using UnityEngine.AI;
public class Monster : MonoBehaviour
{
[SerializeField] Transform target;
NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.updateRotation = false; // 회전 업데이트 비활성화
agent.updateUpAxis = false; // 캐릭터 이동을 평면으로 제한
}
void Update()
{
agent.SetDestination(target.position);
}
}
코드는 이게 전부이다. 타겟 정하고, 에이전트 설정해주고.
너무너무 쉽다 ㅠ
3. Map

타일맵을 사용했다. 대충 이렇게 그려줌. (하얀 점이 탐색자, 파란 점이 탐색 대상이다)

맵에 모두 Modifier을 설치해 주었다.
걸을 수 있는 부분에는 Override Area 체크 > Area - Walkable
막혀있는 부분은 Not Walkable해주면 된다.

세팅을 마치고, 다시 NavMesh로 돌아간다.


예쁘게 잡힌 걸 확인할 수 있다.

작동도 잘 된다.
이거 당연히 움직이는 대상에도 된다. (매 프레임마다 위치를 업데이트받아서 추적하기 때문에)
쿼터뷰에서도 작동을 하긴 했는데, 길을 두 줄 이상 뚫어줘야 잘 인식하더라.
사랑합니다 NavMeshPlus
3. 플랫포머 게임
카타나 제로 모작을 시작했다.
이번에는 맵타일로 맵을 만드는 게 아니라 배경이미지를 만들고, 콜라이더를 따로 생성해 맵에 맞추는 방식으로 진행한다고 한다.
오늘은 배경 깔고, 캐릭터 배치하기까지만 했다.
플랫포머 게임의 캐릭터는 중력의 영향을 받기 때문에 rigidbody2D에서 중력을 0이 아닌 양수로 지정해 둔다.
캐릭터의 좌우 움직임을 애니메이션으로 제어하지 않고, X 반전을 통해 구현한다.
using UnityEngine;
public class player : MonoBehaviour
{
public float spd = 3;
public float jump = 1;
public Vector3 dir;
Animator panimator;
Rigidbody2D prig2D;
SpriteRenderer sp;
void Start()
{
panimator = GetComponent<Animator>();
prig2D = GetComponent<Rigidbody2D>();
sp = GetComponent<SpriteRenderer>();
dir = Vector3.zero; //방향 초기화
}
void KeyInput()
{
dir.x = Input.GetAxisRaw("Horizontal");
if(dir.x <0)
{
sp.flipX = true;
}
else if(dir.x >0)
{
sp.flipX = false;
}
else if(dir.x == 0)
{
}
prig2D.linearVelocity = dir * spd;
}
void Update()
{
KeyInput();
}
}
dir.x값이 양수면 왼쪽, 음수면 오른쪽이기 때문에 이렇게 코드를 작성한다.

잘 된다.
지금 걷기 애니메이션 없어서 이게 맞음
===========================================================
개쩌는 네비게이터를 얻었다 !
플랫포머 학습을 시작했다 !

'Unity Engine' 카테고리의 다른 글
| [멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 6일 회고록 - 공격, 산테비스탄, 커서 변경, 포스트 프로세싱, 슬로우, 적 인식 및 유도까지 (0) | 2026.02.06 |
|---|---|
| [멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 5일 회고록 - 플랫포머 2 - 맵 세팅,점프, 벽점프, 각종 이펙트 (0) | 2026.02.06 |
| Unity + ClipStudio 쿼터뷰 그리기 (0) | 2026.02.03 |
| [멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 3일 회고록 - 깃 협업, DoTween (0) | 2026.02.03 |
| [멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 2월 2일 회고록 - Tilemap (0) | 2026.02.02 |