AnimationCurve에 대한 Unity3d 연구
AnimationCurve에 대한 연구
최근 모바일 게임을 쓰는 과정에서 Animation Curve를 이용하여 3d카드의 동적 이동 축소를 완성해야 하기 때문에 Animation Curve에 대해 연구를 했고 공식 문서를 찾아보면서 사용할 수 있는 관련 방법을 찾았다.
AnimationCurve는 Unity3D의 기능입니다.임의로 변경된 커브를 편집하는 역할을 합니다.예를 들어 곡선 궤적, 동적 곡선 변화 등이다.
어떻게 코드로 곡선을 씁니까
키 프레임 시퀀스 만들기: Keyframe[] ks = new Keyframe[3];곡선에 프레임 시퀀스 추가하기:AnimationCurve scaleCurve = new AnimationCurve(ks);곡선의 프레임 시퀀스 가져오기: scaleCurve [index] 또는 scaleCurve.keys[index] 단축키 추가:scaleCurve.Addkey(time,value) 삭제 단축키:scaleCurve.RemoveKey(index)
프레임 시퀀스 관련 설정
WrapMode.Loop은 전체 순환의 좌우 순환을 가리킨다.WrapMode.Clamp는 당신이 설정한 것 이외의 위치가 직선이라는 것을 가리킨다.WrapMode.PingPong은 대칭 사이클을 나타냅니다.kfs2[0].inTangent는 입력된 탄젠트의 기울기를 설정하는 반면 kfs2[0].outTangent는 설정된 접선 경사율입니다.관련 프레임을 설정하면 커브를 직접 생성할 수 있습니다.positionCurve = new AnimationCurve(kfs1);
Keyframe[] kfs1 = new Keyframe[2];
kfs1[0] = new Keyframe(0, 0);
kfs1[1] = new Keyframe(1, 1);
positionCurve = new AnimationCurve(kfs1);
positionCurve.preWrapMode = WrapMode.Loop;
positionCurve.postWrapMode = WrapMode.Loop;
Keyframe[] kfs2 = new Keyframe[3];
kfs2[0] = new Keyframe(0.0f, 0.3f);
kfs2[0].inTangent = 1.4f;
kfs2[0].outTangent = 1.4f;
kfs2[1] = new Keyframe(0.5f, 1.0f);
kfs2[1].inTangent = 1.4f;
kfs2[1].outTangent = -1.4f;
kfs2[2] = new Keyframe(1.0f, 0.3f);
kfs2[2].inTangent = -1.4f;
kfs2[2].outTangent = 1.4f;
scaleCurve = new AnimationCurve(kfs2);
scaleCurve.preWrapMode = WrapMode.Loop;
scaleCurve.postWrapMode = WrapMode.Loop;
커브 사용 방법
float scaleValue = scaleCurve.Evaluate(value); 만약value가 계속 커지면 곡선의 대응값을 얻을 수 있고,scaleValue를 구성 요소의transfrom에 부여하면 구성 요소의 크기, 위치를 원활하게 이동할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.