분류 전체보기142 유니티에서 플레이 모드인지 아닌 헤깔릴 때 유니티에서 작업을 하다 보면, 플레이 모드에 들어간 상태에서 값을 수정한 경험이 한두 번쯤은 있으셨을 것입니다.그리고 아무 생각 없이 정지 버튼을 눌렀는데, 방금 설정했던 값들이 모두 원래대로 되돌아가 당황하셨던 적도 있으실 것입니다.유니티를 처음 접하신 분이라면 누구나 한 번쯤 겪는 상황입니다.저 역시 지금이 플레이 모드인지 편집모드인지 헷갈릴 때가 종종 있습니다.다행히도 유니티에는 플레이 모드일 때 에디터 창의 색상을 변경하는 기능이 마련되어 있습니다.이 기능을 설정해 두면, 플레이 모드에 진입했는지를 훨씬 쉽게 확인할 수 있습니다. 설정 방법 유니티 상단 메뉴에서(1) Edit → Preferences (Mac은 Unity → Preferences) 항목을 클릭합니다.(2) 왼쪽 메뉴에서 Colo.. 2025. 4. 5. int.TryParse() 와 Convert.ToInt32() 중 어떤 걸 써야하나? 고민된다면 문자열을 정수로 변환할 때, C# 에서는 주로 Convert.ToInt32()와 int.TryParse()를 사용합니다. 두 방식은 결과는 비슷해 보이지만, 동작 방식과 성능 특성에서 큰 차이를 가집니다. Convert.ToInt32(string)int number = Convert.ToInt32("123"); * 문자열을 정수로 변환합니다* 실패 시 FormatException 예외를 발생시킵니다try{ int number = Convert.ToInt32("abc"); Console.WriteLine($"변환 성공: {number}");}catch (FormatException){ // FormatException 발생 Console.WriteLine("변환 실패: 형식이 올바.. 2025. 4. 2. C# 에서 ref, out, in 키워드 정리 C# 에서 ref, out, in 은 모두 참조에 의한 전달(pass by reference) 을 위한 키워드입니다.이름만 보면 ref 만 참조처럼 보이지만, 세 키워드 모두 실제로는 값을 복사하지 않고 메모리 주소(참조)를 넘깁니다.이 키워드들은 주로 다음과 같은 목적에 사용됩니다 * 함수 안에서 값을 변경하고, 호출한 쪽에도 반영하고 싶을 때 → ref, out* 구조체처럼 큰 데이터를 복사하지 않고 효율적으로 넘기고 싶을 때 → in* 아래에서 각각의 특징과 사용법을 간단한 예제와 함께 정리합니다. ref* 함수 밖에서 선언된 변수를 전달하고, 함수 안에서 수정한 값을 받아올 수 있음* 따라서 함수 호출 전에 반드시 초기화된 변수여야 함* 값 타입도 참조로 전달되어 복사 없이 직접 수정 가능vo.. 2025. 4. 2. C# 에서 readonly 는 참조 타입에서 어떻게 동작할까? C#에서 readonly 키워드는 필드가 "한 번만 초기화될 수 있다"는 의미를 갖습니다. 많은 개발자들이 이 키워드를 단순히 "변경 불가"로 이해하지만, 참조 타입에 적용되었을 때는 조금 다르게 동작한다는 점을 놓치는 경우가 많습니다.이 글에서는 readonly 키워드가 값 타입과 참조 타입에서 어떻게 다르게 작동하는지, 그리고 참조는 고정되지만 내부 값은 바뀔 수 있다는 사실을 예제와 함께 정리합니다. 값 타입에서의 readonlyreadonly가 값 타입(int, float, bool 등) 에 붙으면, 해당 변수는 초기화된 값을 절대 변경할 수 없습니다.readonly int number = 10;number = 20; // ❌ 컴파일 오류 - 값 변경 불가 값 타입은 변수 자체가 데이터를 직접 .. 2025. 4. 1. 유니티에서 Resources 폴더에 대해 알아보기 Unity 에서 프로젝트를 구성하다 보면 materials, prefabs, scripts 등과 같이 폴더를 만들어 에셋을 정리하게 됩니다. 하지만 대부분의 폴더는 개발자의 편의를 위한 것일 뿐, Unity 가 특별히 처리하지는 않습니다.단 하나, Resources 폴더만은 예외입니다.이 폴더는 Unity가 특별히 인식하며, 런타임 중 코드로 에셋을 직접 불러올 수 있는 유일한 폴더입니다. Resources 폴더의 주요 특징런타임 중에 동적 처리 Resources 폴더에 있는 에셋은 런타임 중에 다음과 같이 불러올 수 있습니다GameObject prefab = Resources.Load("GameManager");GameObject obj = Instantiate(prefab); 사용하지 않아도 빌드에.. 2025. 3. 31. 유니티에서 Scene 전환에도 안전한 GameManager class 만들기 GameManger 같은 전역 클래스가 필요할 경우, 흔히 singleton 패턴을 사용합니다. 그런데 하나의 scene 이 아니라 2개 이상의 scene 에서 GameManager 를 사용하려면, 각 scene 마다 GameManager GameObject 를 hierarchy 창에 생성해야 하는 문제에 부딪히게 됩니다. 이 문제를 깔끔하게 해결하려면 싱글톤 구조를 약간 확장해줄 필요가 있습니다. Scene 전환이 있을 경우에도 안전한 singleton 패턴public class GameManager : MonoBehaviour{ public static GameManager Instance { get; private set; } void Awake() { if (Insta.. 2025. 3. 30. 이전 1 ··· 15 16 17 18 19 20 21 ··· 24 다음