Unity 2d物体如何根据鼠标滑动方向移动,并且2d物体根据鼠标滑动方向进行旋转

  1. 2d物体根据鼠标滑动方向移动目前已实现
X += Input.GetAxis("Mouse X") / speed;  //speed物体移动速度减慢
Y += Input.GetAxis("Mouse Y") / speed;
transform.position = new Vector3(X, Y, 0);

  1. 2d物体根据鼠标滑动方向旋转我想到了用向量,因为没系统的学过向量方面的知识,在网上简单了解一下用法,在实际使用时出现了很多问题。
if (!bo_one)        //获取第一帧位置
{
      vec3 = this.transform.position;
      bo_one = true;
      bo_two = true;

}
if (bo_two)
{
      if (vec3 != this.transform.position) //判断和第一帧位置不同
      {

            Vector2 v2 = this.transform.position - vec3;        //计算第一帧位置到第二帧位置的向量
            angle = Vector2.Angle(v2, transform.up);            //计算旋转角度
            transform.rotation = Quaternion.Euler(0, 0, -angle);        //在网上查到的一种旋转方法
            bo_two = false;
            bo_one = false;
      }
}

  • 运行时出现很多不知名的问题,最后还是没有实现旋转效果,想过用其他办法,但是觉得用向量能很好的实现这个效果。

你可以设置一个空物体target,让角色lookat target,当你鼠标按下、移动时,target的位置与鼠标位置保持一致。