废话不多说,直接打开引擎一步一步做,主要是记录思路,菜鸟一个,相信勤奋可以成就自我。
新建一个Sprite,作为推动主体,同时作为主体的Sprint一定要有Collision,双击目标Sprint可以查看下有没有Collision,没有的话加一下。
然后蓝图中这个Sprint把名字重命名一下,记得住的就行,然后看Detail下的Physics和Collision
首先Physics这里✔上模拟物理(Simulate Physics)因为推箱子是物理模拟,然后Linear Damping(阻尼)稍微设置一下,不然推箱子没有推箱子的感觉了,同时把Apply Impulse on Damage关上,不然就被你的人物把箱子打飞了【好像是=
=】。
之后Collision这里,把Collision Presets改成BlockAll就行,除非你有其他玩法,这个可以根据自己项目设定。
新建一个PhysicsConstraint,连接人物和箱子
把推动物体的名字复制到组件1上
同时把Linear和Angular限制调一下,根据你现在项目的XYZ设定,这里不多说,我2d项目是直线把Y锁定,然后Swing1&2锁定,防止物体翻掉。
然后说蓝图,很简单,利用刚刚的Box Collision检测是否角色在箱子边上,如果在就打开可推动物体的物理模拟,如果不在关闭就好。
之后把可推动的物体放到场景里就可以推动了~