受 Camera2d 影响时如何精确定位 Light2D 并启用平滑

How to exactly position a Light2D when influenced by Camera2d with smoothing on

首先,我是 Godot 和游戏开发的初学者。 在 Godot 中,我使用 Light2D 跟随玩家充当一种主光。场景“玩家”的根节点是 KinematicBody2d,Light2D 和 Camera2d 是子节点。 对于相机平滑已启用。如 Godot 文档中所述,我可以使用 get_camera_screen_center() 来获取相机的真实位置。 我想一些简单的事情 light.position = $"Camera".get_camera_position() 会将光纹理放在正确的位置,但现在它位于 bottom/right 角落。 我想念什么?如何计算要使用的偏移量?我尝试了一半的视口大小,但仍然不正确。

每次真实(平滑)位置发生变化时,我最希望从 Light2D(具有真实位置)发出信号。不过这个好像没有实现。

方法get_camera_position会给你一个全局位置,而不是相对于父节点的位置。

因此,您需要设置灯光全局位置,而不是灯光位置。即:

$Light2D.global_position = $Camera2D.get_camera_screen_center()