![](/img/trans.png)
[英]Unity, Rigidbody.MovePosition() is not working if transform.position is just changed
[英]rigidbody.moveposition is not working while using touchphase In unity3d
我正在開發一款用於移動設備的 3d 游戲,因此我添加了一個腳本,該腳本通過用一根手指拖動來移動玩家。所以我試圖用不同的方法讓他與其他物體發生碰撞,但我未能讓他發生碰撞。 那么如何讓他與物體發生碰撞呢?
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Moved)
{
targetPosition += Vector3.right * touch.deltaPosition.x * speedmodifier;
targetPosition += Vector3.forward * touch.deltaPosition.y * speedmodifier;
}
}
}
private void FixedUpdate()
{
rb.MovePosition(targetPosition);
}
您不能使用 Rigidbody.MovePosition。 Rigidbody.MovePosition 類似於 Transform.Translate。 它覆蓋任何碰撞。 您可以使用的另一種方法是添加一些力(Rigidbody.AddForce),然后添加對最大速度的限制。 這對我有用。 只是出於好奇,當您禁用 touchphase 時,它會發生碰撞嗎? 我不相信,但仍然......無論如何,你的問題的答案是不要使用 Rigidbody.MovePosition 因為它會覆蓋任何碰撞檢測。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.