전체 글(124)
-
스크립터블 오브젝트 값이 변하는 이유
스크립터블 오브젝트 값이 변하는 경우스크립터블 오브젝트(ScriptableObject)의 데이터가 게임이 끝난 후에도 변경된 상태로 남아 있는 경우와 초기값으로 돌아가는 경우가 있는 이유는 주로 얕은 복사와 깊은 복사 개념 때문입니다. 유니티 에디터에서 플레이 모드와 실제 빌드된 게임에서 스크립터블 오브젝트가 다르게 동작하는 이유도 여기에 있습니다.스크립터블 오브젝트의 값 변화 이해하기에디터(플레이 모드)에서의 동작유니티 에디터에서 플레이 모드로 게임을 실행할 때는, 스크립터블 오브젝트의 값이 직접적으로 수정되는 것처럼 보입니다. 이렇게 수정된 값이 유니티 에디터에 저장된 것처럼 보이지만, 이는 실제로 에디터에서만 발생하는 현상입니다. 플레이 모드가 끝나면 에디터에서는 마지막으로 수정된 값이 남아 있는 ..
2024.11.07 -
AI 네비게이션 코드에서 사용하는 함수 모음
SetDestination : 목표 지점을 설정하는 함수 isStopped : isStopped 속성을 true로 설정하면, AI 에이전트가 목표 지점이 설정되어 있어도 이동을 일시적으로 중단합니다. 이동을 다시 시작하려면 isStopped를 false로 설정 speed : 이동속도 설정 remainingDistance : NavMeshAgent가 목표 지점까지 이동할 때 남은 거리 AllAreas : 모든 네비게이션 가능한 영역을 포함하겠다는 의미로, 특정 영역에서만 움직이도록 설정 CalculatePath : NavMeshAgent가 특정 위치로 가는 경로를 찾을 수 있는지 확인하거나 경로 자체를 미리 분석하고 싶을 때 사용예시) if (agent.CalculatePath(PlayerManager.I..
2024.11.06 -
AI네비게이션 사용할때 주의사항( Bake 까먹지 않기)
AI 네비게이션을 사용할 때, AI가 움직일 수 있는 경로(NavMesh)를 설정하지 않으면 아래와 같은 오류가 발생할 수 있다. 그래서 맵에서 AI가 이동할 수 있는 장소를 미리 지정하고, Navigation 탭에서 해당 영역을 선택한 후 Bake 버튼을 눌러야 한다. 이렇게 하면 AI가 맵에서 이동할 수 있는 경로가 생성되고 등록된다.
2024.11.05 -
UI에서 연산해도 괜찮을까?
UI에서도 간단한 연산(시각적 효과, 실시간 계산 등)은 가능하다. 다만, 중요한 데이터는 UI가 아닌 백엔드나 로직에서 관리해야 데이터 손실과 동기화 문제를 방지할 수 있다. UI는 주로 데이터 표현과 사용자 피드백에 집중하고, 중요한 데이터는 안전한 곳에서 관리하는 것이 좋다. 전제를 잘 알아야 한다. 보호해야 할 데이터(반영구적)를 보관하지 않은 채 연산을 수행하면 문제가 발생할 수 있다. 그래서 스크립터블 오브젝트에 데이터를 관리하면 된다.
2024.11.04 -
캐릭터에 움직이는 캐릭터애니메이터 넣는 방법
캐릭터 에셋을 다운받은 후에 에셋에서 캐릭터 움직임 에셋을 다운받으면 그 해당 움직임 에셋의 애니메이터컨트롤을 캐릭터애니메이터 컨트롤을 넣으면 그대로 움직인다.
2024.11.01 -
Github 는 100mb 가 넘는 파일을 못올릴때 하는 방법
GitHub은 기본적으로 100MB가 넘는 파일의 업로드를 지원하지 않는다. 이렇게 대용량 파일을 업로드할 때는 Git LFS(Git Large File Storage)를 사용해야한다.첫번째 예시 예를 들어, 3D 모델링 파일인 .fbx 파일을 업로드하려면 다음과 같은 방법으로 설정을 해야한다.1. Git 저장소의 .gitattributes 파일을 열고 그 안 터미널에서 *.fbx filter=lfs diff=lfs merge=lfs -text 를 추가하면 된다.2. 다시 커밋한다음에 푸시하면 정상적으로 작동한다. 만약 다른 파일이 100MB가 넘는다면 그 해당 파일을 적은다음에 하면 된다.두번째 예시 .cs파일이 100MB가 넘어간다면(있음직하진 않지만) *.cs filter=lfs diff=lfs ..
2024.11.01