글목록

· TIL
Today I Learned : 유니티 Json 사용 ■ Newtonsoft.Json Unity에서 제공하는 Newton.Json Package 설치 Windows->Package Manager Add package from git URL com.unity.nuget.newtonsoft-json Add ※ 2022 버전에서는 참조 버그가 있다. https://github.com/JamesNK/Newtonsoft.Json/releases 파일을 받아 /bin/net45 폴더안의 Newtonsoft.Json.dll을 프로젝트 Plugins 폴더에 넣어 처리 - 패키지 버전 3.2.1 은 .NET 4.X 기준이다 ■ System.text.json https://stackoverflow.com/questions..
· TIL
Today I Learned : 프로그래머스 133502. using System; using System.Collections.Generic; public class Solution { public int solution(int[] ingredient) { int answer = 0; // string s = String.Join("", ingredient); // while(true){ // string temp = ReplaceFirst(s); //s.Replace("1231",""); // //Console.WriteLine($"{s} / {temp}"); // // Console.WriteLine(s); // if(temp != s) { // // 변환됨 // s=temp; // answer++..
· TIL
Today I Learned : 유니티 리소스 관리 방법 1. 리소스 장점 현재 사용하고있는 초급방식. 사용이 편하다. 유니티 빌드시에 같이 포함되어 접근이 쉽다. 단점 빌드 사이즈가 커진다 앱 시작시간이 길어진다. 시작시에 리소스가 로드되므로 메모리 사용량이 증가한다. 앱이나 폴더 변경시 전체 재빌드 해야한다. 2. 에셋 번들 장점 게임의 외부에서 리소스를 로드 리소스를 런타임 단위에서 다운/업데이트 가능하다 단점 에셋번들을 생성하고 관리하는 비용이 추가로 든다. 에셋 번들을 사용하기 위한 코드가 필요 3. 어드레서블 장점 초기 빌드볼륨 최소화 동적 로딩을 지원하여 필요한 리소스만 로드 가능 리소스를 주소로 등록해놓고 사용 런타임에 리소스 변경 및 업데이트 가능 중복된 리소스 낭비를 막는다 단점 에셋번..
· TIL
Today I Learned : Resources 폴더 리소스 폴더의 파일에 접근하는 방식의 문제 System.IO 를 통한 파일 접근은 빌드 후에는 사용할 수 없다. 빌드 시에 Resources 폴더 내부의 파일들은 모두 필드에 포함되며, 그 외의 폴더는 빌드 타임에 사용되고 있는 것들만 포함이 된다. 하여 유니티 코드 상에서 리소스에 접근하려면 Resources 클래스를 사용하여야 하며, Resources.Load 를 사용하여 자원에 접근하는 방식이 빌드 후에 문제가 없다. private void ReadTextData() { textDataDictionary = new Dictionary(); //string jsonText = File.ReadAllText(textDataFilePath); Tex..
· TIL
Today I Learned : 상태 변화에 따른 상호작용 public enum ChestState { Lock, Close, Open, Empty } 위와 같은 상태값이 있다고 했을 때 상태 변화에 따른 행동을 작동시키기 위해 다음과 같은 코드를 작성하였다. public void SetChestState(ChestState _state) { if (state != _state) { state = _state; switch (_state) { case ChestState.Open: { // 오픈 애니 chestAnim.SetBool("IsOpen", true); StartCoroutine(WaitAnim()); } break; case ChestState.Empty: { StopCoroutine(Wait..
· TIL
Today I Learned : Tilemap 1. 벽타기 이슈 타일맵은 Tilemap Collider 2D 컴포넌트를 붙이면 타일 하나하나가 콜라이더가 붙는다. 이 경우 타일마다 따로 충돌체크를 하면서 플레이어가 타일 사이에 껴서 떨어지지 않는 현상이 발생하였다. 이를 막기 위하여 Composite Collider 2D를 사용하여 타일을 하나로 묶어주었다. 이를 사용하면 단일레이어로 합쳐지고 렌더링 및 충돌처리를 간소화 할 수 있다고 한다. * 더 좋은 방법이 있다면 댓글로 알려주시길 바랍니다. 2. 레이어 뎁스 문제 플레이어 자동 이동 후, 문 뒤로 사라지게 하기위한 작업 열쇠가 없으면 위 레이어를 숨겨놓아 플레이어가 해당 지역에 진입해도 레이어 뒤에 감춰지지 않도록 했으며, 열쇠를 모두 모은 경우 ..
· TIL
Today I Learned : Platform Effector 2D 콜라이더의 일방향 충돌로 통상의 플랫포머 게임에서 점프로 관통하여 올라타지는 블럭을 만들때 사용한다. Collider Used By Effector : Effector 사용에 대한 체크 Effector Rotational Offset : 충돌반경 시작점 조절 오프셋 // 기본값 platformObject.rotationalOffset = 0f; // 180도 회전 platformObject.rotationalOffset = 180f; // 점프, 아래점프를 할때 이를 조정하여 Effector의 방향성을 조절할 수 있다. Use One Way : 충돌 체크에 대한 방향성을 가질것인지 Surface Arc : 충돌 체크 반경. 75도 정도..
· TIL
Today I Learned : 유니티에서 엑셀 사용 부분 Excel to SO https://github.com/mikito/unity-excel-importer Unity Google SpreadSheet https://shlifedev.gitbook.io/unitygooglesheets/ 테스트한 결과상 CSV 를 바로 읽어서 클래스화 및 딕셔너리를 만드는 것 보다는 SO로 한번 생성을 한 뒤에 딕셔너리를 만드는 것이 더 빠르다. 스프라이트, 프리팹 등은 사용 후 자원 해제를 해주는 것이 좋다.
· TIL
Today I Learned : readonly inspector field 인스펙터상에서 수정은 불가능한 읽기상태의 필드를 보여주고 싶어서 검색하고 추가했다. using UnityEngine; // 온전히 이해하고 쓴 코드는 아님 /// /// Read Only attribute. /// Attribute is use only to mark ReadOnly properties. /// public class ReadOnlyAttribute : PropertyAttribute { } // ReadOnlyDrawer 정의 #if UNITY_EDITOR namespace UnityEditor { [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] public class ..
· TIL
Today I Learned : NavMeshAgent.baseOffset NavMesh 위에서의 이동시 Agent의 높이를 조절하는데 사용 표면이 불규칙한 지형에서 이동시 발생하는 문제를 해결하고, NavMeshAgent의 크기나 모양이 실제 모델과 다른 경우 혹은 애니메이션 등으로 인해 동작이 바뀐 경우 baseOffset 값을 조정하여 모델을 바닥에서 일정거리만큼 떨어진 상태로 만들 수 있다. FindAnyObjectByType Object.FindObjectOfType의 대안으로 더 빠른 속도를 제공하기 위해 추가된 함수 FindAnyObjectByType은 2021.3.18 업데이트에서 추가되었으며, 2024.2 업데이트에서 FindObjectOfType과 FindObjectsOfType가 삭제..
[폴른]
'분류 전체보기' 카테고리의 글 목록