从COCOS官方接口文档开始 - 场景制作

324 阅读2分钟

场景是游戏内容的载体,本身作为资源存在。

场景制作

在资源管理模块新建 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 MaxMaya、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 包内置了支持的