[질문] Custom NavMesh Link 관련해서 궁금한게 있습니다.
안녕하세요.
현재 Custom Navmesh Link 를 이용하여
양방향 이동 관련 모습을 보여주셨는데요.
특정 타입의 몬스터별로 해당 기능을 제어가 가능한지 궁금합니다. 마리오를 보면 빨간색 거북이는 언덕에서 되돌아가고 녹색 거북이는 언덕을 뛰어내려서 쫓아오잖아요. 이것처럼 타입별로 제어가 가능한지 궁금해서요.
양방향일때 오르고 내리는 부분에 대해서 애니메이션처리가 가능한지 궁금합니다. 내려갈때는 raycast 등을 이용해서 fall 애니메이션을 발동시킬 수 있을거 같은데, 올라갈때는 등반애니메이션 설정이나 점프 애니메이션을 하게 할 수 있는지 궁금해서요.
좋은 강의 감사합니다.
답변 2
1
안녕하세요. 우선 소중한 후기 감사합니다.
우선 두 캐릭터를 Agent Type을 다르게 설정한 후 NavMeshLink 를 2개를 생성하셔야 합니다. 그 후 NavMeshLink 컴포넌트에서 AgentType을 설정하시면 가능할것으로 생각합니다.

Start와 End위치에 Collider 컴포넌트를 배치하고 충돌여부로 판단하는 방법을 사용하실 수도 있구요. 다른 방법으로는 아래와 같이 NavMeshLink에 진입여부를 판단한 후 StartPos와 EndPos 위치를 가져올 수 있습니다. 따라서 현재 위치와의 거리를 판단해서 시작지점에 진입했는지 여부를 확인해서 적절한 애니메이션을 동작시킬 수 있습니다.
// 현재 OffMeshLink에 진입했을 경우
if (agent.isOnOffMeshLink)
{
var linkData = agent.currentOffMeshLinkData;
Vector3 startPos = linkData.startPos;
Vector3 endPos = linkData.endPos;
// 현위치와 startPos와 endPos 간의 거리를 계산해 진입여부 판단
}하지만 매 프레임마다 이렇게 확인하는 코드보다는 조금은 원시적일 수도 있지만 Collider를 배치하고 충돌 콜백을 받아서 처리하는 것이 좀더 바람직하지 않을까 생각합니다.
도움이 되셨으면 좋겠습니다.~
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. paehwang님.
Custom NavMesh Link를 통한 양방향 이동 및 특정 타입의 몬스터 별 제어와 관련하여 몇 가지 질문을 하셨습니다. 이를 통해 독특한 몬스터 로직을 구현하는 방법에 대해 고민 중이신 것 같습니다.
1. 특정 타입의 몬스터별 제어:
유니티에서 특정 타입의 몬스터마다 이동 방식이나 반응을 정의하려면, 몬스터의 타입별 속성을 스크립트로 관리하실 수 있습니다. 예를 들어, NavMeshAgent와 함께 Custom NavMesh Link의 논리를 재정의하여 특정 조건(예: 몬스터의 타입)에 따라 행동 방식을 변경할 수 있습니다. 예를 들어, 녹색 거북이는 절벽을 뛰어넘고, 빨간 거북이는 절벽 끝에서 돌아오도록 하는 로직을 추가할 수 있습니다. 필요한 경우, NavMeshAgent.OverrideArea() 등을 이용하여 상황별로 다른 이동 경로를 설정할 수도 있습니다.
2. 애니메이션 처리:
양방향 이동에서 오르내림에 따라 애니메이션을 포함하고자 한다면, 애니메이션 관련 트리거를 상황에 맞게 설정하면 됩니다. 내려갈 때는 Raycast를 사용하여 지면과의 거리를 측정하여 낙하 애니메이션을 적용할 수 있고, 올라갈 때는 Climbing이나 Jumping 같은 애니메이션을 트리거할 수 있습니다. 이를 위해서는 각 상황에 맞는 애니메이터 상태 머신을 구축하고 상태 전환을 관리하는 스크립트를 작성하면 됩니다.
비슷한 주제의 질문과 답변이 Inflearn의 Q&A에 있습니다:
유니티 NavMesh를 활용한 다양한 AI 로직 제어에 대한 논의
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Dictionary Key를 int에서 string으로 변경한 이유에 대한 문의
0
12
1
프로젝트 질문 문의
0
41
1
UI 기능 관련 질문이 있습니다!
0
31
2
03-01 (16. CharacterController)
0
27
2
TLS 질문드립니다.
0
39
2
prefab 관련 문의
0
66
1
Bullet이 방향 문제가 있어요.
0
108
3
딜레이를 주고 싶을 때 코루틴을 사용하는 이유
0
106
2
Spider 사망 시 두 번 폭발관련
0
101
2
Player에 Event 연결 관련 질문
0
94
2
Barrel에 IDamagable 적용 관련 질문
0
74
2
Stun 로직 관련해서 문제가 발생합니다.
0
189
2
Bullet, AimDot 코드 질문
1
135
2
안녕하세요 이벤트 버스 패턴에 대해서 궁금한게 있어서요
0
210
2
선생님 궁금한게 있는데요
0
166
2
비헤이비어 그래프 방식이요
1
136
2
콜백 함수, garbage colleection에 대해
0
119
1
스크립터블 오브젝트에 대해 질문이 있습니다
0
125
1
오디오 관련해서 질문 있습니다.
0
150
2
[질문] ScriptableObject 를 활용한 이벤트 버스 관련 질문이 있습니다.
0
279
1
[질문] Component 이름 관련해서 질문이 있습니다.
0
124
1
[질문] Scriptable Object르 이용한 메모리 최적화 관련 질문이 있습니다.
0
216
2
강사님~ 오디오 파일 관련해서 질문있습니다!
0
180
2
IDamagable 활용
0
167
1





