Animator中各State的Motion分别以两种方式对AnimClip进行引用:
1)FBX作为一个整体,直接引用其下的AnimClip
2)引用FBX下的AnimClip(Ctrl+D实例)复制出的AnimClip文件
将最终的Animator文件放到Resources下进行空场景打包,两种方式打出的APK包的大小完全一样,解压后进行文件夹对比(重点进行assets的对比)可以看到:
这里我们可以随机选取两侧大小一样的两个文件进行单独对比(反向分析),会发现文件内容完全一样,eg:
E:ProjectsFBXAnimclipTestapkfbxassetsinData b6c5632c1f369c459fdf358a9ab3f6e
E:ProjectsFBXAnimclipTestapkanimassetsinData1e743614a4cf2be40963361cc15918ea
接下来我们通过进行项目资源的正向分析来进行验证:
到工程中分别找到meta文件中的guid为0b6c5632c1f369c459fdf358a9ab3f6e和1e743614a4cf2be40963361cc15918ea的对应文件,会发现两文件分别对应着animclip的.anim文件和.fbx文件。
因此,我们可以得出结论:虽然本身.anim文件和.fbx文件有内容及大小上的差异,但是不会对打包结果产生影响(待验证是否会影响打包的过程,eg:数据抽取的过程、打包的效率)。Unity在资源打包时仅包含了必要的资源数据部分,会将该数据进行抽取转化为自有的内部格式。
其中在做文件夹对比时,我们可以看到两个特殊的文件不一致:
E:ProjectsFBXAnimclipTestapkanimassetsinDatac992c5c9d23fcb40b18294c898549e8
E:ProjectsFBXAnimclipTestapkanimassetsinDataglobalgamemanagers
分别打开进行内部对比:
可以看到是引用的资源文件名的变化引起的不同,分别都有23处不同,与文件夹对比时的不同文件数量一致(globalgamemanagers、bc992c5c9d23fcb40b18294c898549e8除外)。