а что вы имеете в виду под определенной высотой?
хотите поднять до N по y в глобальных координатах?
или просто чтоб сместило на N от начальных координат?
в общем случае вам просто добавить условие , к примеру
Вариантов масса, от навесить анимацию или запустить коронтину, до использовать твиннер или Lerp между двумя запомненными позициями)
тут больше вопрос в том где это происходит (по методу или на апдеите обязательно как у вас). будет ли там физика. нужно ли когда поднялась до конца дверь - событие тригерить?
у меня типа звездолет
и вправо влево поднимать окно это выглядит очень некрасиво
решила вверх поднимать
при нажатии на кнопку у меня дверь как бы поднимает на определенную высоту
не знаю как это делать более правильно. звездолет не анимированный
сойдет. без кости. у вас же не SkinMesh, а просто параметры объекта подергать.
ну или для такого простого и Tween какой нить плагин как говорил сойдет (он по сути и делает тоже самое что и простая анимация).
просто по клику вызвать
Denis Gaydak, не очень поняла. когда перенесу в юнити, то как я смогу запустить анимацию двери? мне необходимо создавать аниматор для звездолета и прописывать анимацию для кнопки?
Если дверь отдельный объект - то просто повесить на неё Animation компонент
Анимацию, или прям в юнити создать или из модели импортировать, как это сделать - это вам гуглить
а в кнопке вызвать что то вроде
if(open)
{
door.GetComponent<Animation>().PlayQueued("CloseAnim");
open = false;
}
else
{
door.GetComponent<Animation>().PlayQueued("OpenAnim");
open = true;
}
Ну и через аниматор тоже можно сделать, но зачем..тут нет состояний особо у двери чтоб смешивать или как то корректно переключать)
но почему-то пишет
The animation state open could not be played because it couldn't be found!
Please attach an animation clip with the name 'open' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
вы б скрин инспектора иерархии и прочего приложили, чтоб понятно было на каком объекте у вас висит Animation
текст ошибки сам за себя все говорит..
или на двери нет анимации, или название не совпадает.
Denis Gaydak, скрипт висит на звездолете.
создала переменную и присабачила к ней дверь
пытаюсь хотя бы так сделать как на скрине
наверное надо писать еще: public GameObject door;)))))
в дебаг режиме...не компонент Animation надо смотреть, а сами фаилики - open.anim и close.anim
там эта противная галочка Легаси
transforn.GetComponent
и
gameObject.GetComponent
чтоб знали суть одно и тоже, на компоненте gameObject, или на компоненте трансформа вызвать если, то по сути если упростить, то он "рядом" (на этом же объекте) будет искать искомый компонент.
так что по коду все в порядке на вид. и все находит (раз не ругается Null на door, то вы его проставили в редакторе) и даже вызывает, просто не может проиграть анимацию из за Legacy этого скорее всего.
ну если нет больше ошибки, то анимация проигрывается)
возможно у вас анимация пустая..
заполните её)) есть подозрение что вы просто название дали..
а саму анимацию не "записали"
и я еще раз извиняюсь) я оч конечно добрый и терпеливый) но тут целый мини урок, а не ответ на вопрос
да и ужинать ушел) всего хорошего
Научитесь искать информацию, не всегда попадется кто- то кто все расскажет.
Denis Gaydak, я решила попробовать сделать через контроллер
и на мое удивление когда добавляла стрелки между состояниями то вылезла ошибка, что анимации нет, но она воспроизводиться если открыть в инспекторе. мне кажется что это проблема из-за того что кости нет, так как, чтоб сделать контроллер, нужно поставить generic...
получается единственным решением является - сделать анимацию уже в юнити и попробовать еще раз ваш способ