본문 바로가기

분류 전체보기

(19)
Graphics API 모두 아시다시피 유니티는 멀티플랫폼을 지원하는 엔진입니다. 유니티가 안드로이드, IOS, PC 등의 다양한 플랫폼을 지원할 수 있는 이유는, 중간 과정에서 각 플랫폼에 따라 적합한 그래픽스 API를 지원하고 있기 때문입니다. 각 그래픽스 API에 대해 간단히 살펴본다면, 1. Open GL Open Graphics Library의 줄임말로, 그래픽 하드웨어(GPU)와 통신할 수 있도록 지원해주는 API 또는 표준 규격을 뜻합니다. Open GL은 GPU를 이용한 하드웨어 가속화를 통해 렌더링을 하여 2D, 3D 벡터 그래픽을 표현할 수 있게 합니다. 하드웨어 가속 : 어떤 작업을 CPU가 처리하는 것이 아닌 해당 작업에 최적화된 다른 하드웨어(그래픽 카드, 사운드 카드, ...)에게 작업을 전송하여, 해..
Definition of Shader 셰이더의 기본 정의를 검색해보면 컴퓨터 그래픽스 분야에서 주로 그래픽 하드웨어의 렌더링 효과를 계산하는 소프트웨어 명령의 집합이라고 나옵니다. 즉, GPU를 제어하는 스크립트라고 볼 수 있는 것입니다. 셰이더의 현대적인 이용은 1988년 5월 픽사에 의해 출판된 렌더맨 인터페이스와 함께 대중에 도입되었다고 합니다. 렌더맨 인터페이스를 간략히 설명한다면 언어의 문법은 C언어와 유사하고, 표준함수와 다섯 종류의 셰이더( Surface, Light, Volume, Imager, Displacement )를 정의하고 있다고 합니다. 변위(Displacement) : 텍스처화된 표면상에 존재하는 점의 실제 기하학적 위치가 텍스처에 저장된 값에 따른 표면 법선에 따라 대체되는 매핑입니다. 주로 돌출된 표면을 표현할..
This Unity에서 this는 해당 Script Component를 가리키는 변수입니다. 예를 들어 Sample Class라는 임의의 MonoBehaviour를 상속받는 class를 만들고, 그 class 내에서 this를 호출한다면 이는 GameObject에 소속된 Sample Class Component를 가리키게 되는 것입니다. 그렇기 때문에 Destroy(this)와 Destroy(gameObject)의 차이점은, 전자는 gameObject에 소속된 Component를 지우는 것이고 후자는 gameObject 그 자체를 지운다는 것입니다. 자료 출처 https://docs.unity3d.com/kr/2020.3/Manual/class-GameObject.html
전위 연산자 & 후위 연산자 전위(prefix) 연산자와 후위(posfix) 연산자의 차이는 보통 연산을 하는 시점으로 나눕니다. 말 그대로 전위 연산자는 해당 연산을 수행한 후에 작업을 진행하는 것이고, 후위 연산자는 작업이 끝난 후에 연산을 수행하는 것이라고 보통 알고 있습니다.public static void Main(string[] args) { int a = 1; int b = 1; Console.WriteLine(++a); // 2 - 전위 연산자 Console.WriteLine(b++); // 1 - 후위 연산자} 하지만 후위 연산자에서 작업이 끝난 후에 연산을 수행한다는 것은 언뜻 보면 연산자의 우선순위가 지켜지지 않는다는 것으로 느껴질 수도 있습니다. 그러나 후위 연산자의 구현을 살펴보면..
FMOD FMOD GOAL 사운드의 세부 설정(스크립팅, 믹싱) 등을 유니티 내부에서도 가능하게 한다.SIMPLE, POWERFUL, DEPENDABLE, INTEGRATEDFMOD SCRIPTING API Studio APIFMOD Studio에서 제작한 이벤트들을 제어한다. Core API사운드를 직접 재생한다. Runtime Manager APIUnity에서 FMOD Studio Event들을 제어할 수 있는 Operation 제공한다.Runtime Manager가 초기화될 때 Studio System 및 Core System도 같이 생성한다. Event ReferenceEvent 정보를 지정 가능하게 한다.INSPECTOR COMPONENT FMOD Studio Listener정확한 3D Position ..
Property Property전용 필드의 값을 읽거나 쓰거나 계산하는 메커니즘을 제공하는 멤버입니다. Property는 Public 데이터 멤버로 사용할 수 있으며, 접근자라고 하는 특수 메소드를 통해서 접근할 수 있습니다. Property를 사용하면 데이터에 쉽게 접근할 수 있으며, 메서드의 안전성과 유연성을 높이는데 도움이 됩니다. 또한, 클래스가 구현 또는 검증 코드를 숨기는 동시에 값을 가져오고 설정하는 방법을 공개적으로 노출할 수 있습니다. getProperty 값(Private)을 반환하는데 사용됩니다. setProperty에 새 값을 할당하는데 사용됩니다. 이를 통해 Private Field에 값을 할당하기 전 데이터 유효성 검사도 할 수 있습니다. init개체 생성 중에만 새 값을 할당하는 접근자로 C#..
MVC Pattern MVC(Model-View-Controller) Pattern사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 Software Design Pattern입니다. 이는 소프트웨어의 비즈니스 로직과 화면을 구분하는 것에 중점을 두고 있습니다. MVC에 기반을 둔 다른 Design Pattern으로는 MVVM(Model-View-ViewModel), MVP(Model-View-Presenter), MVW(Model-View-Whatever)가 있습니다. MVC Pattern의 세 가지 부분은 간단하게 다음과 같이 설명할 수 있습니다. Model데이터와 비즈니스 로직을 관련합니다. View레이아웃과 화면을 처리합니다. Controller사용자의 입력을 처리하여 모델과 뷰에 결과를 반영합니다...
메모리 저장 영역 프로그램이 실행되기 전에는 먼저 프로그램이 메모리에 로드되고, 프로그램에 사용되는 변수들도 로드되어야 합니다. 따라서, 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 영역을 제공하고 있습니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 다음과 같습니다. 1. 코드 영역2. 데이터 영역3. 스택 영역4. 힙 영역 다음 그림은 운영체제가 제공하는 메모리 공간을 나타내고 있습니다. 각 영역에 대해 간단히 알아보면 다음과 같습니다. 코드 영역프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 불립니다. 컴파일 이후에 기계어로 저장되며, 프로그램이 실행되고 끝날 때까지 메모리에 남습니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가려가서 처리합니다. 데이터 영역프로그램의 전역 변..