博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CreatorPrimer|资源结构
阅读量:5745 次
发布时间:2019-06-18

本文共 1502 字,大约阅读时间需要 5 分钟。

对于游戏开发来说,除了编辑游戏界面、制作游戏动画、编写代码这些具体的工作外,大家还需要对游戏资源结构要非常清楚。如果马虎上阵,等你把项目运作做起来后,一是工作效率不会太高,二是难以精确控制资源,最后甚至会因此陷入混乱。

1. 资源结构

资源是指用于游戏内容创作所需要的素材,对于Cocos Creator工程来说就是assets目录下的文件,看下图:

结构就是将众多的资源文件按一定的规则存放和名命,以方便使用。

2. 资源分类

看上图片所示,我把资源大致分为以下几类:

  • 动画:animation
  • 预制:prefab
  • 场景:scene
  • 脚本:scripts
  • 纹理:textures
  • 声音:sound

其中纹理可再细分为:动画帧、背景、字体、UI、图标等(将动画帧图片放到动画目录中会更好,这样可以将动画资源与项目做分离)。分类目录也不要过细,过细会增加重复文件(同名或不同名但内容)出现机率,同时将通用资源和专用资源分开存放,可以再次减少重复文件的产生。

代码的分类也需要注意,我通常将Cocos Creator通用组件(纯脚本组件)放在component目录下。如果组件脚本是与某个prefab紧密关联的,则将他们放在一起,如下图:

上面有两个预制组件Chessboard是棋盘,Chessmain是棋子,他们各关联了一个同名的组件脚本。因为这个两脚本不具备通用性,所以没有把它们放在component目录下,而是将它们与所关联的预制放在文件一起。

我上面只是举个例,不同公司、项目可以根据自己的具体情况设计资源结构,而且非常必要让参与项目的成员(策划、美术、程序)都清楚分类规则。

3. 文件名命

一个普通的游戏项目,资源大致包括有:图片、代码脚本、声音、配置文件、场景预制文件等等,小项目至少也有上百个文件,大的项目甚至过万。仅对资源分类还不能进行快速定位,还需要有文件命名规则。

通常图片文件是游戏中用的最多的资源,我之前总结了一个简单的图片文件命名公式,供大家参考:

命名公式:前缀+中缀+[后缀]

前缀用于分类,中缀表示功能或特征,后缀可选一般是序号,举几个例子:

  1. img_gold.png:一个金币图片,img表示图像是除UI交互元素之外的统称
  2. btn_blue_ok_0.png: 一个绿色按钮,btn表示一个UI按钮,blue_ok是颜色特征和功能特征(注意的是中缀可以由多个单词组成),后缀0是表示,正常、按下、禁用中的正常状态。
  3. bg_login.png:登录界面的背景图片,bg表示背景,login是功能特征表示用于登录界面。

有了这样的文件命名,在编辑UI时就不会如大海捞针,把时间和精力消耗在资源管理里寻找图片了,直接使用Cocos Creator资源管理器模糊搜索前缀或中缀就能快速锁定目标,看下图:

这里有一个微操作,如果你用心看了上图会发现,上面的窗口布局中将属性检查器层级管理器资源管理器放在一起,属性设置时减少了鼠标拖拽距离,减少了操作时间和出错机率,从而可以有效搞UI编辑效率。

同样资源分类一样,项目组可以根据自己实际情况制定自己的文件命名规则,要让参与项目的成员都要知晓。

#4. 小结 我们这篇讲了资源分类与命名在游戏开发中的重要性,结构化不仅可用于资源管理,同时在分析问题时也可以使用结构化的思维。请用心观察体会自己现在或过去的项目,有没有在资源管理上遇到问题,是否注意到了资源结构对项目的影响。


欢迎关注「奎特尔星球」微信公众号,来我们一起成长!

转载于:https://juejin.im/post/5b758595518825330e420341

你可能感兴趣的文章
GitBlit (1)-- 在linux 安装 GitBlit 并运行
查看>>
程序是如何执行的(一)a=a+1
查看>>
BZOJ - 3578: GTY的人类基因组计划2
查看>>
【http】post和get请求的区别
查看>>
TFS强制撤销某个工作区的文件签出记录
查看>>
EL表达式无法显示Model中的数据
查看>>
ps6-工具的基础使用
查看>>
linux下使用过的命令总结(未整理完)
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
Visifire charts ToolBar
查看>>
OC中KVC的注意点
查看>>