Анимация, созданная с помощью скрипта, не работает - PullRequest
0 голосов
/ 21 февраля 2019

Я создаю игру с большим количеством двумерных анимированных персонажей, представленных спрайтами.Я пытаюсь автоматизировать:

  • Разделение спрайтов
  • Создание анимационного клипа
  • Создание контроллера переопределения аниматора

Я создал AssetPostprocessor и наOnPostprocessSprites (текстура Texture2D, спрайты Sprite []) я получаю хорошее число спрайтов.

Затем я попытался создать файл .anim следующим образом:

    for (var y = 0; y < clips.Length; y++)
    {
        string clipName = "Animation-"+y;
        AnimationClip animClip = new AnimationClip();
        AnimationClipSettings animClipSett = new AnimationClipSettings();
        animClip.frameRate = 25;   // FPS
        animClip.wrapMode = WrapMode.Default;
        animClip.name = clipName;
        animClipSett.loopTime = true;



        EditorCurveBinding curveBinding = EditorCurveBinding.PPtrCurve("", typeof(SpriteRenderer), "m_Sprite");

        ObjectReferenceKeyframe[] spriteKeyFrames = new ObjectReferenceKeyframe[clips[y].Length];
        for (int i = 0; i < (clips[y].Length); i++)
        {
            spriteKeyFrames[i] = new ObjectReferenceKeyframe();
            spriteKeyFrames[i].time = i;
            spriteKeyFrames[i].value = sprites[i];
        }

        AnimationUtility.SetAnimationClipSettings(animClip, animClipSett);
        AnimationUtility.SetObjectReferenceCurve(animClip, curveBinding, spriteKeyFrames);

        if (!AssetDatabase.IsValidFolder("Assets/Character/Animations/" + textureName))
            AssetDatabase.CreateFolder("Assets/Character/Animations", textureName);

        AssetDatabase.CreateAsset(animClip, "Assets/Character/Animations/" + textureName + "/" + clipName + ".anim");
    }


    AssetDatabase.SaveAssets();
    AssetDatabase.Refresh();

И затем я создалanimationOverrideController.

Но когда я использовал AnimationClip, ничего не произошло.Я попытался создать анимацию с помощью перетаскивания, и она работает ...

Я открыл два файла .anim и увидел:

В моем файле "script":

  m_PPtrCurves:
- curve:
- time: 0
  value: {fileID: 0}
- time: 1
  value: {fileID: 0}
- time: 2
  value: {fileID: 0}
- time: 3
  value: {fileID: 0}
- time: 4
  value: {fileID: 0}
attribute: m_Sprite
path: 
classID: 212
script: {fileID: 0}

И в моем рабочем сгенерированном .anim у меня есть:

  m_PPtrCurves:
- curve:
- time: 0
  value: {fileID: 21300000, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
- time: 1
  value: {fileID: 21300002, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
- time: 2
  value: {fileID: 21300004, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
- time: 3
  value: {fileID: 21300006, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
- time: 4
  value: {fileID: 21300008, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
- time: 5
  value: {fileID: 21300010, guid: 6b1a9fb476f720f4aa183bdb1edb88a3, type: 3}
attribute: m_Sprite
path: 
classID: 212
script: {fileID: 0}

Кадры анимации, кажется, игнорируются при сериализации YML

Знаете ли вы, почему мой анимированный файл "script"не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...