对Unity的Resources目录进行改名

项目用的是Unity5.5版本,开发的时候将相关的图集、预制对象资源都放在 Resources 目录下,而真机使用的是 StreamingAssets 目录下的资源。

 

Resources(不分层级)在打包的时候,无论是否被使用,只要在里面会被打包进 apk 和 ipa 中,势必导致整个包体变大。

 

所以,我们需要做的事情就是。 Resources 目录改名为 xx –> 打包 –> xx 再改名回 Resources,这个过程一般都是手工修改,因为发现使用 Editor 提供的方法都会导致目录名再还原的时候,预制对象的引用发生了变化。我尝试使用 RenameAsset、MoveAsset都不能满意要求

 

RenameAsset(pathName、newName)

https://docs.unity3d.com/ScriptReference/AssetDatabase.RenameAsset.html

 

MoveAsset(oldPath、newPath)

https://docs.unity3d.com/ScriptReference/AssetDatabase.MoveAsset.html

 

最后同事通过反编译 UnityEditor.dll 文件,找到了这个方法,很神奇的方法,但和手动改名效果一样,目录名再还原回去的时候 svn 没有发生变

ObjectNames.SetNameSmart(obj, "xxxx");

Image

 

到此,打包动作就可以考虑用程序全自动处理了。

 

网上查过一遍,没有发现更多关于 ObjectName.setNameSmart 的解释,希望这篇文章能帮助到正好为改名烦恼的童鞋 微笑

posted @ 2018-03-05 11:14  meteoric_cry  阅读(3175)  评论(0编辑  收藏  举报