코샵
끄적끄적 코딩 공방
코샵

인기 글

  • 분류 전체보기 (476) N
    • MongoDB (4)
    • 일기장 (4)
    • Unity (138)
      • Tip (41)
      • Project (1)
      • Design Pattern (8)
      • Firebase (6)
      • Asset (2)
    • 파이썬 (127)
      • Basic (40)
      • OpenCV (8)
      • Pandas (15)
      • PyQT (3)
      • SBC(Single Board Computer) (1)
      • 크롤링 (14)
      • Fast API (29)
      • Package (6)
    • Linux (4)
    • C# (97)
      • Algorithm (11)
      • Window (7)
    • TypeScript (45) N
      • CSS (7) N
    • Git (11)
    • SQL (5)
    • Flutter (10)
      • Tip (1)
    • System (1)
    • BaekJoon (6)
    • Portfolio (2)
    • MacOS (1)
    • 유틸리티 (1)
    • 서비스 (6)
    • 자동화 (3)
    • Hobby (10)
      • 물생활 (10)
      • 식집사 (0)
전체 방문자
오늘
어제

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
코샵

끄적끄적 코딩 공방

Unity/Tip

Unity 확장형 함수

2023. 6. 18. 11:56
반응형

C# 3.0 이후 버전에서는 확장 메서드(Extension Method)라는 개념이 추가되어, C#에서 클래스의 기능을 확장시키는 기능을 제공합니다. 확장 메서드는 해당 클래스의 인스턴스에서 호출할 수 있는 메서드를 추가하는 것입니다. 이렇게 하면 해당 클래스의 인스턴스를 먼저 생성한 다음, 확장 메서드를 호출할 수 있습니다. Unity에서는 MonoBehaviour 클래스를 상속받는 클래스에서 확장 메서드를 정의할 수 있습니다.

확장 메서드란?

C#에서는 기본적으로 정의된 클래스에 대해서만 메서드를 사용할 수 있습니다. 하지만, 우리가 작성한 클래스에 대해서도 기본적인 메서드를 사용할 수 있도록 C#에서는 확장 메서드를 제공합니다. 확장 메서드는 해당 클래스의 인스턴스에서 호출할 수 있는 메서드를 추가하는 것입니다. 즉, 해당 클래스의 인스턴스를 먼저 생성한 다음, 확장 메서드를 호출할 수 있습니다.

Unity에서의 확장 메서드 사용법

C#의 확장 메서드를 사용하려면, 확장 메서드가 포함될 클래스를 정의하고, 해당 클래스에 정의된 메서드에 this 키워드를 추가합니다. 이렇게 하면 해당 클래스의 인스턴스에서도 해당 메서드를 호출할 수 있습니다. Unity에서는 MonoBehaviour 클래스를 상속받는 클래스에서 확장 메서드를 정의할 수 있습니다.

다음은 Transform 클래스에 확장 메서드인 SetX를 추가하는 예제입니다.

using UnityEngine;

public static class TransformExtensions
{
    public static void SetX(this Transform transform, float x)
    {
        Vector3 position = transform.position;
        position.x = x;
        transform.position = position;
    }
}

위 예제에서는 SetX라는 이름의 확장 메서드를 정의했습니다. 이 메서드는 Transform 클래스에 float형 x값을 받아와서, 해당 Transform 객체의 위치 벡터의 x값을 변경합니다.

확장 메서드의 장점

확장 메서드는 클래스의 기능을 확장시키기 때문에 개발자가 원하는 기능을 추가할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성이 향상됩니다. 또한, C#의 확장 메서드는 다중 상속이 불가능한 언어에서 클래스에 믹스인(mixin) 기능을 추가하기 위한 용도로도 사용됩니다.

예제

다음은 위에서 정의한 SetX 메서드를 사용하는 예제입니다.

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Transform myTransform = transform;
        myTransform.SetX(5);
    }
}

위 예제에서는 Start 메서드에서 transform을 가져와서 SetX 메서드를 호출합니다. 이렇게 하면 해당 객체의 위치 벡터의 x값이 5로 변경됩니다.

결론

C#의 확장 메서드는 기존에 정의된 클래스에 새로운 기능을 추가할 때 유용합니다. Unity에서는 MonoBehaviour 클래스를 상속받는 클래스에서 확장 메서드를 정의할 수 있습니다. 이번 글에서는 Transform 클래스에 확장 메서드를 정의하는 방법을 설명하고, 간단한 예제를 통해 사용법을 알아보았습니다. 확장 메서드를 잘 활용하여 프로그래밍을 하면, 더욱 유연하고 확장성 있는 코드를 작성할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity > Tip' 카테고리의 다른 글

Unity로 안드로이드 앱 개발 시 권한 설정 방법  (0) 2023.07.07
Unity에서 스마트폰 화면 항상 켜지도록 설정하기  (0) 2023.07.07
Perlin/Simplex Noise Algorithm  (0) 2023.06.17
Unity 가비지 컬렉션 최적화  (1) 2023.06.13
Binary Space Partitioning (BSP)란?  (0) 2023.06.12
    'Unity/Tip' 카테고리의 다른 글
    • Unity로 안드로이드 앱 개발 시 권한 설정 방법
    • Unity에서 스마트폰 화면 항상 켜지도록 설정하기
    • Perlin/Simplex Noise Algorithm
    • Unity 가비지 컬렉션 최적화
    코샵
    코샵
    나의 코딩 일기장

    티스토리툴바