将鼠标移动限制在2点以内

时间:2019-04-23 22:27:06

标签: c# unity3d

我有一个圆形的精灵,我只想在2个空的游戏对象(点)之间移动。使用Vector3.Lerp(),我可以在这些点之间移动圆

void FixedUpdate()
{
    float speed = 10 * Time.deltaTime;
    float current = Mathf.PingPong(Time.time * speed, 1.0f);
    transform.position = Vector3.Lerp(startPoint.position, endPoint.position, current);
}

输出: What I currently have with lerp

问题:

我想使用鼠标拖动(基本上就像从a点到b点的滑块)移动该圆,并在鼠标离开该圆后立即停止移动

我尝试过的事情:

  • 我尝试添加一个在两个点之间具有盒碰撞器的游戏对象,并使用触发器来检测圆何时退出触发器 (OnTriggerExit2D),但此解决方案仅在圆完全离开对撞机时才有效(我不想要)。我想要一种使圆圈移动的方法,就像其当前在Vector3.Lerp中使用鼠标控件进行移动一样

  • 我尝试将圆仅锁定到一个轴并移动它。在这种情况下,当我旋转整个滑块时,它就失败了,因为它只锁定在一个轴上,并且旋转不会改变

  • 我也试图将鼠标位置实现到Vector3.Lerp函数中,但是没有运气 Vector3.Lerp(startPoint.position, endPoint.position, mousePosition.x);

    我尝试了y和z,但都失败了。而且当我去旋转滑块时,这种方式将无效

0 个答案:

没有答案