模型未沿触摸方向移动

时间:2021-03-27 06:54:25

标签: unity3d

代码:

private Touch touch;
public float speed;
public Animator animator;
Vector3 point = new Vector3();
Vector3 targetPos;
  
   
void Start() 
{  
    targetPos = transform.position;
}

void Update()
{
    if (Input.touchCount > 0)
    {
        touch = Input.GetTouch(0);
        if (touch.phase == TouchPhase.Moved)
        {
            transform.position = new Vector3(transform.position.x + touch.deltaPosition.x * Time.deltaTime, transform.position.y, transform.position.z + touch.deltaPosition.y * Time.deltaTime);
             
            Plane plane = new Plane(Vector3.up,transform.position);
              
            Ray ray = Camera.main.ScreenPointToRay(touch.deltaPosition);
            float point = 0f;
           
            if (plane.Raycast(ray, out point)) targetPos = ray.GetPoint(point); 
            transform.LookAt(targetPos);
        }
    }
}

问题是当我触摸屏幕时,角色看起来是在触摸的方向上,但是当我向前移动它时(屏幕底部稍微向上),它仍然看向触摸位置。我想要它,当它移动时,它面向它前进的方向。

1 个答案:

答案 0 :(得分:0)

 touch = Input.GetTouch(0);
        if(touch.phase == TouchPhase.Moved)
        {
            transform.position = new Vector3(transform.position.x + touch.deltaPosition.x * 
             Time.deltaTime,transform.position.y,
             transform.position.z + touch.deltaPosition.y * Time.deltaTime);
         
       transform.LookAt(transform.position + touch.deltaPosition);
    }