通过在Unity中滑动来翻译对象

时间:2016-10-26 18:40:00

标签: c# unity3d

我试图在屏幕上滑动手指时翻译我的球体 使用下面的代码,我需要一次又一次地滑动以向前移动它。 如何通过只滑动一次来转发对象?

public float speed;

void FixedUpdate ()
{  
    if (Input.touchCount > 0 && 
        Input.GetTouch(0).phase == TouchPhase.Ended || (Input.GetMouseButtonDown(0)))
    {
        transform.Translate(Vector3.forward * Time.deltaTime*speed);
    }
}

1 个答案:

答案 0 :(得分:2)

当TouchPhase已结束时,您的代码会使对象移动到准确的时刻。为了推动物体,尝试施力。

来自Unity Tutorials的修改后的C#示例:

public float speed;
public Rigidbody rb;

void Start() 
{
    rb = GetComponent<Rigidbody>();
}

void FixedUpdate() 
{
    if (Input.touchCount > 0 &&
        Input.GetTouch(0).phase == TouchPhase.Ended || (Input.GetMouseButtonDown(0)))
    {
        rb.AddForce(Vector3.forward * Time.deltaTime * speed);
    }
}

如果您使用此技术,则需要向对象添加Rigidbody3D组件。