2017-08-02 47 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以檢查遊戲杆本身的移動並執行您的自定義操作(移動播放器等)。如果點擊將在操縱桿對撞機之外 - 只需將您的遊戲杆 移動到新的位置。保存遊戲杆中的點擊位置以獲得點擊的開始座標。當用戶移動手指時,您將獲得新的鼠標位置,使用這兩點可以計算您的遊戲杆指向的位置。