文章目录
前言
- 制作3d游戏选择3.x的版本,制作2d游戏选择2d的版本
- 项目升版本或降版本的时候一定要做好项目备份
- 高版本打开过的项目再重置回低版本,需要删除项目下的library文件夹,因为此处存放的是项目缓存,通常不进入版本管理
创建特殊行为的对象
对于有特殊行为的对象,比如RPG游戏里的人物、怪物,打飞机的飞机这类主角模型。
1.先创建一个预制根节点
点击scene->鼠标右键->选择创建->点空节点->名称为charactor
2.将模型实例到根节点下
3. 挂载控制脚本
在assets下创建文件夹script->然后在script下创建文件Player
然后将脚本拖入charactor节点
4. 将根节点与其子节点形成预制
将charactor拖入资源管理器的任意位置就是预制支原体
什么是预制
预制可以看作是对场景中的游戏物体的描述文件,可以被存储在assets文件夹中,方便在其他场景中重复利用。预制本身不包含任何模型,贴图等真正资源
可以把预制理解为模板,方便任何场景复用,如果真正资源丢失,预制也就失去了作用
cocos生命周期
一些好用的装饰器
- executeInEditMode 可以理解为只执行脚本
只是想测试单个功能,还不需要调试游戏
- ccclass 将标准语法类声命为cc类
- property 属性声明为组件属性
就是暴露给编辑器,可以在游戏编辑器中来操作这个属性
- requireComponent 组件添加依赖的其它组件
注:原在节点上有此脚本的话,可能需要删此脚本组件再添加才可以好使
- menu 将当前组件添加到组件菜单中,方便用户查找
默认脚本在manager中,改个位置试试
做一个场景
创建一个背景板
首先创建一个空节点movingSceneBg,然后在节点里面创建plane
创建plane:点击右键->创建->3D对象->plane 平面
创建一个材质
显然只有这个模型没贴图是不行的,接下来来创建一个材质
鼠标右键->创建->Material
使用材质
接着再拷贝一个调整到相应位置,并预览看下效果
其实想要的效果是撑满屏幕,并不是这样的,这就要从摄像机上搞点事情啦
正交相机
因为例子不涉及进大远小的效果,这里把相机调成正交相机
然后调整视距宽与相机位置到效果位置
调试
- 调试资源管理器面板
比如资源导入报错的时候可以截图去论坛寻求帮助 - 场景管理器面板
- 构建时候的面板
事件系统
主要包括全局系统事件和节点系统事件
- 全局系统事件 主要用来监听用户输入
- 节点系统事件
全局系统事件
- 鼠标事件
- MOUSE_DOWN 鼠标按下
- MOUSE_MOVE 鼠标移动 (在按下状态)
- MOUSE_UP 鼠标抬起
- MOUSE_WHEEL 鼠标滚轮
- 触摸事件
- TOUCH_START 触摸开始
- TOUCH_MOVE 触摸移动
- TOUCH_END 触摸结束
- TOUCH_CANCEL 取消触摸
通常是用在电话接入或者弹出信息的时候,可以用做暂停游戏或存档等操作
- 键盘事件
- KEY_DOWN 键盘按下
- KEY_UP 键盘抬起
- 设备重力传感事件
- DEVICEMOTION 重力感应
节点系统事件
- 鼠标事件
- MOUSE_DOWN 鼠标按下
- MOUSE_MOVE 鼠标移动 (在按下状态)
- MOUSE_UP 鼠标抬起
- MOUSE_ENTER 鼠标进入
- MOUSE_LEAVE 鼠标离开
- MOUSE_WHEEL 鼠标滚轮
- 触摸事件
- TOUCH_START 触摸开始
- TOUCH_MOVE 触摸移动
- TOUCH_END 触摸结束
- TOUCH_CANCEL 取消触摸
使用
- 监听事件 (object).on(type,callback,target?,useCapture?)
- 只执行一次 (object).once(type,callback,target?,useCapture?)
- 关闭事件监听 (object).off(type,callback?,target?,useCapture?)
- 要监听的对象
- type 需要监听的事件类型
- callback 执行的回调函数
- target 函数执行的this指向问题(通常给this)
- useCapture只用节点事件才有这个值
- 全局使用systemEvent.on(…)
- 节点使用this.node.on(…)