https://www.youtube.com/watch?v=06b0-pwuyKQ
关于这一点,我必须用触摸拖动移动1个对象,当拖动这个对象时,它不能通过其他对象。
第一次,我尝试使用boxcollider和rigidbody,然后将对象lerp到鼠标位置。不幸的是,对象拖延总是通过其他对象。
所以我尝试创建网格地图,在游戏中拥有所有对象,然后在移动任何对象时,我用相邻对象检查对象的当前位置,现在它是向上,向下,向左和向右,然后用邻居夹住它的位置。这行得通!但是对于对角线邻居对象,它仍然会通过。
所以,我决定创建这个话题,问:
如何用对角线邻居物体夹住物体的位置? 或者有任何解决方案来移动物体刚体而不通过其他物体?
下面是视频演示和1部分代码来夹住我的对象位置。
非常感谢!
代码:pastebin.com/mSrQjQmn 视频:facebook.com/jim.dum.5/videos/450488961822806 /
答案 0 :(得分:0)
Lerp绕过对手。我认为你应该通过脚本来解决这个问题。
public class StopMoving()
{
public bool canLerp;
void OnCollisionEnter(Collider other)
{
if (other.tag == "yourTag")
{
canLerp = false;
}
}
}
你应该让canLerp成为你Lerp的一个要求。因此,当碰撞对撞机时你可以阻止它。您可以使用任何方式识别正确的对象。我用tag作为例子。不要忘记将canLerp
更改为true以恢复到鼠标位置。