簡體   English   中英

在 unity3d 中使用 touchphase 時,rigidbody.moveposition 不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM