(Unity). Проблема с animator controller.
|
|
gamedevlogin | Дата: Суббота, 23 Июня 2018, 17:48 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Создается 2d игра под android.
Проблема следующая -> есть объект(enemy), в виде человека, на нем весит скрипт EnemyMovementController, изначально объект стоит в анимации idle, когда к нему приближается главный персонаж, то по отработке триггера он поворачивается лицом к главному персонажу(через scale.x) если он не повернут к нему, после чего бежит за целью(за тем самым главным персонажем) и наносит удары. Так все работало недолго. Что-то случилось и теперь момент с поворотом не действует. Т.е объект(enemy) передвигается, наносит удар, но не поворачивается лицом к главному персонажу. Думаю что проблема в animator controller. Потому что, когда в animator я выставляю другой animator controller, все прекрасно работает(т.е момент с поворотом работает, но естественно не работает вся система анимации, так как animator controller другой). Знающие подскажите в чем может быть проблема. Момент с поворотом я реализовал в Update(), где-то прочитал, что нужно все это действо производить в LateUpdate().Сделал, появились какие-то проявления поворота. Scale.x на мили секунды обращается в противоположное значение после опять принимает изначальное положение.(т.е не помогло). Заранее спасибо.
|
|
| |
SkySupra | Дата: Суббота, 23 Июня 2018, 21:33 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Из поста понял, что скрипт EnemyMovementController отвечает за передвижение и поворот. Этот скрипт двигает и поворачивает компонент transform, пусть имя компонента будет Monster. Если в аниматоре в какой-то animation clip затрагивает поворот Monster, то он перепишет изменения установленные скриптом EnemyMovementController. Решение. Убрать в анимации редактирование поворота transform у Monster. Если нужно в анимации нужно затрагивать поворот Monster, то нужно делать иерархию из transform, один будет для скрипта EnemyMovementController, второй для аниматора. П.С. Не очень понятно причём тут scale и поворот, т.к. scale это масштаб.
|
|
| |
seaman | Дата: Суббота, 23 Июня 2018, 21:36 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| > Не очень понятно причём тут scale и поворот, т.к. scale это масштаб. Ну так 2D же. Там поворот часто делают именно масштабом = -1
|
|
| |
gamedevlogin | Дата: Воскресенье, 24 Июня 2018, 00:33 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Спасибо за ответ еще раз.
При решении этой проблемы я сразу решил(тавтология), что дело именно в этом(т.е дело именно в том, что я в клипах анимации затрагивал scale.x(через который я осуществлял поворот персонажа)), поэтому я сразу проверил этот момент. Спешу вас огорчить дело не в этом.В анимации я вообще не трогал scale. Вопрос до сих пор актуален.
|
|
| |
SkySupra | Дата: Воскресенье, 24 Июня 2018, 09:37 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата seaman ( ) Ну так 2D же. Там поворот часто делают именно масштабом = -1 Благодарю, что-то не сообразил.
gamedevlogin, описания проблемы сложилось мнение, что какой-то animation clip (например, атаки) переписывает значения scale. На всякий случай напишу, даже если клип атаки сейчас не проигрывается и редактирует только scale.y, аниматор всё равно перепишет все параметры scale (x, y, z). Если замена аниматора помогает с проблемой, что могу предложить: - проверить ещё раз все клипы аниматора на наличие хоть одного, который мог трогать масштаб; - возможно аниматор использует какой-нибудь скрипт StateMachineBehaviour, который редактирует scale; - проверить дёргает ли аниматор методы у скриптов в которых может редактироваться scale; - если всё плохо, то можно перебором. Все клипы заменить на одну пустую анимацию и проверять созданные анимации по одной. Так можно сузить круг проблем. В случае если ничего из выше описанного не помогает, если есть желанием, можешь мне скинуть свой проект. Я вечером приду и посмотрю.
|
|
| |
gamedevlogin | Дата: Воскресенье, 24 Июня 2018, 13:16 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| SkySupra, Благодарю вас за вашу отзывчивость.
Вы были правы. Я в одном совершенно постороннем animation clip случайно затронул scale , но с вашей помощью все обошлось.
|
|
| |