Catmull Rom C# Code
Vector3 GetCatmullRomPoint(Vector3 p, Vector3 p1, Vector3 p2, Vector3 p3, float t) {
float t1 = t * t;
float t2 = t1 * t;
Vector3 pt = 0.5f * ((-p + 3f * p1 - 3f * p2 + p3) * t2
+ (2f * p - 5f * p1 + 4f * p2 - p3) * t1
+ (-p + p2) * t
+ 2f * p1);
return pt;
}
또는
Vector3 GetCatmullRomPoint(Vector3 p, Vector3 p1, Vector3 p2, Vector3 p3, float t) {
Vector3 pt = Vector3.zero;
float t0 = ((-t + 2f) * t - 1f) * t * 0.5f;
float t1 = (((3f * t - 5f) * t) * t + 2f) * 0.5f;
float t2 = ((-3f * t + 4f) * t + 1f) * t * 0.5f;
float t3 = ((t - 1f) * t * t) * 0.5f;
pt.x = p.x * t0 + p1.x * t1 + p2.x * t2 + p3.x * t3;
pt.y = p.y * t0 + p1.y * t1 + p2.y * t2 + p3.y * t3;
pt.z = p.z * t0 + p1.z * t1 + p2.z * t2 + p3.z * t3;
return pt;
}
'Unity' 카테고리의 다른 글
Local Identifier In File 값 얻어오기 (1) | 2020.10.08 |
---|---|
스텐실(Stencil) Comparison, Operation Enum 표 (0) | 2019.02.07 |
Unity Editor에서 PlayerPrefs 내용 지우는 메뉴 추가 (0) | 2019.01.23 |
Mac에서 Script Editor로 Visual Studio Code 사용하기 (0) | 2017.03.20 |
Android Studio(Gradle)에서 Android Plugin 제작하기 (0) | 2016.08.12 |
[UnityUI] Button for Mobile (0) | 2016.08.08 |
[UnityUI] Horizontal Page Scroll (0) | 2016.08.08 |
[UnityUI] Nested ScrollRect (0) | 2016.08.08 |
[UnityUI] Text LetterSpacing (0) | 2016.08.08 |
[UnityUI] Text Gradient (0) | 2016.08.08 |