애니메이션 커브 반전(Animation Curve Mirror)
Animation Curve를 로 생성하는 코드이다.
해당 AnimationCurve를 실행하는걸 시간의 역순으로도 처리가 가능하지만 시각적으로 Curve도 확인이 되는 형태가 되면 좋을것 같았다.
AnimationCurve를 통해서 특정 수치값에 대한 처리를 하는데 활용하다가 이번에 미러링(반대)로 Animation Curver 기능이 필요해서 구현하게 되었다.
반응형
< 코드 >
using UnityEngine;
public static class AnimationCurveExtensions
{
public static AnimationCurve Mirror(this AnimationCurve curve)
{
Keyframe[] keys = curve.keys;
int keyCount = keys.Length;
// 미러링된 키프레임 배열 생성
Keyframe[] mirroredKeys = new Keyframe[keyCount];
// 각 키프레임을 미러링
for (int i = 0; i < keyCount; i++)
{
Keyframe originalKey = keys[i];
// 시간 값 미러링
float mirroredTime = (keys[keyCount - 1].time - originalKey.time);
// 미러링된 키프레임 생성
Keyframe mirroredKey = new Keyframe(mirroredTime, originalKey.value, -originalKey.inTangent, -originalKey.outTangent);
// 미러링된 키프레임을 배열에 추가
mirroredKeys[i] = mirroredKey;
}
// 새로운 AnimationCurve를 생성하고 미러링된 키프레임 배열을 할당
AnimationCurve mirroredCurve = new AnimationCurve(mirroredKeys);
return mirroredCurve;
}
}
Unity Animation Curve 사용 : [링크]
★☆☆☆☆
반응형
'개발 > Unity' 카테고리의 다른 글
Unity) ScriptableObject Insecptor 조건부 노출 (Custom Editor) (0) | 2024.01.17 |
---|---|
Unity) Layout Group(Auto Layout) 을 사용할때 비활성화로 값 변경이 안될때 변경하는 방법들 (1) | 2024.01.12 |
Unity) 동일한 프로젝트를 참조하는 여러 Unity 인스턴스 실행 (심볼릭 링크로 동일한 프로젝트 다중 실행) (0) | 2023.12.26 |
Unity) UIObject Drag And Drop (UI오브젝트 드래그 앤 드랍) (2) | 2023.12.20 |
Unity)영상으로 녹화 하기(Editor:Recoder) (0) | 2023.12.15 |
댓글