跳到主要内容

游戏对象的属性和属性自定义

在星火编辑器中,自定义属性的实现为游戏开发者提供了强大的灵活性,允许开发者根据自己游戏的需要定制和扩展游戏的功能。以下是自定义属性实现的简化和优化步骤:

一、属性的作用和存在意义

属性用来描述对象所具有的特定特征。星火编辑器预设了游戏对象:单位、技能、玩家,同时提供了一些描述它们特定特征的属性。

在星火编辑器中,属性是保存在对象上的特殊变量。星火编辑器会根据设定的同步规则,自动在服务器和客户端间同步属性,但不会自动同步对象上的普通变量。

二、单位属性

在物品中使用单位属性

当需要在物品上保存一些数值类型或者字符串类型的值,并且需要它们自动在服务器和客户端中同步,可以将这些值存入[物品]对应的[物品单位]的单位属性中。使用时,通过API[物品在地上时的单位]获取[物品单位],从而获取到保存在物品上的值。

三、技能属性

技能属性只有数值类型。

SCE预设了部分技能属性,它们没有内置逻辑,根据需要自行设计逻辑或者创建新的属性使用。

四、玩家属性

五.自定义属性的实现

数据编辑器中的配置

  • 在星火的数据编辑器(数编)中,可以通过常量配置设置自定义属性。这些属性可以是针对单位、玩家、游戏或技能的。
  • 自定义属性通过在[Constant]部分定义。
  • 服务器对这些属性的含义不关心,只在同步方式允许的情况下将数值转发给客户端。
  • 某些自定义属性可以用于客户端UI(针对默认UI)和服务器脚本库。

自定义玩家属性: 在星火编辑器的数据编辑器中,玩家属性内嵌入于特定的位置,如下图所示。

单位属性

  • 星火编辑器提供了21个内置属性和178个自定义属性。
  • 其中16个属性是引擎内置,确保基础设施正常运作,不可禁用。
  • 另外5个属性由脚本库和客户端UI支持,可在有能力修改这两部分内容时被移除。
  • 详细介绍可以在单位属性中找到。

六.添加和使用自定义属性:

创建自定义属性: 在数编中添加自定义属性时,需要定义显示名称、唯一ID(必须唯一)、说明文本(对属性的解释)、数据类型(数值或字符串)、脚本名称,如下图所示。

使用自定义属性: 自定义完成后,这些属性可以在单位的初始属性中找到,表示属性已成功定义,如图所示。

触发编辑器中的调用: 已经定义好的属性也可以在触发编辑器中配置自定义属性,用于单位或游戏逻辑的调用。

通过这些步骤,开发者们可以在星火编辑器中灵活地创建和使用自定义属性,从而丰富游戏的功能和交互性,提升游戏的整体体验和可玩性。