02-02 NavMesh 응용 캐릭터 멈춤 문제
20
3 câu hỏi đã được viết
강의 너무 이해가 잘돼요 감사합니다
캐릭터가 offMeshLink 앞에서 멈춥니다. 그 상태에서는 아무것도 안하고 그 자리에 가만히 있습니다.
앞에분이랑 비슷한 상황인데 점프도 안되고 아래로 떨어지는 거, 사다리타는거 다 안 돼요.
시작, 종료 지점 위치도 navigation 범위 안에 잘 있습니다
전에는 잘 됐는데 사다리 코드를 작성하니까 이렇게 됐어요
using System.Collections;
using UnityEngine;
using UnityEngine.AI;
public class OffMeshLinkClimb : MonoBehaviour
{
[SerializeField]
private int offMeshArea = 3;
[SerializeField]
private float climbSpeed = 1.5f;
private NavMeshAgent navMeshAgent;
private void Awake()
{
navMeshAgent = GetComponent<NavMeshAgent>();
}
IEnumerator Start()
{
while ( true )
{
// IsOnClimb() 함수의 반환 값이 true 일 때
yield return new WaitUntil(() => IsOnClimb());
// 올라가거나 내려가는 행동
yield return StartCoroutine(ClimbOrDescend());
}
}
public bool IsOnClimb()
{
// 현재 오브젝트의 위치가 OffMeshLink 에 있는지
if ( navMeshAgent.isOnOffMeshLink )
{
// 현재 위치에 있는 OffMeshLink 의 데이터
OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData;
// 현재 OffMeshLinkData 가 true 면 수동 OffMeshLink, false 면 자동 OffMeshLink
// 현재 위치에 있는 OffMeshLink 가 수동으로 생성한 것이고 장소 정보가 Climb 라면
if ( linkData.offMeshLink != null && linkData.offMeshLink.area == offMeshArea )
{
return true;
}
}
return false;
}
private IEnumerator ClimbOrDescend()
{
// 내비게이션 이동 일시 중지
navMeshAgent.isStopped = true;
// 현재 위치에 있는 OffMeshLink 시작/종료 위치
OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData;
Vector3 start = linkData.startPos;
Vector3 end = linkData.endPos;
// 오르내리는 시간 설정
float climbTime = Mathf.Abs(end.y - start.y) / climbSpeed;
float currentTime = 0.0f;
float percent = 0.0f;
while ( percent < 1 )
{
// deltaTime 만 더하면 무조건 1초 뒤에 1퍼센트가 되기 때문에 climbTime 변수를 연산해서 시간을 조절
currentTime += Time.deltaTime;
percent = currentTime / climbTime;
// 시간 경과에 따라 오브젝트 위치 변경
transform.position = Vector3.Lerp(start, end, percent);
yield return null;
}
// OffMeshLink 를 이용한 이동 완료
navMeshAgent.CompleteOffMeshLink();
// 내비게이션 이동 다시 시작
navMeshAgent.isStopped = false;
}
}
Câu trả lời 2
0
현재 사용하고 있는 유니티의 버전이 2022 이상의 버전이어서
New AI Navigation을 사용하고 있다면
장소 정보 검사 코드를 기존의
linkData.offMeshLink.area == offMeshArea
에서
if ( (navMeshAgent.navMeshOwner as NavMeshLink).area.Equals(offMeshArea) )
와 같이 수정해야 합니다.
0
error CS0246: The type or namespace name 'NavMeshLink' could not be found (are you missing a using directive or an assembly reference?)
이렇게 떠요..NavMeshLink가 없어요
0
그럼 구버전의 NavMesh를 사용하고 있는 것 같습니다.
아래 AI 답변의 답변으로 첨부한 사진을 보니 사다리 주변에 위/아래 경로가 많은데
앞의 실습에서 자동 Off Mesh Link 실습 후 자동으로 설정된 Link를 해제하였나요?
1.Navigation View의 Object 탭에 있는 Generate OffMeshLinks = false
2.Bake 탭의 "Bake" 버튼을 눌러 데이터 저장
그리고 수동으로 연결된 사다리의 Start, End 위치 확인
(Scene View에서 볼 때 Start, End의 원 영역이 기존 파란색 Navigation 영역과 겹쳐져 있어야 정상적으로 사다리를 타고 Link 이동이 가능합니다.)
0
그럼 첫 답글의 코드가 맞습니다.
마지막 스크린샷을 보니 AI Navigation 최신버전이네요
NavMeshLinkClimb.cs 스크립트 윗부분에
using Unity.AI.Navigation; 을 추가하고, 처음 알려드린 코드를 작성하면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. 제리스님.
캐릭터가 OffMeshLink 앞에서 멈추는 문제는 네비게이션 범위나 OffMeshLink 설정 문제일 가능성이 높습니다. 이와 유사한 문제를 가지고 있던 다른 질문에서도 비슷한 해결책을 제시한 바 있습니다.
OffMeshLink 설정 확인: OffMeshLink의 시작과 종료 위치가 Navigation Mesh 범위 내에 맞추어 있는지 확인해야 합니다. OffMeshLink가 네비게이션 범위 내에 설정되지 않으면 캐릭터가 경로를 찾지 못하고 멈출 수 있습니다.
NavMeshAgent 설정 확인:
NavMeshAgent가 제대로 설정되어 있는지도 확인해 보세요. 특히,isStopped속성이나 장애물로 인한 경로 문제를 확인해보는 것이 좋습니다.
다음은 비슷한 문제에 대한 기존 답변들을 확인할 수 있는 링크입니다:
- NavigationMesh 응용 질문있어요: 캐릭터가 경로를 따라가지 못하는 문제에 대한 설명이 포함되어 있습니다.
- Navigation Mesh 사용 중 오류 입니다: 유사한 설정 오류에 대한 가능한 원인과 해결책이 언급되어 있습니다.
위의 답변들과 설정을 확인하며 문제를 해결해보시기 바랍니다. 스크립트나 설정에 문제가 있는 경우, 이러한 사항들을 조정하여 문제를 해결할 수 있을 것입니다.
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
02-02 NavMesh 응용 캐릭터 멈춤 문제
0
18
1
03-01 (16. CharacterController)
0
54
2
05-02 실습에서 마지막 부분을 해보니 죽는 키를 누르면 die 가 두번 재생됩니다
0
74
2
02. 게임오브젝트 물리와 충돌 마지막 sun예제의 움직임
0
153
2
유니티3d 기초 하고 있는데. 따라하기가 전혀 안됩니다.
0
237
1
강의보다가 문득 궁금한게 있어서 여쭤봅니다.
0
340
1
다른 강의도 듣고 싶어요
0
301
1
2D Tilemap Editor 2:00에서요
0
392
2
제가 3d 멀미가 있어서 2D게임만 만들 생각인데요
0
333
1
게임오브젝트 삭제함수에서 질문이요
0
202
1
Instantiate() 활용 예제에서 11:30의 예제 질문이요
0
245
1
3D 네비게이션 메시 질문요(유니티 버전이 최근버전이라 잘 진행이 안되네요)
0
834
2
2D Basic 6강, 2D-Extras에서 애먹고있습니다.
0
433
1
사다리 밑으로 이동이 안 돼요
0
307
1
총알이 나가지 않습니다.
0
396
2
게임 월드로 배치되는 바닥, 장애물이 “Navigation Static”으로 설정이 안됩니다..
1
716
1
강의자료 다운로드가 가능할까요?
0
596
1
수업자료 버튼이 안보입니다
0
514
2
총알이 player 뒤로 나가게하려면 따로 설정이 필요한가요?
0
526
1
총알이 player 뒤로 생성되게 따로 설정이 필요한가요?
0
273
1
[asset] 이 로딩이 안되는 이유
0
828
1
used by composite 항목이 없어요
0
866
1
강의 자료를 다운받고 싶습니다.
0
514
1
23년인 지금 들어도 버전문제는 없을까요
0
592
1




