手册:轻量级对象(Area2DGameObject)

概述

在版本1.2.0中引入的Area2DGameObject,是通过省略“物理碰撞”功能,相较于传统GameObject降低运行负载的游戏对象。
由于无法进行“物理碰撞”,因此不适合用于玩家、敌人等需要避免穿墙的角色,或可破坏墙壁等作为角色障碍物的对象。但通过将其他非此类对象替换为Area2DGameObject,可以实现游戏的轻量化。

技术概述

传统GameObject是继承自CharacterBody2D节点的自定义节点,而Area2DGameObject则如其名,继承自Area2D节点。
有关各节点的详细区别,请参阅以下手册:

由于无法“物理碰撞”而无法实现的功能

  • 无法与其他对象发生碰撞。
  • 无法沿地面或墙壁形状移动,例如无法在斜坡上滑动。
  • 模板移动动作中的“弹跳移动”或“不从台阶掉落”功能将无法运行。
    对于Area2DGameObject中不支持的属性,系统会显示提示信息。

即使无法“物理碰撞”仍可实现的功能

  • 可以检测与其他对象的接触,因此诸如墙壁碰撞等接触相关条件仍可正常工作。
  • 仍可受重力影响。
    请将其视为一种无实体但可检测的传感器。除上述“无法实现的功能”外,其他功能基本均可正常运行。
    通过视觉脚本设置“与瓷砖接触时”“将移动速度设为0”等动作,可模拟实现接触处理,例如敌人被击败后散落的物品等。但请注意,此类模拟可能导致穿模等问题的概率增加。

Area2DGameObject的使用方法

由于与现有GameObject兼容,只需右键点击GameObject节点并选择“更改类型”为Area2DGameObject即可切换。
反之,也可同样将Area2DGameObject切换回GameObject。