[HappyKit] C# Extension Method를 활용한 Vector 변환 기능
2024. 5. 4. 01:36ㆍ코드 전시관/Unity
HappyKit : https://github.com/HappyFaceFriend/HappyKit
GitHub - HappyFaceFriend/HappyKit
Contribute to HappyFaceFriend/HappyKit development by creating an account on GitHub.
github.com
최근에 유니티 개발 중 DOTween을 사용하면서 이건 어떻게 만들었을까.. 하다가
처음으로 C#의 Extension Method에 대해 알게 됐습니다.
Extension Method는 간단하게 말해 static method를 이용해 어떤 클래스에 직접 메소드를 추가하는 기능으로, 상속 없이 기능 확장이 가능하다는 장점이 있습니다.
왜 이제야 알았지 싶었지만, 지금까지 Vector나 Transform에 대해 사용하던 함수들을 사용하기 편하게 바꿀 수 있게 됐습니다.
예전부터 잘 써오던 Vector2ToVector3 함수들을 모두 Vector에 대한 Extension으로 재작성 했습니다.
//VectorExtensions에 구현한 static 함수들
public static Vector2 ToVector2(this Vector3 vec)
{
return new Vector2(vec.x, vec.y);
}
public static Vector2 ToVector2XZ(this Vector3 vec)
{
return new Vector2(vec.x, vec.z);
}
public static Vector3 ToVector3(this Vector2 vec, float z = 0)
{
return new Vector3(vec.x, vec.y, z);
}
public static Vector3 ToVector3XZ(this Vector2 vec, float y = 0)
{
return new Vector3(vec.x, y, vec.y);
}
//사용 예시
Vector3 vec = new Vector3(1,2,3);
Vector2 v = vec.ToVector2(); // (1, 2)
Vector3 v2 = v.ToVector3XZ(); // (1, 0, 2)
728x90
'코드 전시관 > Unity' 카테고리의 다른 글
[HappyKit] 다양한 Singleton 구현 (0) | 2024.10.29 |
---|---|
[Unity] NestedClassMirror - Nested Class를 인스펙터에서 사용하기 (1) | 2024.10.12 |
[Unity] 원활한 카메라 활용을 위한 CameraToken (0) | 2023.12.29 |
[HappyTools] GameBootstrapper, SingletonBehaviour (0) | 2023.03.21 |
[HappyTools] StateMachineBase (0) | 2023.03.13 |