C# Local Function
·
C#
소개 C# Local Function은 C# 7.0 이후로 추가된 기능 중 하나입니다. Local Function은 메서드 내에서 정의되는 함수로, 해당 메서드 내에서만 사용됩니다. 이번 글에서는 C# Local Function에 대해 자세히 알아보겠습니다. Local Function이란? Local Function은 메서드 내에서 정의되는 함수입니다. Local Function은 해당 메서드 내에서만 사용될 수 있으며, 외부에서는 접근할 수 없습니다. Local Function은 메서드 내에서 중복되는 코드를 줄이고, 메서드의 가독성을 높이는 데 매우 유용합니다. Local Function의 예 다음은 Local Function의 간단한 예입니다. public void PrintNames(List na..
파이썬에서 알아두면 유용한 기능들
·
파이썬/Basic
1. Function 속성(attribute) 클래스 및 개체의 속성을 설정하는 방법과 유사하게 함수에도 속성을 설정할 수 있습니다. def func(x): intermediate_var = x**2 + x + 1 if intermediate_var % 2: y = intermediate_var ** 3 else: y = intermediate_var **3 + 1 # setting attributes here func.optional_return = intermediate_var func.is_awesome = 'Yes, my function is awesome.' return y y = func(3) print('Final answer is', y) # Accessing function attribu..
Unity : LayerMask
·
Unity
Unity에서는 LayerMask를 사용하여 Raycast를 할 때, 레이어를 직접 입력하여 사용할 수 있다. 하지만 이 방법은 레이어 번호가 변경될 경우 코드를 일일이 수정해야 하기 때문에 비효율적일 수 있다. 이번 글에서는 LayerMask를 사용할 때 레이어 번호를 직접 입력하는 방법과 함께, 레이어 이름으로 레이어 번호를 알아오는 방법을 살펴보자. 레이어 번호로 레이어 마스크 값 구하기 레이어를 지정하기 위해 32bit 비트 마스크를 사용하고 있고, 레이어를 지정하기 위해서는 각 레이어 순서의 플래그가 켜져 있는 이진 값을 넘겨 줘야한다. 각 레이어를 구분하기 위해 32bit 비트 마스크를 사용한다. 레이어는 0부터 시작하며 31이 마지막 레이어 번호다. 레이어 마스크를 인자로 받는 Raycast..
Unity : Ray, Raycast 및 RaycastHit
·
Unity
Unity의 Physics.Raycast는 직선을 씬에 투영하여 대상에 적중되면 true를 리턴하는 물리 함수입니다. Raycast 함수는 캐스팅 성공 실패에 따른 결과만 리턴하는 간단한 형태에서부터 대상과 Ray의 충돌에 관련된 자세한 정보를(직선과 객체의 교차 정보. 거리, 위치, 캐스팅에 검출 된 객체의 Transform에 대한 참조 등) 리턴하는 다양한 버전이 제공되고 있습니다. 이번 포스트에서는 Raycast 함수를 사용하기 위해 알아야할 필수적인 요소들을 살펴보도록 하겠습니다. Unity에서 Raycast를 사용하는 방법 Unity 2020.3 버전 기준으로 Physics.Raycast는 다양한 버전으로 오버로드되어 제공되고 있습니다. 파라미터가 많아 복잡해 보이지만 디폴트 파라미터들을 제외하..
Unity의 IL2CPP란?
·
Unity
소개 Unity는 iOS와 Android와 같은 모바일 플랫폼에서 실행하기 위해 Mono를 사용합니다. 하지만, Mono는 IL(Intermediate Language)을 Native Code로 변환하는 Just-in-time(JIT) 컴파일러를 사용합니다. 이것은 모바일 기기에서 성능 문제를 일으키기 때문에 Unity는 AOT(Ahead-of-time) 컴파일러인 IL2CPP를 도입했습니다. 이 글에서는 Unity의 IL2CPP에 대해 자세히 설명하겠습니다. IL2CPP란 무엇인가요? IL2CPP는 Unity에서 사용하는 AOT 컴파일러입니다. 이 컴파일러는 C# 코드를 C++ 코드로 변환합니다. 이후 C++ 코드는 기기의 네이티브 코드로 컴파일됩니다. 이 방식은 JIT 컴파일러보다 빠르고, 메모리 사..
C# 튜플 자료형
·
C#
소개 C#에서 튜플(Tuple)은 여러 값을 변수 하나에 저장할 수 있는 자료형입니다. 튜플은 서로 다른 데이터 형식의 값을 저장할 수 있으며, 소괄호로 묶인 값의 목록으로 정의됩니다. 튜플은 코드의 가독성과 유지 보수성을 향상시키며, 메서드에서 여러 값을 반환해야 하는 경우에 특히 유용합니다. 구조 튜플은 소괄호로 묶인 값의 목록으로 정의됩니다. 각 값은 데이터 형식과 값으로 구성됩니다. 다음은 튜플의 구조를 보여주는 예제입니다. // 튜플 정의 Tuple person = (25, "John"); // 튜플의 구조 ( int age = 25, string name = "John" ) 위의 예제에서, Tuple은 int와 string 형식의 값을 가진 튜플을 정의합니다. 튜플은 다음과 같은 구조를 갖습니..
실수형 변수 decimal, float, double
·
C#
소개 C#에서는 실수형 변수를 선언하여 부동 소수점 방식과 고정 소수점 방식으로 값을 저장할 수 있습니다. 이번 글에서는 C#에서 제공하는 실수형 변수 중 decimal, float(single), double에 대해 설명하고, 이들 변수가 사용하는 고정 소수점 방식과 부동 소수점 방식에 대해 자세히 살펴보겠습니다. decimal decimal은 C#에서 고정 소수점 방식을 사용하는 실수형 변수 중 하나입니다. decimal은 128비트 부호 있는 실수형 변수로, 28자리의 정밀도를 가집니다. 이는 매우 큰 수나 소수점 이하 자리수가 많은 수를 정확하게 표현할 수 있다는 것을 의미합니다. decimal 변수를 선언할 때는 다음과 같은 방법을 사용합니다. decimal myDecimal = 123.45m;..
Unity 확장형 함수
·
Unity/Tip
C# 3.0 이후 버전에서는 확장 메서드(Extension Method)라는 개념이 추가되어, C#에서 클래스의 기능을 확장시키는 기능을 제공합니다. 확장 메서드는 해당 클래스의 인스턴스에서 호출할 수 있는 메서드를 추가하는 것입니다. 이렇게 하면 해당 클래스의 인스턴스를 먼저 생성한 다음, 확장 메서드를 호출할 수 있습니다. Unity에서는 MonoBehaviour 클래스를 상속받는 클래스에서 확장 메서드를 정의할 수 있습니다. 확장 메서드란? C#에서는 기본적으로 정의된 클래스에 대해서만 메서드를 사용할 수 있습니다. 하지만, 우리가 작성한 클래스에 대해서도 기본적인 메서드를 사용할 수 있도록 C#에서는 확장 메서드를 제공합니다. 확장 메서드는 해당 클래스의 인스턴스에서 호출할 수 있는 메서드를 추가..