2013-02-21 2 views
1

Я пытаюсь сделать свои собственные элементы управления камерой первого лица в единстве, которые используют оба пальца на джойстике. У меня это нормально работает. Однако, когда я двигаю пальцем правой руки палку (один используется для смотреть влево/вправо & вверх/вниз камера начинает постоянно обновлятьUnity3D Камера Постоянно перемещается

Вот мой джойпад код движения:.

// Update is called once per frame 
void Update() 
{ 

    float speed = transform.localEulerAngles.y + Input.GetAxis("LeftRight") * sensitivityX; 

    rotationY += Input.GetAxis("UpDown") * sensitivityY; 
    rotationY = Mathf.Clamp(rotationY, minimumY, maximumY); 

    transform.localEulerAngles = new Vector3(-rotationY, speed, 0); 

} 

Для управления левый палец большого пальца, я просто привязал свой сценарий к первому персональному контроллеру символов. Единство.

Я знаю, что мой код обновляет каждый кадр, но я предположил, что он будет обновляться только тогда, когда я нажимаю правый палец Если это не так, есть ли способ, которым я могу ограничить его только увеличением, когда я перемещаю правый палец большого пальца ?

ответ

1

Код в редакторе() будет выполняться в каждом кадре.

Движение, которое вы заметили, было вызвано главным образом из-за transform.localEulerAngles, называемого каждым кадром. Параметр скорости никогда не был равен нулю, потому что вы ее на основе transform.localEulerAngles.y

Вы могли бы просто проверить, если значение оси не равен нулю, как это:

void Update() 
{ 

    float inputValueLeftRight = Input.GetAxis("LeftRight"); 
    if(inputValueLeftRight > 0 || inputValueLeftRight < 0) 
    { 
     float speed = transform.localEulerAngles.y + inputValueLeftRight * sensitivityX;  
     transform.localEulerAngles = new Vector3(-rotationY, speed, 0); 
    } 

    float inputValueUpDown = Input.GetAxis("UpDown"); 
    if(inputValueUpDown > 0 || inputValueUpDown < 0) 
    { 
     rotationY += inputValueUpDown * sensitivityY; 
     rotationY = Mathf.Clamp(rotationY, minimumY, maximumY); 
    } 

} 
+0

Имейте в виду, я понятия не имею, если проверка на точное нуль на входных значениях возможен. вам, возможно, придется немного отдохнуть, но мне не удастся определить, насколько велика эта разница. попробуйте поэкспериментировать с ним. –

Смежные вопросы