AI 네비게이션과 사운드 추가
공격 애니매이션 설정
해당 아이템의 애니매이션을 열고 공격시작하는 프레임에 바를 놓고 우클릭시 add animation event 를 클릭.
동일 아이템의 프리팹 클릭시 인스팩터창에 function 이 나오는데 미리 만들어둔 메소드가 있다면 설정가능.
AI 네비게이션 사용방법 > 유니티에서 윈도우 - 패키지 매니저 > AI Navigation 설치후 사용,
설치후 윈도우 - AI > Navigation(Obsolete)클릭
Navigation Mesh (네비게이션 매쉬)
3D 공간을 그리드로 나누어 구분하는 매쉬. 이동할 수 있는 영역과 이동할 수 없는 영역을 정의하고, 이를 기반으로 경로를 계산.
Pathfinding (경로 탐색)
캐릭터의 현재 위치에서 목표 지점까지 가장 적절한 경로를 찾는 알고리즘입니다.
주로 A* 알고리즘 등이 사용되며, 지정된 목표 위치까지 최단 경로를 탐색합니다.
Steering Behavior (스티어링 동작)
캐릭터나 NPC가 경로를 따라 이동할 때, 보다 자연스러운 동작을 구현하는데 사용됩니다.
동적으로 캐릭터의 이동 방향과 속력을 조정하여 부드럽고 현실적인 이동을 시뮬레이션합니다.
Obstacle Avoidance (장애물 피하기)
캐릭터가 이동 중에 장애물과 충돌하지 않도록 하는 기술입니다.
각종 센서나 알고리즘을 사용하여 장애물을 감지하고 피하는 동작을 수행합니다.
Local Avoidance (근접 회피)
여러 캐릭터나 NPC가 서로 충돌하지 않도록 하는 기술입니다.
캐릭터들 사이의 거리를 유지하거나 회피 동작을 수행하여 서로 부딪히지 않도록 합니다.
맵에 오브젝트 혹은 장애물이 있을때 해당 오브젝트에 add component > Nav Mesh Obstacle 추가 carve 를 눌러 갈수없는 장애물 영역 지정
private SkinnedMeshRenderer[ ] meshRenderers; 유니티에서 캐릭터 모델(애니메이션 포함)을 렌더링하는 컴포넌트,
여러 개의 SkinnedMeshRenderer 컴포넌트를 저장할 수 있는 배열
사운드 추가 - 오브젝트에 사운드 스크립트와 add component > audio source 를 추가한다
스크립트에서 AudioClip[ ] 의 뜻은 유니티에서 사용하는 오디오 데이터 타입 AudioSource(컴포넌트)에서 재생할 사운드 파일을 담음. 배열을 사용하여 여러가 담기 가능
소리를 실핼시킬 오브젝트 인스펙터에 좌물쇠를 잠그고 오디오를 삽입후 잠금해제
좌물쇠의 의미는 다른 오브젝트를 클릭해도 인스펙터가 변경되지 않는다. 주로 컴포넌트 드래그 & 드롭할 때 유용
1. if ( !Mathf.Approximately(audioSource.volume, targetVolume))
{
2. audioSource.volume = Mathf.MoveTowards(audioSource.volume, targetVolume, (maxVolume / fadeTime) * Time.deltaTime);
}
1. Mathf.Approximately() 함수는 두 값이 아주 가까우면(즉, 오차가 매우 작으면) 같은 값으로 간주하는 함수
만약 현재 오디오 볼륨(audioSource.volume)과 목표 볼륨(targetVolume)이 거의 같지 않다면 실행( ! )
부동소수점(float) 값은 미세한 차이가 발생할 수 있어서 직접 비교(==)보다 이 함수가 안전함
2. Mathf.MoveTowards(현재 값, 목표 값, 최대 변화량) 함수는 현재 값을 목표 값으로 점진적으로 변경하는 함수
(maxVolume / fadeTime) * Time.deltaTime → 한 프레임당 볼륨이 변하는 속도
maxVolume: 최대 볼륨, fadeTime: 페이드 효과에 걸리는 시간, Time.deltaTime: 프레임 간격
JSON 직렬화는 세이브 파일 게임정보 저장시 사용 - JsonData
직렬화란 객체나 데이터를 문야열 또는 이진 데이터로 변환하여 파일, 네트워크, 데이터베이스 등으로 저장하거나 전송가능케하는 과정
역질렬화는직렬화된 데이터를 다시 원래의 객체(Object)로 복원하는 과정. 즉, 저장된 데이터나 네트워크에서 받은 데이터를 다시 프로그램에서 사용할 수 있도록 변환