전체 글120 유니티에서 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. PlayerPrefs - 데이터를 간단하게 저장하는 방법 게임을 만들다 보면, 점수나 설정 같은 정보를 저장하고 싶을 때가 있습니다.예를 들어,게임을 껐다 켜도 최고 점수를 기억하고 싶은 경우사용자가 설정한 음량을 유지하고 싶은 경우이럴 때 간단하게 사용할 수 있는 기능이 바로 Unity의 PlayerPrefs입니다. PlayerPrefs란?PlayerPrefs는 Unity에서 제공하는 간단한 데이터 저장 시스템입니다.Prefers 는 영어 'Preferences' 의 약어이며, 프로그래밍 분야에서는 '선호' 라는 의미보다는 '설정' 에 조금 더 가까운 의미로 해석됩니다. 이 기능을 통해 파일이나 데이터베이스를 따로 만들 필요 없이, 숫자나 문자열을 쉽게 저장하고 불러올 수 있습니다.다만 보안이 필요하거나 민감한 정보는 저장하지 않는 것이 좋습니다. 누구나 .. 2025. 3. 25. Button 클릭시, AddListener() 함수로 연결하는 방법 코드 추가없이 drag & drop 으로만 button click 이벤트를 처리하는 방법은 상황에 따라 불편할 수 있습니다. 따라서 이번에는 동일한 기능을 code 로 구현해보겠습니다.AddListener() 를 이용해서 연결하고, RemoveListener() 로 이벤트를 제거하는 방법입니다.특히 런타임 중에 동적으로 버튼의 동작을 바꾸고 싶을 때는 코드로 이벤트를 등록하는 방법이 더 유용합니다. 먼저 Button 컴포넌트를 가져옵니다. 예시는 다음과 같습니다using UnityEngine;using UnityEngine.UI;public class MyButtonHandler : MonoBehaviour{ public Button myButton; void Start() { .. 2025. 3. 25. Button 클릭 시, 내가 짠 함수를 호출하는 방법 Button 을 클릭했을 때 내가 짠 스크립트 함수를 호출하여 어떤 기능을 실행하고 싶을 때, 별도의 coding 없이 가장 손쉽게 해결할 수 있는 방법을 소개하겠습니다. 글 후반에는 이 방법의 한계점에 대해 말씀드리고, 다음 편에서 해결방법을 제시하도록 하겠습니다. OnClick 이벤트 연결하는 방법(1) Button 오브젝트 선택(2) Inspector 창 하단의 OnClick() 항목 확인(3) + 버튼 클릭하여 이벤트 슬롯 추가(4) 함수가 포함된 오브젝트를 Hierarchy에서 드래그해서 넣기(5) 오른쪽 드롭다운을 눌러, 원하는 스크립트에서 함수 선택 이 때, 함수는 public void 형식이어야 하며, 파라미터가 없어야 Inspector 에서 보입니다. OnClick() 예시 코드.. 2025. 3. 24. List<T> 의 동작 방식 C#에서 List는 객체의 메모리를 직접 관리하지 않습니다. 리스트에서 요소를 제거하더라도, 실제 객체의 메모리는 해제되지 않습니다. 이는 C++처럼 delete를 명시적으로 호출하는 방식과 다릅니다. 요소 제거와 메모리 관리List list = new List();MyClass obj = new MyClass();list.Add(obj);list.Remove(obj); // 리스트에서 제거됨 위 코드에서 list.Remove(obj); 를 호출하면 리스트에서는 obj 가 제거됩니다. 하지만 obj는 여전히 메모리에 남아 있으며, 다른 곳에서 참조하고 있다면 계속 사용할 수 있습니다. GC의 역할C#의 Garbage Collector(GC)는 더 이상 참조되지 않는 객체를 감지한 후, 적절한 시점에 메.. 2025. 3. 16. 이전 1 ··· 12 13 14 15 16 17 18 ··· 20 다음