Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

在 Cave 中,你的项目是由资产构成的。

资产是存放在 Asset Browser 中的可重用内容片段:场景、实体模板、网格、材质、纹理、音频、脚本、逻辑文件、时间线,等等。

你对资产理解得越深入,构建、组织和重用工作就越轻松。

什么是资产?

资产是 Cave 存储的项目内容片段。

资产可以是视觉内容,如纹理或网格;也可以是功能性内容,如 Python 脚本、逻辑砖文件、场景或时间线。资产存储在项目中,以便 Cave 可以从实体、组件、编辑器工具及运行时系统中引用它们。

> 在幕后,Cave 将所有需要序列化(写入和读取磁盘)或在编辑器中显示的内容视为资产。

举例来说:

  • “网格实体” 可以使用网格资产。
  • 网格组件可以使用材质资产。
  • 材质可以使用纹理资产。
  • Python 组件可以使用 Python 脚本资产。
  • 一个“关卡”可以储存为场景资产。
  • 可重用的对象搭建可以储存为实体模板资产。

这意味着资产不仅仅是文件夹中的文件,而是你游戏使用的构建模块。

资产浏览器

Asset Browser 是管理资产的主要界面。

image.png

它可用于:

  • 浏览项目文件夹。
  • 选择资产。
  • 打开文件夹。
  • 查看缩略图。
  • 导入文件。
  • 重命名资产。
  • 复制资产。
  • 在文件夹间移动资产。
  • 删除资产。
  • 将资产导出为 Cave 包。

资产浏览器分为文件夹区和内容区。文件夹区帮助你浏览项目结构。内容区显示当前文件夹内的资产。

选中资产时,其设置会显示在 Properties 标签页中。

常见资产类型

在使用 Cave 时,会遇到多种资产类型。

资产类型 用途
Scene 关卡、菜单、测试区域或可游玩空间。
Entity Template 可重用的实体层级,类似于预制件。
Mesh 3D 模型数据。
Material 网格和地形使用的表面设置。
Texture 材质、UI 或其他系统使用的图片数据。
Audio 音效或音乐内容。
Armature 通常用于动画的网格骨骼结构。
Animation 骨骼动画数据。
Python Script Python 组件或工具使用的代码。
Logic Bricks 可视化游戏玩法逻辑。
State Machine 基于状态的行为逻辑。
Timeline 编排好的序列,如过场动画或脚本事件。
Shader Program 自定义渲染行为。
Post Processing 全屏渲染效果。
Documentation 存储在项目中的文本文档。
---

你无需立即精通所有资产类型。初期,你可能最常用的是场景、实体模板、网格、材质、纹理、脚本和逻辑资产。

组织资产

当资产组织清晰,项目工作起来更轻松。

一个简单的项目结构可能是:

Scenes
Characters
Props
Materials
Textures
Scripts
Logic
UI
Audio
Timelines

如果你觉得更合适,也可以选择不同结构,但关键是能方便后续查找。

好的命名也很重要。优先选择描述资产用途的名称。

Cave 允许资产名称包含空格,且资产浏览器会按类型显示样式。因此通常无需在名称中添加 MaterialTexture 或简短类型代码作为前缀。

请使用易读名称。如果喜欢简洁名字,PascalCase 也可以。

示例:

弱命名 更好命名
Material Wet Rock
Texture Wood Crate Diffuse
Scene Cave Entrance
Script DoorController
EntityTemplate Enemy Bat

目标不是强制统一命名风格,而是避免模糊名称,保持相关资产易于查找。

导入新资产

你可以将支持的文件从电脑拖进 Asset Browser,Cave 会尝试导入文件并创建正确的资产类型。

常见导入内容包括:

  • 3D 模型。
  • 图片。
  • 音频文件。

你也可以用编辑器菜单在需要时重新导入资产。

导入只是第一步。资产存在项目中后,你可以选择它,编辑 Properties 中的设置,并在场景或其他资产中使用它。

我们稍后会深入学习导入资产。

网格、材质与纹理

网格、材质和纹理协同工作。

  • Mesh 是形状。
  • Material 控制表面视觉效果。
  • Texture 是材质或其他系统使用的图片数据。

例如,一个木箱可能使用:

  • 一个箱子网格。
  • 一个木质材质。
  • 一种或多种木纹纹理图片。

场景中的实体本身不是网格资产。 实体带有组件,该组件使用网格资产和材质资产。这样的区分有利于网格或材质被多次复用。编辑共享材质时,所有使用该材质的对象都会更新。

场景与实体模板

构建游戏玩法时,两个资产类型尤为重要:

  • Scene 存储关卡或可游玩空间。
  • Entity Template 存储可重用实体搭建。

使用场景构建大空间、菜单、测试地图和关卡。

使用实体模板放置多次的对象,如:

  • 拾取物品。
  • 敌人。
  • 门。
  • 道具。
  • 载具。
  • UI 组件。

场景说明特定位置存在什么,实体模板说明可重用对象的组成方式。

资产引用

实体和组件可以引用资产。

例如:

  • 网格组件引用网格。
  • 网格组件还可以引用材质。
  • 材质引用纹理。
  • Python 组件引用 Python 脚本。
  • 时间线可以引用它需要操作或触发的实体或数据。

该引用系统支持一个资产在多个地方复用。删除资产时需小心:如果项目中其他部分依赖该资产,删除可能导致引用缺失。

若不确定某资产是否仍被使用,通常先将其移动到临时文件夹,测试项目后再决定是否删除更安全。

保存项目内容

Cave 会追踪项目内容的更改。资产变更但未保存时,该资产被称为“脏”的(dirty)。

基于此,使用:

快捷键 操作
Ctrl + S 保存脏的项目内容。
Ctrl + Shift + S 保存所有内容。
---

你也可以通过 File 菜单保存。

大多数时候,保存脏内容是理想选择,它只保存变更的资产,而非重写所有文件。

开始 Play Mode 测试前,Cave 会自动保存脏的项目内容。

以后查找资产

随着项目规模扩大,快速找到内容变得重要。

使用:

  • 清晰的文件夹组织。
  • 一致的命名。
  • Asset Browser。
  • Finder 标签页。
  • 选中资产后查看 Properties 标签页。
  • 必要时可用 File 菜单打开系统文件浏览器。

最高效的项目不一定是最小的,而是内容易于查找的。

一个有用的习惯

每当你创建或导入新内容时,做到以下三点:

  1. 把它放在正确的文件夹。
  2. 给它一个有用的名字。
  3. 保存项目。

这个小习惯能避免很多后续混乱。