场景是游戏内容的载体,本身作为资源存在。
场景制作
在资源管理模块新建 scene
对内容进行任意修改,ctrl + s 保存当前场景
场景切换
在开发时双击 scene 文件即可实现场景切换,运行时需要使用director.loadScene 进行场景跳转,跳转前可以使用自定义 shader 完成转场动画。
director: cc 内置对象,用于管理游戏逻辑,可以控制场景切换,暂停,获取当前帧,运行时间等
场景资源
默认情况下不会释放资源,场景不停切换,会导致内存不断上升,尤其在微信小游戏,本身就限制了内存占用,一旦溢出就会崩溃。
assetManager.releaseAsset 主动释放
例如对音频资源释放
clear_Audio(url) {
let count = 0;
for (let t in this.questionData) {
let element = this.questionData[t];
if (element.audio_url == url) {
count++;
}
}
if (count) return;
cc.assetManager.releaseAsset(this.gameAudioClips[url]);
delete this.gameAudioClips[url];
}
自动释放
动态加载的资源必须手动卸载,所有 cc.Asset 实例都拥有成员函数 addRef 和 decRef
在场景的属性编辑器上勾选Auto Release Assets,该场景内资源会自动释放
addRef 增加引用数,decRef 减少引用数
节点:子节点永远都会遮盖住父节点
关于资源
所有资源文件都会在导入时生成一份同名的 .meta 后缀的配置文件 这份配置文件提供了该资源在项目中的唯一标识 UUID 以及其他的一些配置信息,如图集中的小图引用,贴图资源的裁剪数据等,是识别一份合法资源的必要因素。 (meta 元数据,描述数据的数据)
模型
导入cocos后会生成预制体,直接拖拽使用
.material— 材质文件.mesh— 模型文件.texture— 模型贴图文件.animation— 模型动画文件.skeleton— 模型骨骼文件.prefab— 导入时自动生成的预制件
模型制作
3ds Max、Maya、Blender等工具制作 FBX,gITF
骨骼动画资源(Spine)
-
.json/.skel骨骼数据 -
.png图集纹理 -
.txt/.atlas图集数据
资源共性:
可直接使用或者远程加载
import { _decorator, Component, resources, error, TextAsset } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('ItemTemplate')
export class ItemTemplate extends Component {
start () {
resources.load('itemGiftText', (err: any, res: TextAsset) => {
if (err) {
error(err.message || err);
return;
}
// 获取到文本数据
const textData = res.text;
})
}
}
编辑器绑定通过@property ,cc 包内置了支持的