참고 영상 : C# 확장 메서드
기존 클래스의 기능을 확장하기 위해서 보통 상속을 이용한다.
일부 특별한 상황일 때 상속이 좋은 조건이 아닐 수도 있다.
그때 대신 사용할 수 있는 것이 확장 메서드다.
ex) String 클래스 처럼 *sealed class
sealed 키워드를 사용한 클래스는 봉인되어 상속하지 못하게 된다.
public static class 클래스 이름 { // this 대상타입 식별자 -- 확장할 클래스 또는 타입 public static 반환타입 메서드 이름(this 대상타입 식별자, 매개변수) { // 내용 } }
public class Player
{
public void Move()
{
// move
}
}
public static class PlayerA
{
public static void Jump(this Player player)
{
// jump
}
}
public class Test:MonoBehaviour
{
private void Start()
{
// 기존 Player
Player player= new Player();
player.Move();
player.Jump();
}
}
public static class TransformExtension
{
// Transform의 위치, 회전, 스케일을 초기화하는 확장 메서드
public static void ResetTransform(this Transform transform)
{
transform.position = Vector3.zero;
transform.rotation = Quaternion.identity;
transform.localScale = Vector3.one;
}
}
public class ExtensionTest : MonoBehaviour
{
void Start()
{
Transform myTransform = gameObject.transform;
myTransform.ResetTransform();
}
}