RectTransform : Some values driven by Canvas.
·
Unity/Tip
RectTransform의 값을 조정 할 수 없을 때 값을 변경하고 싶을 때는 Canvas 컴포넌트의 Render Mode를 World Space로 변경하면 값을 변경할 수 있습니다.
Unity 빌드 에러 : Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
·
Unity/Tip
Unity Editor 버전을 업데이트 했을 경우(필자가 그러함) Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" 이와 같은 에러가 발생한 경우 Minimum API Level을 13.0이상으로 변경해주면 해결이 된다.
Unity에서 csv파일 만들기
·
Unity/Tip
레벨 디자인을 위해 ScriptableObject 파일들의 정보를 텍스트 파일로 만들 필요가 있어서 데이터를 엑셀로 만드는 방법을 찾다가 Nuget 패키지를 설치해 사용 해보려 했는데 using이 되질 않아 일단 내가 필요한 데이터들을 csv파일로 만들어봤다. 코드 using System; using System.Collections.Generic; using System.IO; using UnityEngine; public class CSVWriter { static Dictionary excel = new Dictionary(); public static void Add(string filename ,params string[] datas) { string cell = string.Join(",", ..
Unity에서 게임 오브젝트의 Null 체크 속도 비교
·
Unity/Tip
Unity 개발을 하다 보면 게임 오브젝트의 Null 체크를 자주 사용하게 됩니다. 게임 오브젝트가 Null인지 확인하기 위해 is 연산자와 == 연산자를 사용할 수 있습니다. is 연산자와 == 연산자의 차이점 is 연산자는 객체의 참조 값이 Null인지 확인합니다. == 연산자는 객체의 값이 Null인지 확인합니다. is 연산자의 장점 == 연산자보다 빠르다. 객체의 값이 Null인지 확인하지 않는다. == 연산자의 장점 is 연산자보다 간결하다. 객체의 값이 Null인지 확인할 수 있다. JetBrain Rider의 제안 최근 필자는 IDE를 VSCode에서 JetBrain Rider로 바꾸었다. Rider에서는 다음과 같은 제안을 했다. Comparison to 'null' is expensive..
Unity의 WaitUntil 코루틴
·
Unity
Unity의 WaitUntil 코루틴은 특정 조건이 만족될 때까지 기다리는 코루틴입니다. WaitUntil 코루틴은 다음과 같은 형식을 사용합니다. public IEnumerator WaitUntil(Func predicate) { while (!predicate()) { yield return null; } } WaitUntil 코루틴은 predicate() 함수를 사용하여 특정 조건을 확인합니다. predicate() 함수가 true를 반환하면 WaitUntil 코루틴은 다음 코드로 이동합니다. predicate() 함수가 false를 반환하면 WaitUntil 코루틴은 yield return null을 반환하여 다음 프레임으로 이동합니다. WaitUntil 코루틴의 사용 예 WaitUntil 코루틴..
IEnumerator 메서드에서 async await 사용
·
Unity/Tip
최근 작업중인 게임 데이터를 Local에 저장하던 것을 Firebase의 Database로 옮기는 작업을 진행하고 있다. DB에 데이터 저장은 잘되는데 Load가 제대로 되질 않아 삽질을 했던 경험을 공유하고자 한다. 내 프로젝트의 GameManager는 게임을 시작할 때 게임의 구성을 갖추는 셋팅을 할 때 IEnumerator 함수를 통해 플레이어를 생성 및 초기화하고 게임을 구성한다. Firebase에서 데이터를 가져오기 위해 FirebaseManager에 접근해 데이터를 로드하는 async 함수를 실행하면 Unity가 작동을 멈췄다. Unity의 IEnumerator 함수안에서 async 사용시 응답없음 문제가 발생하는 이유는 IEnumerator 함수가 Deferred Execution을 사용하기..
Unity에서 유연한 인스턴스 생성
·
Unity
Unity에서 Activator.CreateInstance는 지정된 클래스의 인스턴스를 생성하는 메서드입니다. Activator.CreateInstance는 다음과 같은 두 가지 형식으로 사용할 수 있습니다. Activator.CreateInstance(Type type): 지정된 클래스의 인스턴스를 생성합니다. Activator.CreateInstance(Type type, Object[] args): 지정된 클래스의 인스턴스를 생성하고, 인스턴스를 초기화하기 위해 지정된 인수를 사용합니다. Activator.CreateInstance(Type type)의 사용법은 다음과 같습니다. Type type = typeof(GameObject); GameObject gameObject = Activator.C..
디바이스 고유 ID : SystemInfo.deviceUniqueIdentifier
·
Unity
Unity에서 SystemInfo.deviceUniqueIdentifier는 디바이스의 고유 식별자를 반환하는 메서드입니다. 이 식별자는 디바이스의 하드웨어와 소프트웨어를 기반으로 생성되며, 디바이스의 고유성을 보장합니다. 디바이스 고유 ID 가져오기 string deviceUniqueIdentifier = SystemInfo.deviceUniqueIdentifier; 이 예제는 디바이스의 고유 식별자를 deviceUniqueIdentifier 변수에 저장합니다. 장단점 SystemInfo.deviceUniqueIdentifier의 장점은 다음과 같습니다. 디바이스의 고유성을 보장합니다. 모든 플랫폼에서 동일하게 작동합니다. SystemInfo.deviceUniqueIdentifier의 단점은 다음과 같..