4.0 area2d的body_entered是不是和3.5不太一样啊。
godot吧
全部回复
仅看楼主
level 1
likili 楼主
我建立了一个area2d场景。子节点有Sprite和CollisionShape2D
设置好碰撞区域 在area2d下建了个脚本
func _on_body_entered(body:CharacterBody2D):
print("aaa")
然后area2d节点 Collision-Layer下 点亮第二层
回到玩家场景 在CharacterBody2d节点 Collision-Mask下 点亮第二层
然后在主场景里 实例化玩家和area2d场景。 操作玩家去碰area2d 毫无反应
同样的操作在3.5里却成功了。
对比了一下 只有在area节点链接碰撞信号这一步,有点不同
4.0链接信号出来的方法是 func _on_body_entered(Body):
3.5链接信号出来的方法是 func _Area2D_on_body_entered(Body):
2023年03月23日 03点03分 1
level 1
likili 楼主
我是不是哪一步弄错了。还是说版本有区别?
2023年03月23日 03点03分 2
吧务
level 13
mask才检测像area enter之类的信号(连mask所在节点的信号),layer只是负责触发信号了。4里面是单向,3是双向(所以写着哪个脚本都能有信号)
2023年03月23日 04点03分 3
确实是这样 找到原因了。
2023年03月23日 06点03分
level 1
如果是area2D检测碰撞的话是不是应该area2Dmask第二层,player layer在第二层?[委屈]
2023年03月23日 04点03分 4
没错 谢谢大佬
2023年03月23日 06点03分
1