2017-08-02 65 views
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()

回答

0

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