跳转至

能力 Hook 与依赖

能力实例可选择实现以下方法:

func on_gf_capability_added(receiver: Object) -> void:
    pass

func on_gf_capability_removed(receiver: Object) -> void:
    pass

func on_gf_capability_active_changed(receiver: Object, active: bool) -> void:
    pass

func get_dependency_removal_policy() -> int:
    return GFCapabilityUtility.DependencyRemovalPolicy.REMOVE_AUTO_DEPENDENCIES

func inject_dependencies(architecture: GFArchitecture) -> void:
    pass

依赖声明不是 Hook,优先写入 required_capabilities。基类的 get_required_capabilities() 默认会返回这个数组。

只有确实需要运行时动态依赖时,才建议重写 get_required_capabilities();编辑器 Inspector 不会调用该方法。

继承 GFCapabilityGFNodeCapabilityGFNode2DCapabilityGFNode3DCapabilityGFControlCapability 时这些方法已有默认实现。

自定义 Node 能力不强制继承特定基类,只要实现需要的 Hook 也能被运行时识别;但需要编辑器添加与统一补全时,推荐继承最匹配的 GF 能力基类。