首页 文章

如何通过点击更改操纵杆位置? [重复]

提问于
浏览
0

这个问题在这里已有答案:

我是Unity新手,最近我在操纵杆上挣扎 . 我想通过手指点击改变操纵杆的位置 . 例如,如果我触摸屏幕的中心,操纵杆也会显示在中心 .

这是我的代码:

private void Update()
{
  Touch firstTap = Input.touches[0];
  if (firstTap.phase == TouchPhase.Began)
  {
    m_StartPos = firstTap.position;
    transform.position = m_StartPos;
    UpdateVirtualAxes(m_StartPos);
  }
  else if (firstTap.phase == TouchPhase.Ended)
  {
    m_StartPos = new Vector3(500f, 500f, 0);
    transform.position = m_StartPos;
    UpdateVirtualAxes(m_StartPos);
  }
}

我在操纵杆脚本中添加了 Update() 函数 . 当我点击屏幕时,位置确实会改变,但是当我移动手指时, onGrag() 从未被调用 .

1 回答

  • 0

    您可以创建一个类,例如JoystricManager,您将拥有Update()方法 . 在Update()中,您将检查Input.GetMouseButtonDown(0) - 当用户点击屏幕时,这将是真实的 . 向操纵杆GameObject添加一个对撞机,并在点击后检查此点击是否在对撞机内 . 如果点击在里面 - 忽略它,只需检查你的操纵杆脚本Input.MousePosition来检查操纵杆本身的移动并进行自定义操作(移动玩家等) . 如果点击将在操纵杆对撞机外部 - 只需将操纵杆移动到新位置即可 . 保存操纵杆中的单击位置以获得单击的开始坐标 . 当用户移动手指时,您将获得新的鼠标位置,使用这两个点可以计算出操纵杆指向的位置 .

相关问题