C# 클로저(Closure)란? 포스팅 썸네일 이미지

Unity/C#

C# 클로저(Closure)란?

클로저(Closure)는 C#과 같은 현대 프로그래밍 언어에서 매우 중요한 개념입니다. 이번 포스팅에서는 클로저의 기본적인 이해와 C#에서 클로저가 어떻게 사용되는지에 대해 알아보겠습니다. 클로저(Closure)란 무엇인가? 클로저는 함수가 선언될 때의 환경을 '캡처(Capture)'하여, 그 환경 밖에서도 해당 환경에 접근할 수 있게 하는 기능입니다. 클로저는 내부 함수가 외부 함수의 스코프(Scope)에 접근할 수 있도록 해주며, 이를 통해 프로그램잉에서 강력한 표현력을 제공합니다. 클로저의 작동 원리 클로저는 외부 함수의 변수를 내부 함수가 참조할 때 발생합니다. 내부 함수는 외부 함수의 실행이 끝난 후에도 외부 함수의 변수에 접근할 수 있습니다. 이러한 특성 덕분에, 클로저는 다양한 프로그래밍 상..

2024.01.12 게시됨

Unity에서 플랫폼 별 코드 실행: Application.platform vs #if 디렉티브 포스팅 썸네일 이미지

Unity/Function

Unity에서 플랫폼 별 코드 실행: Application.platform vs #if 디렉티브

Unity 개발 시 다양한 플랫폼을 지원하기 위해 플랫폼 별로 다른 코드 실행이 필요할 때가 있습니다. 이를 위한 주요 두 가지 방법, Application.platform과 #if 디렉티브를 비교해 보겠습니다. Application.platform의 사용 Application.platform은 Unity의 런타임 시점에서 현재 실행 중인 플랫폼을 확인하는 방법입니다. 장점 동적 처리: 단일 빌드로 여러 플랫폼에서 다르게 동작하는 앱을 만들 수 있습니다. 코드 포함: 빌드에 모든 플랫폼에 대한 코드가 포함되어, 하나의 빌드로 여러 환경을 대응할 수 있습니다. 사용 예 if (Application.platform == RuntimePlatform.WindowsPlayer) { // Windows 전용 코드..

2024.01.05 게시됨

Unity/ERROR

ERROR | UnityException: get_enterPlayModeOptionsEnabled can only be called from the main thread. , addressable 어드레서블 유니티 메인 스레드에서 불러오지 못하는 오류

에러 코드 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 한글 번..

2022.11.16 게시됨

[C#] 클래스의 멤버와 필드 포스팅 썸네일 이미지

Unity/C#

[C#] 클래스의 멤버와 필드

최근에 들었던 생각 중에 하나인 유니티 개발자로 일을 하고 있는데 기초가 많이 부족하다고 느껴지게 되었던 부분들이 있었습니다. 그래서 해당 부분들을 보충하기 위해 "레트로의 유니티 게임 프로그래밍 에센스"라는 책을 구입 후 공부하기 시작했습니 다. 물론 알고 있는 부분도 많이 있지만 복습 역시 필요한 영역이라고 생각이 들어서 책을 공부하는 중입니다. 유니티 C#에서 말하는 클래스란 ? # 레트로의 유니티 게임 프로그래밍 에센스 p184 우선 책에서는 클래스와 오브젝트를 같이 설명하는 방식으로 진행되었습니다. 객체지향 프로그래밍 - '사람이 현실 세상을 보는 방식'에 가깝게 프로그램을 완성하는 방법의 핵심 개념으로 설명을 해주면서 시작하게 되었습니다. 클래스는 표현하고 싶은 대상을 추상화하여 대상과 관련된..

2022.07.11 게시됨

[Unity-Localization] 유니티 현지화 구현 (다국어 번역) 포스팅 썸네일 이미지

Unity/Function

[Unity-Localization] 유니티 현지화 구현 (다국어 번역)

서론 최근 회사에서 진행하게 될 프로젝트 중 새롭게 요청된 기능 중 하나인 현지화(Localization) 기능 - 다국어 번역 관련해서 구현하게 된 방향과 추후에 지식공유를 위한 정리 글입니다. 프로젝트 링크 https://github.com/SONSAZANG/UnityLocalizationTest GitHub - SONSAZANG/UnityLocalizationTest: UnityLocalizationTest UnityLocalizationTest. Contribute to SONSAZANG/UnityLocalizationTest development by creating an account on GitHub. github.com 우선 유니티에서 현지화 기능을 사용할 때 진행할 수 있는 방향을 두 가..

2022.07.01 게시됨

[Function] unity runtime compress texture| 유니티 런타임 환경에서 텍스처 압축하기 포스팅 썸네일 이미지

Unity/Function

[Function] unity runtime compress texture| 유니티 런타임 환경에서 텍스처 압축하기

본 글은 회사 업무 중에 서버에서 불러오는 Texture2D (JPG, PNG)등의 용량이 너무 커서 램 관리가 필요한 모바일 환경에서 강제 종료되는 현상을 방지하기 위해 구현하게 된 기능입니다. 필요한 기능 서버에서 불러오는 이미지를 런타임 환경에서 불러오는 과정과 동시에 텍스처 압축을 진행하여서 메모리 과부하를 막는 기능이 필요합니다. 유니티 프로젝트 안에 있는 텍스처의 경우 따로 여러 플랫폼에 원하는 형식으로 저장할 수 있는 기능이 제공되고 있으나 서버에서 바로 불러올 경우 위 기능을 사용하지 못하는 형식입니다. 구현한 기능 PNG or JPG -> GPU 랜더링이 필요하지 않는 이미지 파일들을 더 낮은 용량인 RGBA32로 변환 후 DXT5로 압축 진행 using System.Collections..

2022.05.19 게시됨

[ERROR] Addressable Error 어드레서블 빌드 후 이전 정보와 같을 경우 포스팅 썸네일 이미지

Unity/ERROR

[ERROR] Addressable 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"는 없는 씬이여서 참조하지 ..

2022.05.11 게시됨

[ERROR] expected x86 architecture, but was x64 architecture. You must recompile your plugin for x86 architecture. 포스팅 썸네일 이미지

Unity/ERROR

[ERROR] expected x86 architecture, but was x64 architecture. You must recompile your plugin for x86 architecture.

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..

2022.02.10 게시됨