Страница 1 из 1

Помогите с анимацией по клику (Решено)

СообщениеДобавлено: 24 ноя 2010, 01:17
rty118
Здравствуйте, Форумчане. Столкнулся с проблемой. Надеюсь на Вашу помощь.
Суть проблемы: нужен запуск двух анимаций одного предмета по клику мыши. Сложность в том, что нужен клик одной и той же кнопкой, при чем после запуска второй анимации (вторым кликом), по третьему клику должна проигрываться снова первая. Пример, анимация выдвижного ящика по которому кликаешь, и он ездит туда-сюда. Варианты с таймером и разными кнопками не подходят, нужна анимация именно одной кнопкой.
Вот скрипт, который пытался использовать(предположу, что подход в корне неверен)
Синтаксис:
Используется javascript
var targetRoot : GameObject;
var grounded : boolean;

function Update(){
if ( Input.GetMouseButtonDown(0)&&grounded==false)
{var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var select = GameObject.FindWithTag("Teapot001").transform;
if (Physics.Raycast (ray, hit, 100.0))
{select.tag = "Teapot001"; hit.collider.transform.tag = "Teapot001"; }
 targetRoot.animation.Play("idle");
grounded = true;
}
}
function OnMouseDown () {
if (grounded == true){
targetRoot.animation.Play("idle0");
grounded = false;   - проблема в этом не рабочем куске, строка по логике нужна,но если убрать эту строку, то проигрывается только первая анимация, с ней же не работает.
}
}
 

Спасибо за помощь.

Re: Помогите с анимацией по клику

СообщениеДобавлено: 24 ноя 2010, 02:54
Neodrop
Внимательно смотрим на кнопки в форме размещения сообщения и видим там кнопку syntax. Наводим на неё мышку и читаем всплывающую подсказку. Если всё становится понятно, то мы больше никогда не увидим так неопрятно прикреплённый к сообщению, код. За два с лишним года и 24000 сообщений, вы первый. Поздравляю. :ymsmug:

Re: Помогите с анимацией по клику

СообщениеДобавлено: 24 ноя 2010, 10:29
rty118
Виноват. Больше не повторится. И все же, вопрос в силе.
Кстати, во всплывающей подсказке не javascript, а javascrip. Вобщем ничего страшного, но я как нуб не мог сперва понять, почему у меня подсветка в коде не работает.

Re: Помогите с анимацией по клику

СообщениеДобавлено: 24 ноя 2010, 11:43
Multirezonator
Синтаксис:
Используется csharp
 
//...................... ваш код
bool isFirst=true;//переменная для определения какую анимацию проигрывать
void OnClic(){
   if(isFirst) animation.Play("animation1");
   else animation.Play("animation2");
   isFirst=!isFirst;
}
 

Re: Помогите с анимацией по клику

СообщениеДобавлено: 24 ноя 2010, 12:30
rty118
Огромное спасибо, Multirezonator. Ниже привожу рабочий код (может кому-то пригодится):

Синтаксис:
Используется javascript
var targetRoot : GameObject;
var isFirst : boolean=true;
function Update(){
if ( Input.GetMouseButtonDown(0))
{var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var select = GameObject.FindWithTag("Teapot001").transform;
if (Physics.Raycast (ray, hit, 100.0))
{select.tag = "Teapot001"; hit.collider.transform.tag = "Teapot001"; }
 OnClic();
}
}
function OnClic(){
   if(isFirst) {targetRoot.animation.Play("idle");
   }
   else {targetRoot.animation.Play("idle0");
   }
   isFirst=!isFirst;
}
 


Нашел еще один похожий способ решения, выкладываю:

Синтаксис:
Используется javascript
var targetRoot : GameObject;
var grounded : boolean;

function OnMouseDown () {
if(grounded == false){
targetRoot.animation.Play("idle");
grounded = true;
 }
else{
targetRoot.animation.Play("idle0");
 grounded = false;
}
}