AnimationCurve에 대한 Unity3d 연구

3039 단어

AnimationCurve에 대한 연구


최근 모바일 게임을 쓰는 과정에서 Animation Curve를 이용하여 3d카드의 동적 이동 축소를 완성해야 하기 때문에 Animation Curve에 대해 연구를 했고 공식 문서를 찾아보면서 사용할 수 있는 관련 방법을 찾았다.
  • 코드로 곡선을 어떻게 쓰는가
  • 키 시퀀스에 대한 설정
  • 곡선의 사용 방법
  • AnimationCurve에 대한 연구
  • 코드로 곡선을 어떻게 쓰는가
  • 프레임 시퀀스 관련 설정
  • 곡선의 사용 방법


  • 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에 부여하면 구성 요소의 크기, 위치를 원활하게 이동할 수 있습니다.

    좋은 웹페이지 즐겨찾기