Skip to content

@dao3fun/component 是什么?

@dao3fun/component 是一个专为神奇代码岛设计的组件环境,它模拟了 Unity 游戏引擎的组件化架构,旨在提升游戏开发的效率和灵活性。通过组件编程模式,创作者可以更加模块化和可重用地构建和管理游戏对象。与传统的面向对象编程不同,组件编程允许游戏对象(GameObject)附加多个组件,从而增加其行为或功能,实现更灵活的游戏设计。

安装指南

使用 ArenaPro 插件安装

  1. 在 VScode 编辑器中,按下Ctrl + Shift + P打开命令面板。
  2. 搜索“ArenaPro”并运行ArenaPro: 查看神岛NPM包命令。
  3. 在弹出的输入框中输入component进行搜索。
  4. 点击搜索结果,然后在左下角弹窗中点击“确认安装”,等待安装完成。

使用 npm 安装

你也可以在终端中直接运行以下命令来安装 @dao3fun/component:

bash
npm install @dao3fun/component

基本概念

GameObject

  • 定义:GameObject 是一个容器,对应一个游戏实例。
  • 功能:可以附加多个组件(Component)以定义其游戏实例的行为。
  • 生命周期:每个游戏对象都有自己的生命周期,包括创建时的 Start() 方法和销毁时的 onDestroy() 方法。

Component

  • 定义:Component 是游戏对象的行为或功能的实现单元。
  • 生命周期:每个组件都有自己的生命周期,包括创建时的 Start() 方法和销毁时的 onDestroy() 方法。

基础示例

以下是一个简单的示例,展示了如何在神奇代码岛上使用 @dao3fun/component 来获取游戏中的实体,并为其挂载一个基础组件。

typescript
import { Component, GameObject } from "@dao3fun/component";

/**
 * BaseComponent 类定义了一个最基础的组件。
 */
class BaseComponent extends Component<GameEntity> {
  /**
   * Start 方法是组件的初始化方法,用于输出组件挂载信息。
   */
  protected Start(): void {
    console.log(`组件已挂载到实例${this.gameObject.entity.id ?? "未知实体"}`);
  }
}

// 查询世界中名为"实体名称"的元素
const e = world.querySelector("#实体名称");

// 如果找到了该元素,则为其创建一个新的 GameObject 实例,并添加一个基础组件
if (e) {
  const gameObject = new GameObject(e);
  gameObject.AddComponent(BaseComponent);
}

效果

效果图

通过以上示例,你可以看到如何使用 @dao3fun/component 来构建和管理游戏对象,以及如何通过组件编程模式来提升游戏开发的效率和灵活性。