【发布时间】:2019-06-28 20:36:01
【问题描述】:
我想用鼠标移动我的球,目前球跟随鼠标位置,我想跟随鼠标的行为而不是位置。
我试图以速度移动,但我正在使用速度移动我的球前言,所以它的行为出乎意料。
private void Update()
{
rigid.velocity = new Vector3(0f, -2f, Time.deltaTime * speed);
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Vector3 point = hit.point;
rigid.MovePosition(new Vector3(Mathf.Lerp(transform.position.x,Mathf.Clamp(point.x, -3, 3),5 * Time.deltaTime), transform.position.y, transform.position.z));
}
}
if (Input.touchCount > 1)
{
Touch touch = Input.GetTouch(0);
switch (touch.phase)
{
case TouchPhase.Moved:
rigid.MovePosition(new Vector3(Mathf.Lerp(transform.position.x, Mathf.Clamp(touch.position.x, -3, 3), 5 * Time.deltaTime), transform.position.y, Mathf.Lerp(transform.position.z, touch.position.y, 5 * Time.deltaTime)));
break;
}
}
}
此代码用于根据鼠标移动球,但我不想跟随鼠标的位置。我只需要像左右上下一样跟随。
【问题讨论】:
-
我可能会使用 AddForce 方法来解决这个问题。向鼠标从前一帧移动到本帧的向量中的球添加力。
标签: unity3d