EditorWindow를 이용하여 에디터에서 윈도우 탐색기 폴더 열기
·
코드 및 공부/데이터 관리
유니티 버전 - 6000.0.37f1     목차EditorWindowEditorUtility.RevealInFinder()     EditorWindow개발 도중 저장되는 파일을 직접 확인/삭제 등, 직접 접근하여 수정해야할 일이 생겼을때 매번 %appdata% 를 통하여 찾아 들어가거나 폴더를 항상 켜놓지 않고도 EditorWindow를 이용하여 특정 폴더를 열 수 있습니다   먼저 EditorWindow를 스크립트를 작성합니다public class DevelopHelper : EditorWindow{ private GUIStyle _labelStyle; [MenuItem("Window/Customizing/DevelopHelper")] public static void..
RenderPipelineGlobalSettings should be edited from Project Settings > Graphics 경고
·
코드 및 공부/데이터 관리
유니티 버전 - 6000.0.34f1     목차UniversalRenderPipelineGlobalSettings     UniversalRenderPipelineGlobalSettingsURP 프로젝트를 생성하고 UniversalRenderPipelineGlobalSettings 에셋을 들어가보면, RenderPipelineGlobalSettings should be edited from Project Settings > Graphics라는 경고가 나오면서 아래 버튼을 이용하여 설정하라고 나옵니다   2022.3.57f1의 Global Settings를 보면 Layers와 Shader Stripping의 내용을 볼 수 있습니다   6000.0.34f1의 Project Settings의 Graphics..
텍스트 메시 프로의 Fallback Font Assets은 메모리 낭비를 발생시킬까?
·
코드 및 공부/데이터 관리
유니티 버전 - 6000.0.34f1     목차지난 포스팅Fallback Font Assets 이란?실험 결과     지난 포스팅지난번에 Localization을 이용하여 다국어 지원에 대한 포스팅을 작성하였습니다, 그때는 폰트가 없어서 영어로 대체하였지만, 언어별 폰트를 이용할때 해당 언어의 폰트가 없으면 ㅁㅁㅁㅁ 처럼 글자가 깨져나올 것이고, 이것을 해결하기 위해 Fallvack Font Assets라는 옵션을 사용하였습니다더보기2025.02.05 - [코드 및 공부/데이터 관리] - 로컬라이제이션 패키지를 이용한 다양한 언어 설정 (다국어 시스템) 로컬라이제이션 패키지를 이용한 다양한 언어 설정 (다국어 시스템)유니티 버전 - 6000.0.34f1     목차LocalizationLocalizat..
로컬라이제이션 패키지를 이용한 다양한 언어 설정 (다국어 시스템)
·
코드 및 공부/데이터 관리
유니티 버전 - 6000.0.34f1     목차LocalizationLocalization TableLocalization String Event     LocalizationLocalization이란, 여러 언어를 지원해야하는 게임을 만들때 좀 더 쉽게 구현 및 관리가 가능하도록 도와주는 유니티에서 제공하는 패키지입니다 Pakage Manager -> Unity Registry -> Localization 설치     Localization TableWindow -> Asset Managerment -> Localization Tables 클릭   New Table Collection -> Locale Generator 선택   지원하고자하는 언어를 모두 선택합니다 (검색 가능)    모두 선택하였다..
마우스 커서 스프라이트가 깨져서 나올때 해결법
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.17f1     커서 스프라이트가 깨져서 나올때커서로 사용하기위해 스프라이트의 텍스쳐를 가져와서 설정해주었을때, 게임 뷰에서 아래처럼 커서 이미지가 깨져서 나오는 현상이 발생 (현재 스프라이트는 .PNG)   1. Texture Type을 Cursor로 변경   2. Read/Write 체크 및 Format을 RGBA 32 bit으로 변경   3. Cursor.SetCursor를 이용하여 커서 변경Cursor.SetCursor(Texture2D texture, Vector2 hotspot, CursorMode cursorMod)Cursor.SetCursor(A, B, C)A : 커서에 사용될 텍스쳐B : 커서의 기준점(클릭 지점)C : 커서 모드, 기본 Auto 선택     ..
인벤토리 슬롯 저장/로드시 간헐적으로 아이템이 사라지는 현상
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.17f1     목차문제상황InstanceID해결법마치며     문제상황데이터 저장 / 로드시 인벤토리의 아이템 일부가 삭제되어있거나 다른 아이템이 들어있는 상황   현재 저장시에 Slot[]의 형태로 저장되어지고있음   Slot의 구조입니다, ItemSo와 itemCount는 필수로 존재해야합니다   또 ItemSO에는 ItemCode가 필수로 존재해야합니다      InstanceIDJson파일을 열어보았을때 저장된 Slot[i] 번째에 instanceID가 저장되어있습니다{ "itemSo": { "instanceID": 123456 }, "itemCount": 5}// 위와 비슷하게 나옴   여기서 문제가 발생합니다, instanceID는 유니티의 특정 상태(런타임 ..
유니티 조합 시스템 - 슬롯 이용
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.17f1     목차전재 조건과 목표코드 및 설명     전재 조건해당 기능을 이용하여 슬롯에 퍼져있는 아이템들을 정렬하고, 필요한 개수만큼 슬롯 아이템의 개수를 감소시킨뒤 결과물을 반환하도록 할 수 있습니다   1. CraftRecipeSO / NeedItems / ItemSo의 구조는 다음과 같습니다     2. 슬롯의 구성은 다음과 같습니다   3. 인벤토리의 구성은 다음과 같습니다public Slot[] inventorySlots = new Slot[30];     코드 및 설명먼저 코드의 구조를 살펴보겠습니다   외부에서 아이템을 조합해달라고 요청이 들어오면 현재 인벤토리의 모든 아이템을 정리하여 충분한 아이템이 있는지 확인하고 있다면 결과 아이템을 지급하는 형태입니..
OnDrop이 실행되었을때 OnEndDrag가 실행되지 못하도록 하기
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.17f1     목차코드 의도문제 상황시도해본 방법들해결 과정결과마치며     코드 의도드래그가 종료되었을때 성공적으로 수행된다면 OnDrop을 이용하여 성공 사운드 출력 및 아이템 교환을 하고, 실패한다면 OnEndDrag를 이용하여 실패 사운드 출력 및 DragSlot을 초기화시켜 주고 싶은 상황입니다 /// /// 드래그가 UISlot이 아닌 곳에서 끝났을때 아무 작업도 수행하지 않기위해 DragSlot을 초기화시켜줌 /// public void OnEndDrag(PointerEventData eventData) { if (DragSlot.Instance.draggedSlot != null) { ..
OnValidate()을 이용한 SO 데이터 무결성 검증
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.17f1     목차OnValidate()ValidateCheckItemCode결과     OnValidate()유니티에서 제공하는 이벤트 함수이고, 인스펙터 창에서 스크립트 컴포넌트의 속성을 변경할 때 호출됩니다관리하는 ScriptableObjectAssets이 많아질수록(이하 SO), 값을 빼먹거나 관리되지 못하는 SO 내의 데이터가 발생할 수 도 있습니다, 에디터 환경에서 OnValidate()를 이용하여 관리해보도록 하겠습니다   데이터의 일부만 가져왔습니다, 대표격으로 itemCode가 제대로 입력되어있는지 확인하기 위하여 아래와 같이 코드를 작성합니다public int itemCode;#if UNITY_EDITOR private void OnValidate()..
Application.dataPath와 Application.persistentDataPath
·
코드 및 공부/데이터 관리
유니티 버전 - 2022.3.48f1     목차Application.dataPath 와 Application.persistentDataPathPath.Combine()와 문자열 연산+      들어가며파일 경로나 디렉터리를 다룰 때, Application.dataPath와 +를 이용하여 경로를 연결하는 방법은 흔하게 사용됩니다Application.persistentDataPath와 Path.Combine과 비교하여 장단점과 메모리 사용량, 성능 차이를 다뤄보겠습니다     Application.dataPath 와 Application.persistentDataPath위의 둘은 다른 방식이지만 게임 데이터 파일에 접근하기 위한 경로를 반환합니다, 하지만 둘의 목적이 다르고 Application.dataP..