首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Godot raycast2D区域检测不起作用

Godot raycast2D区域检测不起作用
EN

Stack Overflow用户
提问于 2021-01-23 07:49:21
回答 1查看 319关注 0票数 0

我对Godot和GDScript比较陌生,但学习速度很快,所以我开始尝试制作一个2D平台,在那里你可以四处移动,可以在墙上爬升和滑动,可以从墙上跳下来,也可以呆在墙上。我使用x轴上播放器的raycast2D来检测播放器何时触摸area2D (在本例中是一个也是staticbody2D的磁贴)。为了测试这一点,我写道:

代码语言:javascript
运行
复制
onready var raycast = get_node("RayCast2D")

func _physics_process(delta):

if raycast.collide_with_areas == true:
     print("area")

我遇到的问题是控制台总是打印区域,这意味着我所有的磁贴都是area2Ds的(其中一些只是staticbody2D)。为什么我所有的瓷砖都是area2Ds的?

EN

回答 1

Stack Overflow用户

发布于 2021-01-28 06:44:29

RayCast2D class documentation

代码语言:javascript
运行
复制
bool collide_with_areas [default: false]
     set_collide_with_areas(value) setter
     is_collide_with_areas_enabled() getter

If true, collision with Area2Ds will be reported.

您正在使用collide_with_areas,就好像它指示光线投射当前是否与区域发生碰撞一样,而实际上它是一个类属性,指示光线投射是否应该报告与区域的碰撞。

相反,您应该设置collide_with_areas (和enabled!)设置为true (通过检查器或代码),然后调用raycast.get_collider()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65854268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档