|
补充,感谢评论区留言 @周源@张章(为什么找不到……),之前做动画的时候没有发现这么好用的接口,试了一下只要建立AnimatorOverrideController,引用模板的AnimatorController就可以直接创建成功了。
看到这个想到的并不是什么禁忌,Unity引擎的很多问题楼上各位都已经讲解差不多了,我就补上几个和游戏开发相关的优化方案,应该是任何引擎都适用的。
尤其针对初创团队,没有核心的技术骨干时,经常会走一些弯路,有时候游戏做出来Demo了效果很棒,但是要开始上线运营了,要修改资源和扩展功能做适配的时候,开始头疼花太多的时间去处理资源,往往一优化就是一两个月。
我讲一些简单却有必要的点吧,概念本身没有任何的技术难度
1. 资源命名
资源命名其实很多朋友忽略掉了,觉得资源命名没有必要。但是其实这个很有必要,因为我们在项目后期会涉及到批量操作资源,比如我们要将某系统的图片格式资源批量替换格式呀,我们要将动画批量创建动画控制器呀。还有一些程序自动化处理一些工作,比如我们对某种格式命名的资源设置不同的参数。例:图片根据后缀名字不同设置不同的图片格式。这是非常节省时间和避免人为出错的方法。
(输入eff就出来和特效有关的所有贴图资源,后面为该图片是否带有透明通道等后缀)
(有了规范命名直接可以在编辑脚本里面批量设置好格式了)
(游戏中的角色动画总是有很多状态和连线,如果每个都让美术人员来连线设置可是要累死人的)
(而只要我们做好一个正确的模板,美术的动画Clips命名和第一个模板的命名一样,我们就可以脚本批量控制直接拷贝复制参数就可以了,后期如果要修改成批的动画控制器,只用修改模板的属性批量转换一次就搞定)
(同时加载资源的时候也非常方便,只要命名的结构合理,我们就可以直接传入类型,让功能函数帮我们同时加载好资源并挂载相应的脚本)
2. 文件夹规范
很多团队的文件夹其实很多时候都是乱的,尤其是美术资源。
如果项目需要做热更新功能,都会无法避免的面临如何分包资源的问题,这个时候文件夹规范就尤为重要了。常见的方法是根据单独文件夹作为一个AssetBundle包,如果文件夹混乱,资源位置混乱,打的包将会互相依赖严重,导致加载资源缓慢,资源冗余,更新数据量大。
即时我们的游戏不做热更新功能,后期也会删减掉很多无用冗余的美术资源。而文件夹混乱的话你将会很难去把旧的资源剔除出项目。如果各位有太多冗余资源在项目里,这可以介绍一个简单的剔除方法。将你不用的资源从Resources目录下剔除,右键Resources依赖打包unitypackage,然后删除所有美术资源重新导入unitypackage(当然得做好备份,避免删除重要文件)。
(如果要剔除某个不用的特效只用删除该个文件夹就好了,当然特效的贴图如果是公用的是放公用文件夹下)
3. 不要直接用Unity的接口或者资源。因为Unity底层并不开源,我们要优化某个公用资源或接口,如果之前没有做一个中转接口就会变成全部人工替换。这里主要举例Shader,Shader应该是我们自定义的。就算我们用的和Unity的功能是一模一样的,也要复制一份出来改成我们自定义的Shader。这样后期做优化,就不用新创建好Shader让美术一个一个给成千上百个材质球重新替换Shader。
(实现效果和Unity是一样的,只不过我们重写了一次)
(后期如果要做扩展和优化,就可以在我们自定义的Shader中修改了)
最后……
游戏开发不易,且行且珍惜。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|