我是 Godot 的新手,目前正在尝试使用命中武器等,并使用intersect_ray()
当我尝试使用编写代码时,Intersect_ray()
我不断收到一条错误消息“intersect_ray()”调用的参数太多。最多需要 1 个,但收到 2 个。”我不知道我做错了什么?以下是代码:
var collision = bullet.intersect_ray(muzle.transform.origin, aimcast.get_collision_point
如果有帮助,我正在使用教程:https://www.youtube.com/watch?v =4jbfIN4t83k&list=PLJJ-tyPiN1L_68DjYLfn7c1Yq8Kx6NWPw&index=7
欢迎来到 SO!
针对您的具体问题,答案是您的教程太旧了,许多 API 从 Godot 3 更改为 Godot 4。该
intersect_ray()
方法现在采用一个特殊类型的参数,该参数包含所有必要的参数。因此,您需要创建此类型的实例,PhysicsRayQueryParameters3D
然后将其传递给该方法。查看这个 reddit 帖子,其中有人问了完全相同的问题:https://www.reddit.com/r/godot/comments/u0fboh/intersect_ray_too_many_arguments_godot_40/
另请参阅有关光线投射的 Godot 文档:https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html
找出此类错误消息的一般方法是查看方法签名。它会告诉您它需要什么类型的参数以及需要多少个参数。为此,请在编辑器中按住 CTRL 并单击该方法,或者选择该方法并按 F12(我认为)。然后您将被带到该方法的文档。