목표

  • 확장 메서드에 대해 알아보자.

Extension Methods

  • 확장 메서드를 사용하면, 다시 컴파일하거나 원래 형식을 수정하지 않아도 기존 형식에 메서드를 추가할 수 있다.

예시

  • 아래는 Vector3 클래스에 ResetTransform 확장 메서드를 추가하는 예시이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 확장 클래스는 static으로 정의해야 한다.
public static class MyExtensionMethods
{
    // 확장 메서드 또한 static으로 정의해야 한다.
    // this 키워드를 사용하여, 확장할 클래스를 파라미터로 받는다.
    public static void ResetTransform(this Transform transform)
    {
        transform.localRotation = Quaternion.identity; // 회전
        transform.localPosition = Vector3.zero; // 이동
        transform.localScale = new Vector3(1, 1, 1); // 크기
    }
}


public class SampeScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        var _transform = this.gameObject.transform; 
        _transform.ResetTransform(); // 그럼 Transform 타입의 자료형에 ResetTransform이라는 확장 메서드를 사용할 수 있다.
    }
}

+ Recent posts