跳过正文
  1. 文章/
  2. 游戏/
  3. Cocos/

2、场景构建

·1587 字·4 分钟· loading · loading · ·
游戏 Cocos
GradyYoung
作者
GradyYoung
Cocos - 点击查看当前系列文章
§ 2、场景构建 「 当前文章 」

场景资源
#

在 Cocos Creator 3.0 中,游戏场景(Scene)是游戏开发时组织游戏内容的中心,也是呈现给玩家所有游戏内容的载体。而场景文件本身也作为游戏资源存在,并保存了游戏的大部分信息,也是创作的基础。

创建方式有两种:

  • 资源管理器 中右键点击想要放置场景文件的文件夹,然后选择 (创建 - Scene) 即可。为了使项目具备良好的文件夹目录结构,强烈建议使用该方法创建场景。
  • 在顶部菜单栏中选择(文件 - 新建场景),即可在 场景编辑器 中直接创建一个新场景。但 资源管理器 中不会出现新场景文件,需要在保存场景时弹出的 保存场景 窗口中手动保存场景文件,保存完成后才会在 资源管理器 的根目录下出现 scene.scene 场景文件。

节点和组件
#

Cocos Creator 3.0 的工作流程是以组件式开发为核心的,组件式架构也称作 实体 — 组件架构(Entity-Component System),简单来说,就是以组合而非继承的方式进行游戏中各种元素的构建。

在 Cocos Creator 3.0 中,节点(Node) 是承载组件的实体,我们通过将具有各种功能的 组件(Component) 挂载到节点上,来让节点具有各式各样的表现和功能。接下来我们看看如何在场景中创建节点和添加组件。

节点
#

节点是场景的基础组成单位。节点之间是树状的组织关系,每个节点可以有多个子节点

nodes

  • 节点包含一组基础属性(位移、旋转、缩放),节点之间通过一组相对变换关系组织在一起。
  • 节点间的更新顺序是逐级更新的。子节点的更新依赖于父节点,子节点跟随父节点变换
  • 节点上可以添加组件,将多个组件与节点关联在一起

创建节点
#

要最快速地获得一个具有特定功能的节点,可以通过 层级管理器 左上角的 创建节点 按钮,创建一个Sphere(球体)节点:

image-20240829093222118

之后我们就可以在 场景编辑器层级管理器 中看到新添加的 Sphere 节点了。新节点命名默认为 Sphere,表示这是一个主要由 Sphere 组件负责提供功能的节点。您也可以尝试再次点击 创建节点 按钮,选择其他的节点类型,可以看到它们的命名和表现会有所不同。需要注意的是:创建 UI 节点时会自动创建一个 Canvas 节点作为 UI 节点的根节点。

节点属性
#

image-20240829093433688

  • Position:位置
  • Rotation:旋转
  • Scale:缩放
  • Mobility:节点的可移动性。不同的可移动性会导致节点在光照上有不同的特性和表现
    • 对于持有光源组件的节点
      • Static 静态光源:会烘焙直接光与间接光,烘焙完运行时不参与计算
      • Stationary 固定光源:只烘焙间接光,只在运行时计算直接光
      • Movable 可移动光源:不参与烘焙,只在运行时计算直接光
    • 对于持有 MeshRenderer 的节点
      • Static & Stationary 静态物体:可使用光照贴图
      • Movable 动态物体:可使用光照探针 通常来说在拥有 MeshRenderer 组件的节点上可以添加灯光组件,但并不建议,可以考虑分开多个节点来实现这样的需求。
  • Layer:设定节点的可见性能力

组件
#

属性检查器 中以 Node 标题开始的部分就是节点的属性,节点属性包括了节点的位置、旋转、缩放等变换信息。

接下来以 cc.MeshRenderer 标题开始的部分就是 Sphere 上挂载的 MeshRenderer 组件的属性。在 Creator 中,MeshRenderer 组件用于渲染静态的 3D 模型,其中的 Mesh 属性用于指定渲染所用的网格资源。因为我们刚刚创建的是 Sphere 节点,所以这里默认是 sphere.mesh。而 Materials 属性用于指定渲染所用的材质资源。

image-20240829093824777

坐标系
#

世界坐标系(World Coordinate)
#

世界坐标系也叫做绝对坐标系,在 Cocos Creator 3.0 游戏开发中表示场景空间内的统一坐标体系,「世界」用来表示我们的游戏场景。

Creator 3.0 的世界坐标系采用的是笛卡尔右手坐标系,默认 x 向右,y 向上,z 向外,同时使用 -z 轴为正前方朝向。

image-20240829094156387

本地坐标系(Local Coordinate)
#

本地坐标系也叫相对坐标系,是和节点相关联的坐标系。每个节点都有独立的坐标系,当节点移动或改变方向时,和该节点关联的坐标系将随之移动或改变方向。

Creator 3.0 的 节点(Node) 之间可以有父子关系的层级结构,我们通过修改节点的 Position 属性设定的节点位置是该节点相对于父节点的 本地坐标系,而非世界坐标系。最后在绘制整个场景时 Creator 会把这些节点的本地坐标映射成世界坐标系坐标。

Cocos - 点击查看当前系列文章
§ 2、场景构建 「 当前文章 」