Appearance
@dao3fun/component 是什么?
@dao3fun/component 是一个专为神奇代码岛设计的组件环境,它模拟了 Unity 游戏引擎的组件化架构,旨在提升游戏开发的效率和灵活性。通过组件编程模式,创作者可以更加模块化和可重用地构建和管理游戏对象。与传统的面向对象编程不同,组件编程允许游戏对象(GameObject)附加多个组件,从而增加其行为或功能,实现更灵活的游戏设计。
安装指南
使用 ArenaPro 插件安装
- 在 VScode 编辑器中,按下
Ctrl + Shift + P打开命令面板。 - 搜索“ArenaPro”并运行
ArenaPro: 查看神岛NPM包命令。 - 在弹出的输入框中输入
component进行搜索。 - 点击搜索结果,然后在左下角弹窗中点击“确认安装”,等待安装完成。
使用 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 来构建和管理游戏对象,以及如何通过组件编程模式来提升游戏开发的效率和灵活性。