2016-03-19 2 views
0

Итак, вот моя проблема, у меня есть сценарий, который позволяет мне блокировать и вращать вражескую цель. Проблема в том, что мой персонаж движется, нажав кнопку блокировки, персонаж будет продолжать движение в любом направлении, которое он собирался до нажатия кнопки, независимо от того, какие кнопки нажимаются на кнопки в противоположном направлении.Unity-Character Continues Перемещение при блокировке на врага

Это не происходит, когда я неподвижен, если мой персонаж стоит на месте, и я нажимаю кнопку блокировки, все работает нормально. Это только когда я двигаюсь.

Я не уверен, если это достаточно информации, или, что еще кому-то нужно, чтобы лучше понять, но вот мой сценарий:

if (GetComponent<DetectedEnemies>().locked)//checks bool to see if lockOn button was pressed 
{ 
    mainCam.SetActive(false);//turns off main cam 
    lockCam.SetActive(true);//turns on lockOn cam 

    movesetting.tarObject = GetComponent<DetectedEnemies>().Closest;//target object will be the closest enemy to player 

    this.transform.LookAt(movesetting.tarObject.transform.position);//player will look at the target object at all times 

    if (currXRot.x > maxXRot.x)//if the current x rot of this object exceeds the maxXRot it can go... 
     currXRot.x = maxXRot.x;//it gets reset 

    transform.Translate(Vector3.right * movesetting.speed * Time.deltaTime * turnInput);//orbits around the target object 
    transform.Translate(Vector3.forward * movesetting.speed * Time.deltaTime * forwardInput);//in control of moving towards and away from target 
} 

Любой помощь очень appreaciated, спасибо заранее. Если вам нужна дополнительная информация или если что-то неясно, сообщите мне.

ответ

0

Попробуйте создать вторую переменную скорости, которую вы используете для скорости вращения. Затем, если игрок заблокирован, установите первую переменную скорости в 0 и когда игрок не заблокирован, установите переменную скорости вращения на 0. Что-то вроде этого: (я использую 5 в качестве примера)

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