统一5.1.1f1 我有一个通过脚本移动的立方体。每当刚体与其接触时,它会将刚体移出其路径。
然而,在某些情况下,rigidBody位于立方体的路径中,并且立方体穿过刚体。
正如您所见,红色立方体可以移动到灰色刚体中。
来源为here
我还问过问题here
多维数据集随脚本移动 -
transform.position = Vector3.MoveTowards (transform.position,
patrolPoints [currentPoint].position, moveSpeed * Time.deltaTime);
答案 0 :(得分:0)
确保将“碰撞检测”设置为连续。
答案 1 :(得分:0)
对不起,我没有意识到这是没有你想要移动的刚体的对象。如果是这种情况,您必须使用Vector3.MoveTowards()
或transform.Translate()
,请使用FixedUpdate()
函数代替Update()
并使用Time.fixedDeltaTime
代替{Time.deltaTime
1}}这将使你的动作以增量同步到Unity的物理帧,这些物理帧以与渲染帧不同的间隔发生。这不是一个错误。
您不希望将Vector3.MoveTowards()
或transform.Translate()
用于要与其他实体互动的刚体。它们将完全按照您告诉他们的方式移动而不进行任何交互。您需要改为使用rigidbody.AddForce()
。
答案 2 :(得分:0)
将rigidBody添加到红色立方体解决了这个问题。
我应该把这个问题陈述放在统一错误中吗?
答案 3 :(得分:0)
出现此问题是因为您的刚体(蓝色立方体)变得睡着了。这可以通过添加GetComponent().sleepThreshold = -1来修复;到PlayerMovement.cs的Start()方法。