Unity

·Unity/C#
클로저(Closure)는 C#과 같은 현대 프로그래밍 언어에서 매우 중요한 개념입니다. 이번 포스팅에서는 클로저의 기본적인 이해와 C#에서 클로저가 어떻게 사용되는지에 대해 알아보겠습니다. 클로저(Closure)란 무엇인가? 클로저는 함수가 선언될 때의 환경을 '캡처(Capture)'하여, 그 환경 밖에서도 해당 환경에 접근할 수 있게 하는 기능입니다. 클로저는 내부 함수가 외부 함수의 스코프(Scope)에 접근할 수 있도록 해주며, 이를 통해 프로그램잉에서 강력한 표현력을 제공합니다. 클로저의 작동 원리 클로저는 외부 함수의 변수를 내부 함수가 참조할 때 발생합니다. 내부 함수는 외부 함수의 실행이 끝난 후에도 외부 함수의 변수에 접근할 수 있습니다. 이러한 특성 덕분에, 클로저는 다양한 프로그래밍 상..
·Unity/Function
Unity 개발 시 다양한 플랫폼을 지원하기 위해 플랫폼 별로 다른 코드 실행이 필요할 때가 있습니다. 이를 위한 주요 두 가지 방법, Application.platform과 #if 디렉티브를 비교해 보겠습니다. Application.platform의 사용 Application.platform은 Unity의 런타임 시점에서 현재 실행 중인 플랫폼을 확인하는 방법입니다. 장점 동적 처리: 단일 빌드로 여러 플랫폼에서 다르게 동작하는 앱을 만들 수 있습니다. 코드 포함: 빌드에 모든 플랫폼에 대한 코드가 포함되어, 하나의 빌드로 여러 환경을 대응할 수 있습니다. 사용 예 if (Application.platform == RuntimePlatform.WindowsPlayer) { // Windows 전용 코드..
·Unity/ERROR
에러 코드 UnityException: get_enterPlayModeOptionsEnabled can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. UnityEngine.AddressableAssets.Addressables.get_m_Addressables () (at 한글 번..
·Unity/C#
최근에 들었던 생각 중에 하나인 유니티 개발자로 일을 하고 있는데 기초가 많이 부족하다고 느껴지게 되었던 부분들이 있었습니다. 그래서 해당 부분들을 보충하기 위해 "레트로의 유니티 게임 프로그래밍 에센스"라는 책을 구입 후 공부하기 시작했습니 다. 물론 알고 있는 부분도 많이 있지만 복습 역시 필요한 영역이라고 생각이 들어서 책을 공부하는 중입니다. 유니티 C#에서 말하는 클래스란 ? # 레트로의 유니티 게임 프로그래밍 에센스 p184 우선 책에서는 클래스와 오브젝트를 같이 설명하는 방식으로 진행되었습니다. 객체지향 프로그래밍 - '사람이 현실 세상을 보는 방식'에 가깝게 프로그램을 완성하는 방법의 핵심 개념으로 설명을 해주면서 시작하게 되었습니다. 클래스는 표현하고 싶은 대상을 추상화하여 대상과 관련된..
·Unity/Function
서론 최근 회사에서 진행하게 될 프로젝트 중 새롭게 요청된 기능 중 하나인 현지화(Localization) 기능 - 다국어 번역 관련해서 구현하게 된 방향과 추후에 지식공유를 위한 정리 글입니다. 프로젝트 링크 https://github.com/SONSAZANG/UnityLocalizationTest GitHub - SONSAZANG/UnityLocalizationTest: UnityLocalizationTest UnityLocalizationTest. Contribute to SONSAZANG/UnityLocalizationTest development by creating an account on GitHub. github.com 우선 유니티에서 현지화 기능을 사용할 때 진행할 수 있는 방향을 두 가..
·Unity/Function
본 글은 회사 업무 중에 서버에서 불러오는 Texture2D (JPG, PNG)등의 용량이 너무 커서 램 관리가 필요한 모바일 환경에서 강제 종료되는 현상을 방지하기 위해 구현하게 된 기능입니다. 필요한 기능 서버에서 불러오는 이미지를 런타임 환경에서 불러오는 과정과 동시에 텍스처 압축을 진행하여서 메모리 과부하를 막는 기능이 필요합니다. 유니티 프로젝트 안에 있는 텍스처의 경우 따로 여러 플랫폼에 원하는 형식으로 저장할 수 있는 기능이 제공되고 있으나 서버에서 바로 불러올 경우 위 기능을 사용하지 못하는 형식입니다. 구현한 기능 PNG or JPG -> GPU 랜더링이 필요하지 않는 이미지 파일들을 더 낮은 용량인 RGBA32로 변환 후 DXT5로 압축 진행 using System.Collections..
·Unity/ERROR
최근에 회사에서 iOS 빌드 진행중에 발생한 오류 입니다. Android 빌드에서는 문제가 없었는데 iOS 빌드에서 발견된 오류 입니다. 에러 iOS 빌드 중에 Addressable을 이용해서 애셋 번들에 있는 어드레서블 네임 "gallery_type_24" 라는 씬을 불러오는 과정 속에 발생한 오류 확인을 해본 결과 딱히 문제는 없었으나 "gallery_type_24" 와 "gallery_type_34" 네임이 참조하는 씬 이름이 "gallery_scene_24" 와 "gallery_type 34"였던 부분을 확인하여서 씬 네임 부분도 동일하게 "gallery_type_xxx" 형식으로 셋팅 후 다시 어드레서블 빌드 진행 -> 그러나 계속해서 "gallery_scene_24"는 없는 씬이여서 참조하지 ..
·Unity/ERROR
Photon Fusion에 관해서 공부하다가 발견하게 된 오류입니다. (사실 상관없습니다..) 문제 원인 Failed to load 'C:/Users/kekek/Desktop/Fusion_x86/Fusion Webinar_Data/Plugins\x86/nanosockets.dll', expected x86 architecture, but was x64 architecture. You must recompile your plugin for x86 architecture. UnityEngine.StackTraceUtility:ExtractStackTrace () -> x86 아키텍처를 요구했지만 x64 아키텍처였습니다. x86 아키텍처용 플러그인을 다시 컴파일해야 합니다. 라는 뜻인것 같다. 유니티에서 We..
sonsazang
'Unity' 카테고리의 글 목록 (3 Page)