Unity/팁 썸네일형 리스트형 [Unity 유니티] Random 클래스 모호한 참조 오류 - UnityEngine.Random, System.Random 사이에 모호한 참조입니다 / 'Random' is an ambiguous reference between 'UnityEngine.Random' and 'System.Random' (CS0104) Random 클래스를 사용할 때 System 네임 스페이스를 사용중이라면 아래와 같은 오류가 표기된다.UnityEngine.Random, System.Random 사이에 모호한 참조입니다.또는'Random' is an ambiguous reference between 'UnityEngine.Random' and 'System.Random' (CS0104)● 해결방법위와 같은 오류가 발생하는 이유는 유니티에서 제공하는 Random 클래스와 System의 Random 클래스의 이름이 중복되기 때문이다.따라서 유니티에서 제공하는 Random 함수를 이용하라고 네임스페이스 부분에 정의해주면 해결된다.using Random = UnityEngine.Random;위 코드를 스크립트 맨 윗부분에 적으면 간단하게 해결.. 더보기 [Unity 유니티] Error Unity AndroidJavaException: java.lang.ClassNotFoundException: com.google.games.bridge.HelperFragment / 최신 GPGS v2 오류 해결 방법 프로젝트를 모바일에서 테스트 중 로그캣에 이런 오류가 나오면서 GPGS 함수들이 실행되지 않았다.Error Unity AndroidJavaException: java.lang.ClassNotFoundException: com.google.games.bridge.HelperFragment1시간 내내 여러 챗봇들(GPT, Grok, Gemini, Sonnet 등등)을 이용해 해결해보려 했지만 전부 실패...결국 구글링을 통해서 이것저것 시도해 보던 중 해결 방법을 찾았다.Assets\GeneratedLocalRepo\GooglePlayGames\com.google.play.games\Editor\m2repository\com\google\games\gpgs-plugin-support 폴더에 있는 gpgs-p.. 더보기 [Unity 유니티] Orientation 화면 회전 / Portrait 세로 Landscape 가로 1. Portrait - 세로2. Portrait Upside Down - 세로 (위아래 반대)3. Landscape Left - 가로 (왼쪽으로 회전)4. Landscape Right - 가로 (오른쪽으로 회전)5. Auto Rotation - 자동회전Orientation 설정 방법File > Build Settings > Player Settings > Resolution and Presentation > Default Orientation필요에 따라 Landscape Left, Landscape Right, Auto Rotation 등으로 변경할 수 있다.Auto Rotation을 선택한 경우, 추가 옵션이 나타나며 허용할 방향을 개별적으로 체크할 수 있다. 예를 들어, Portrait와 Lands.. 더보기 [Unity 유니티] 유니티 인스펙터 Dictionary 안나옴 - Serializable 직렬화 문제와 해결 방법 (SerializableDictionary) 유니티에서 Dictionary 타입은 매우 유용하지만, 인스펙터에 기본적으로 표시되지 않는다. 이는 유니티의 기본 직렬화 시스템이 Dictionary를 지원하지 않기 때문이다.유니티의 직렬화 시스템은 System.Serializable 속성을 사용하여 필드를 직렬화하지만, 배열(Array), 리스트(List) 등 일부 자료형만 지원한다. Dictionary는 키-값 쌍을 저장하기 위해 복잡한 구조를 가지기 때문에 기본적으로 직렬화되지 않는다.해결 방법Dictionary를 인스펙터에서 사용할 수 있게 하려면 커스텀 솔루션을 사용해야 한다. SerializableDictionary는 커스텀 클래스나 패키지를 만들어 사용하는 방법이다.using System;using System.Collections.Gene.. 더보기 [Unity 유니티] 메모리 변수 변조 방지 - 치트 엔진 막기 메모리 변수 변조 방지 방법게임 개발에서는 클라이언트 메모리를 변조해 변수 값을 조작하는 행위를 방지하는 것이 중요하다. 이를 방치하면 게임 밸런스가 무너지고, 사용자 경험에 부정적인 영향을 미칠 수 있다. 이번 포스팅에서는 Unity에서 메모리 변수 변조를 방지하기 위한 몇 가지 방법을 소개한다.1. 변수 값 암호화변수 값을 그대로 메모리에 저장하지 않고 암호화해 저장하면, 메모리 변조 툴로 값을 쉽게 알아내기 어렵다. 예를 들어, 점수(score)를 암호화해 저장하는 방법은 다음과 같다.public class SecureValue{ private int encryptedValue; private int encryptionKey; public SecureValue(int initialV.. 더보기 [Unity 유니티] 유니티 내에서 스크린샷 찍기 - Recorder 유니티 내에서 Recorder 기능을 제공하고 있습니다. 이를 이용해 스크린샷을 찍는 방법을 알아보겠습니다. 1. Window - Package Manager 에서 Recorder를 설치합니다. 2. 아래 스크립트를 작성한 뒤 Hierachy에 빈 게임 오브젝트를 만든 후 그 안에 넣어줍니다. namespace UnityEngine.Recorder.Examples { [Serializable] public class ScreenShotData { public string name; public int width; public int height; } public class CaptureScreenShot : MonoBehaviour { RecorderController m_RecorderControlle.. 더보기 [Unity 유니티] Coroutine 코루틴 yield return 최적화 private IEnumerator Example() { yield return new WaitForSeconds(1f); } 코루틴을 사용할 때 new WaitForSeconds()를 이용하면 실행될 때마다 가바지 값이 생긴다. 이를 막기 위해서는 미리 캐싱을 해두고 사용하면 된다. private IEnumerator Example() { WaitForSeconds wait = new WaitForSeconds(1f); yield return wait; } 하지만 작업을 하다보면 여러번 사용하는 경우가 생기고, 더 편하고 효율적인 작업을 위해서 코루틴 매니저를 만들면, 미리 캐싱된 값을 수정하면서 사용할 수 있다. using System.Collections; using Syste.. 더보기 [Unity 유니티] Update 를 Coroutine 으로 최적화 하기 유니티의 Update문은 매 프레임마다 실행된다. // Update 함수는 매 프레임마다 실행된다. 60프레임 환경이라면 1초에 60번 실행 private void Update() { // 실행할 코드 } 이때 매 프레임마다 꼭 실행할 필요가 없는 함수들, 예를 들어서 n초마다 체력이 닳는 독 시스템, 1초 간격의 타이머 등등 이럴 때, Coroutine을 이용해서 실행 간격을 줄이면 불필요한 호출이 줄어들기 때문에 성능이 더 올라간다. private float coroutineTime = 1f; // 실행 간격 private void Start() { StartCoroutine(CountTime()); } private IEnumerator CountTime() { while (true) { // 실행.. 더보기 이전 1 2 다음