首先看不到你的场景树
ball.gd脚本假设给的是球场景的根节点,那么self.add_group(Ball)就是把根节点加入到组中,而ball.gd脚本继承自Node,推测你是把Area检测节点当作球场景里的一个子节点,故上面添加组时,Area节点就没有添加进组里。
而area检测那里,get_overlapping_areas获取到的是球场景里的Area节点,而不是球场景根节点,故判断i是否在组里是不可能的,i.owner倒是可以获取到i节点所在场景的根节点,应该能解决你的问题。
另外把节点添加到组里,可以通过编辑器右侧 “节点” 选项卡(属性检查器选项卡旁边)的 分组 一栏,把Area节点单独分配一个组Ball,就不用更改上面的代码了,还有为什么不用Area的area_entered 信号来检测球接触到墙
ball.gd脚本假设给的是球场景的根节点,那么self.add_group(Ball)就是把根节点加入到组中,而ball.gd脚本继承自Node,推测你是把Area检测节点当作球场景里的一个子节点,故上面添加组时,Area节点就没有添加进组里。
而area检测那里,get_overlapping_areas获取到的是球场景里的Area节点,而不是球场景根节点,故判断i是否在组里是不可能的,i.owner倒是可以获取到i节点所在场景的根节点,应该能解决你的问题。
另外把节点添加到组里,可以通过编辑器右侧 “节点” 选项卡(属性检查器选项卡旁边)的 分组 一栏,把Area节点单独分配一个组Ball,就不用更改上面的代码了,还有为什么不用Area的area_entered 信号来检测球接触到墙