• Unity开发笔记-Unity2019使用AssetDatabase.CreateAsset创建TimelineAsset保存不正常的问题


    问题

    当通过AssetDatabase创建TimelineAsset时,Timeline上的Track都丢失了

    下面的代码TimelineAsset不会被正确的创建出来:

      `TimelineAsset timeline = ScriptableObject.CreateInstance<TimelineAsset>();
        timeline.name = "test_timeline";
        
        if (!Directory.Exists(TIMELINE_SAVE_PATH))
        {
            Directory.CreateDirectory(TIMELINE_SAVE_PATH);
        }
        string assetPath =TIMELINE_SAVE_PATH+timeline.name+".playable";
        
    
        timeline.CreateTrack<AnimationTrack>();
        timeline.CreateTrack<AnimationTrack>();
        AssetDatabase.CreateAsset(timeline,assetPath);
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();`
    

    虽然生成完毕,点击查看timeline没有什么问题

    但是
    运行一下Unity,然后再查看timeline,会变成这样


    另外会有报错提示:

    MissingReferenceException: The object of type 'AnimationTrack' has been destroyed but you are still trying to access it.

    我们使用文本编辑器打开这个timeline文件,发现文件确实没有被正确创建

    原因:

    创建track之前,timline需要已经存在于assetdatabase中
    否则track信息会丢失,报错

    解决方法:

    1.先createAsset
    2.再创建timeline上的track

    需要先CreateAsset一个空的TimelineAsset

    上面的代码调换顺序之后如下:

      `
      TimelineAsset timeline = ScriptableObject.CreateInstance<TimelineAsset>();
        timeline.name = "test_timeline";
        
        if (!Directory.Exists(TIMELINE_SAVE_PATH))
        {
            Directory.CreateDirectory(TIMELINE_SAVE_PATH);
        }
        string assetPath =TIMELINE_SAVE_PATH+timeline.name+".playable";
        AssetDatabase.CreateAsset(timeline,assetPath);                        //先将timeline保存到assetdatabase中
        
        AnimationTrack track = timeline.CreateTrack<AnimationTrack>();            //再创建track
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();`
  • 相关阅读:
    全面了解HTTP和HTTPS(开发人员必备)
    这几款前端必备构建工具合辑,我们帮你整理好了!
    扎心!程序员泪奔的8个瞬间
    Centos7 自定义systemctl服务脚本
    nginx配置优化+负载均衡+动静分离详解
    nginx负载均衡配置
    keepalived高可用反向代理的nginx
    Tomcat相关目录及配置文件
    tomcat快速入门
    基于keepalived双主模型的高可用LVS
  • 原文地址:https://www.cnblogs.com/terrynoya/p/13751663.html
Copyright © 2020-2023  润新知