根据鼠标移动使对象旋转。 [UNITY C#]

时间:2015-06-23 17:59:09

标签: unity3d 2d quaternions

我正在开始一个学习项目。这个想法是你有一个静止的弓箭手角色,它附有一个弓箭,向不同难度的目标射箭。 事实证明,一开始我就被卡住了。当玩家点击并将鼠标放在屏幕上的任何位置时,如何使弓旋转?所以我点击+按住并向左/向右移动,弓向左/右旋转以瞄准镜头。我还希望最终能够将它移植到手机上(所以你可以点击+等等)。

1 个答案:

答案 0 :(得分:1)

Stack Overflow不是代码编写服务,但我会解释你必须做的事情:

方法1(精确瞄准):

鼠标停止的每一帧:

  1. 从屏幕点制作Ray ...提示(使用 camera.ScreenPointToRay)。
  2. 使用Ray
  3. ray.GetPoint(distance);上找到一个远点
  4. Bow.Transform.LookAt(newPoint, Vector3.Up);
  5. 方法2(连续运动):

    1. 制作变量oldMousePos以存储Vector2位置。
    2. 将您的初始屏幕点击位置记录到a上的变量中 鼠标按下事件。
    3. 让鼠标保持的每一帧都运行一次。
    4. 对于弓的旋转方向,您可以使用 (newMousePos - oldMousePos).normalized;
    5. 对于弓的旋转速度,您可以使用(newMousePos - oldMousePos).sqrMagnitude;