如题 请教各位大佬一下。
在4.0中建立RigidBody2D和CharacterBody2D以及一个StaticBody2D,其中CharacterBody2D创建脚本并且使用系统自带的脚本进行移动。
会发现CharacterBody2D节点移动会碰撞到RigidBody2D,但是不能使RigidBody2D物体受到影响进行刚体的位移。如下图所示(受重力影响自由下落的是RigidBody2D,左右移动的是CharacterBody2D,下方黑色部分为StaticBody2D)
。
该问题在3.5中不存在,3.5中使用同样的脚本可以正常的推动RigidBody2D物体(但是3.5中是KinematicBody2D节点,而4.0变成了CharacterBody2D)
而在4.0中CharacterBody2D如果使用设置position的方法来移动CharacterBody2D物体则会碰撞RigidBody2D并且使其受到影响。但是出现了CharacterBody2D不会与StaticBody2D进行碰撞的情况。
当然,在3.5中使用设置position的方法依然会使KinematicBody2D不能与StaticBody2D碰撞,同时可以与RigidBody2D碰撞并使其位移。
但是在3.5中使用最上面的代码去控制KinematicBody2D是可以正常的和StaticBody2D与RigidBody2D碰撞的。见下图。
猜测是4.0将KinematicBody2D换成CharacterBody2D产生的。
因此请教各位。4.0的CharacterBody2D与KinematicBody2D有什么差异?
如何在4.0中使用CharacterBody2D达到最后一张动图的效果?即与RigidBody2D碰撞并且使其位移,与StaticBody2D碰撞。(注意,4.0中并非是不与RigidBody2D碰撞,会产生碰撞数据,但是不会使RigidBody2D想3.5中一样位移)。
以及使用position与move_and_collide方法有什么差异,为什么使用position可以与RigidBody2D碰撞但不会与StaticBody2D碰撞?
感谢各位大佬。
在4.0中建立RigidBody2D和CharacterBody2D以及一个StaticBody2D,其中CharacterBody2D创建脚本并且使用系统自带的脚本进行移动。
会发现CharacterBody2D节点移动会碰撞到RigidBody2D,但是不能使RigidBody2D物体受到影响进行刚体的位移。如下图所示(受重力影响自由下落的是RigidBody2D,左右移动的是CharacterBody2D,下方黑色部分为StaticBody2D)
。
该问题在3.5中不存在,3.5中使用同样的脚本可以正常的推动RigidBody2D物体(但是3.5中是KinematicBody2D节点,而4.0变成了CharacterBody2D)
而在4.0中CharacterBody2D如果使用设置position的方法来移动CharacterBody2D物体则会碰撞RigidBody2D并且使其受到影响。但是出现了CharacterBody2D不会与StaticBody2D进行碰撞的情况。
当然,在3.5中使用设置position的方法依然会使KinematicBody2D不能与StaticBody2D碰撞,同时可以与RigidBody2D碰撞并使其位移。
但是在3.5中使用最上面的代码去控制KinematicBody2D是可以正常的和StaticBody2D与RigidBody2D碰撞的。见下图。
猜测是4.0将KinematicBody2D换成CharacterBody2D产生的。
因此请教各位。4.0的CharacterBody2D与KinematicBody2D有什么差异?
如何在4.0中使用CharacterBody2D达到最后一张动图的效果?即与RigidBody2D碰撞并且使其位移,与StaticBody2D碰撞。(注意,4.0中并非是不与RigidBody2D碰撞,会产生碰撞数据,但是不会使RigidBody2D想3.5中一样位移)。
以及使用position与move_and_collide方法有什么差异,为什么使用position可以与RigidBody2D碰撞但不会与StaticBody2D碰撞?
感谢各位大佬。