유니티 텍스처(Texture) 객체 생성과 제거 예시(메모리 할당과 해제)new 키워드를 사용하여 런타임에서 동적으로 생성한 객체의 경우텍스처가 불필요하면 명시적으로 객체를 파괴하고 참조를 해제합니다.Texture2D texture = new Texture2D(2, 2); if (texture != null) { Destroy(texture); texture = null; } Destroy(texture);객체는 메모리에서 즉시 해제되지않습니다. 메모리에서 객체가 실제로 해제되는 시점은 가비지 컬렉터( GC)가 이 객체를 수거할 때입니다. texture = null;객체에 대한 참조가 더 이상 없기 때문에 이 객체는 GC의 수거 대상이됩니다. 객체를 수거하는 시점은 GC 의 주기에 따라..
유니티(Unity) 사용자 데이터 파일 저장 사용법 문서 모음(Persistent Player Data)Persistent Data – How to save your game states and settings https://youtu.be/uD7y4T4PVk0 Persistence: Saving and Loading Data https://learn.unity.com/tutorial/persistence-saving-and-loading-data?language=en#saving persistent player data in unity https://learn.unity.com/project/saving-persistent-player-data-in-unity?language=enoverview an..
유니티(Unity)에서 다양한 코루틴(Coroutine) 사용 예시시간 지연 특정 시간 동안 대기한 후 다음 작업을 수행public class DelayExample : MonoBehaviour { private void Start() { StartCoroutine(WaitAndPrint(2.0f)); // 2초 후 메시지 출력 } private IEnumerator WaitAndPrint(float waitTime) { yield return new WaitForSeconds(waitTime); Debug.Log("Waited for " + waitTime + " seconds."); } } 프레임마다 반복매 프레임..
유니티(Unity) 사용되지않는 에셋 메모리 해제 (Resources.UnloadUnusedAssets, 메모리 누수 관련)Resources.UnloadUnusedAssets 함수를 사용하여 유니티에서 사용되지않는 에셋을 언로드할수있습니다. 전체 게임오브젝트 계층(스크립트 컴포넌트를 포함)을 탐색하여 에셋에 도달하지못하면 해당 에셋은 사용되지않는것으로 간주됩니다. 현재 씬이나 게임에서 더 이상 참조되지 않는 리소스들을 명시적으로 해제하여 메모리 누수를 방지하기위해 사용할수있습니다. https://docs.unity3d.com/ScriptReference/Resources.UnloadUnusedAssets.html스크립트 실행 스택은 검사되지않습니다. 따라서 스크립트의 스택 내에서 참조되는 에셋(Asset..
유니티(Unity)에서 씬(Scene)과 게임오브젝트(GameObject) 이해유니티에서 게임의 월드는 씬의 형태로 표시됩니다. 씬은 xyz축으로 이루어진 데카르트 3D 좌표계에 위치한 게임 오브젝트들의 집합입니다. 게임오브젝트는 씬에서 인스턴스화됩니다. 인스턴스화된 게임 오브젝트들은 컴포넌트 또는 스크립트에서 정의된대로 행동하고 상호작용합니다.게임 오브젝트는 씬에 존재하는 모든것으로 컴포넌트로 구성되어있습니다(콜라이더, 메시, 사운드, 스프라이트, 사용자정의클래스, 기타) 씬의 게임 오브젝트는 좌표계 어딘가에 존재해야하기때문에 적어도 1개의 트랜스폼(Transform) 컴포넌트 를 가집니다(씬에서 create empty를 사용하여 생성한 게임 오브젝트는 Transform 컴포넌트를 가집니다) Tran..
유니티와 C#유니티(unity)는 마이크로소프트의 C# 프로그래밍 언어를 지원합니다(자바도 지원하지만 한계가있습니다)Unity에서 게임 오브젝트의 동작을 제어하고 상호작용을 구현하기 위해 C# 스크립트를 사용할수있습니다. C#스크립트를 작성하고 게임 오브젝트의 행동을 정의하여 움직임, 충돌 감지, UI 조작, 게임 로직 구현, 데이터 관리등 다양한 작업을 수행할수있습니다. C# 스크립트는 .cs 확장자를 가지는 텍스트 파일입니다. 유니티에서 C# 스크립트를 작성하고 편집하는데 비주얼스튜디오(visual studio)라는 IDE를 사용합니다. IDE(Intergrated Development Environment)는 개발자들이 프로그램을 작성, 디버그, 컴파일 및 실행할 수 있도록 통합 개발환경을 제..
유니티(Unity) 플랫폼 목표 프레임 속도 설정 Application.targetFrameRateApplication.targetFrameRate는 유니티가 게임 렌더링을 시도하는 목표 프레임 속도를 지정합니다. 정수 > 0 또는 -1(기본값) 유니티의 기본 targetFrameRate 값은 -1입니다. 이것은 게임이 플랫폼의 기본 프레임속도(default frame rate)로 렌더링되어야한다는것을 의미합니다. 기본 프레임 속도는 플랫폼에 따라서 상이합니다. 데스크톱기본 프레임 속도(default frame rate)는 달성 가능한 최대 프레임속도입니다(동기화되지 않은 상태로 렌더링)QualitySettings.vSyncCount를 0으로 설정한 경우 Application.targetFrameRat..