godot 上 GetComponent 的类似替代方案

Similar alternative for GetComponent on godot

Godot 中是否有 GetComponent 的替代方案,因为我需要访问其他组件?

这是我们在 Unity 中的内容:

socket = GetComponent<SocketIOComponent>();

我正在尝试将 Unity C# 文件转换为 Godot C#。

您可以使用 GetNode 方法并将结果转换为节点的类型。您需要指定 NodePath,因为 Godot 使用字符串路径来指定对其他节点的引用,而不是 Unity 在后台使用的更复杂的系统。

Godot 处理组合的方式与 Unity 略有不同。在 Unity 中,您可能有一个包含多个组件的 GameObject,但要在 Godot 中实现相同的功能,您将拥有一个具有多个子节点的父节点,其工作方式类似于 Unity 中的组件。要从父节点引用这些节点(“组件”),可以使用 GetNode 并指定节点的路径并将其转换为节点的类型,即 RigidBody.

您可以做的最统一的方法可能是非常类似于将组件引用拖动到组件上的 public 字段。在 Godot 中,您可以通过 exporting NodePath 变量来执行类似的操作,这些变量允许您指定节点层次结构中特定节点的路径,然后将其与 GetNode 一起使用以获取实际的“组件”。