Нужна помощь с кодом

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Нужна помощь с кодом

Сообщение evil327 27 окт 2011, 13:38

Возможно я чего то не догоняю. Необходимо сделать лампочку индикации.
пробовал сделать через источники света.
Синтаксис:
Используется csharp
if (GUI.Button(new Rect(10,10,100,45), "Shiber")){
                GameObject.Find("shiber_do_steni").animation.Play("open");
                GameObject.Find("on").light.enabled=true;
                if (GameObject.Find("shiber_do_steni").animation.isPlaying){}
                        else {
                        GameObject.Find("on").light.enabled=false;      //вот тут не срабатывает
                        }
                }
 
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ

Re: Нужна помощь с кодом

Сообщение seaman 27 окт 2011, 17:26

Жуть. Столько ненужных финдов!
По делу - а с чего Вы взяли, что в момент выполнения строки "if (GameObject.Find("shiber_do_steni").animation.isPlaying)" анимация уже не проигрывается?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Нужна помощь с кодом

Сообщение evil327 27 окт 2011, 17:47

Сам знаю что куча, но на данном этапе делать приходится как быстрее (а не как правильно).
Раз уж написали, на сколько ресурсоёмко использовать большое кол-во Find?
Анимация около 27 секунд (если вы об этом).
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ

Re: Нужна помощь с кодом

Сообщение seaman 27 окт 2011, 18:21

Анимация около 27 секунд (если вы об этом).

Я не об этом. Вы запускаете анимацию и тут же, не ожидая ее окончания проверяете окончилась ли она. Естественно не окончилась! Естественно Ваш код "light.enabled=false" выполняться не будет никогда!
на данном этапе делать приходится как быстрее (а не как правильно).

Имхо, лучше вообще не делать, чем делать неправильно. Тем более, если знаешь, что делаешь неправильно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Нужна помощь с кодом

Сообщение evil327 28 окт 2011, 09:36

Не как не могу понять каким образом реализовать проверку.
С моим скудным багажом знаний вижу только 2 варианта: через WaitForSeconds (но не пойму как его прикрутить правильно) или на вторую кнопку делать "GameObject.Find("on").light.enabled=false;"
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ

Re: Нужна помощь с кодом

Сообщение seaman 28 окт 2011, 19:48

Сделать доп переменную. Которую устанавливать при запуске анимации. А если она установлена - анимацию НЕ запускать, а, напротив, проверять - не окончилась ли она.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Нужна помощь с кодом

Сообщение evil327 03 ноя 2011, 09:49

Спасибо с этим разобрался.
Появился еще одни вопрос как добавить массиву компонент rigidbody?
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ

Re: Нужна помощь с кодом

Сообщение waruiyume 03 ноя 2011, 10:15

Массивы
Синтаксис:
Используется csharp
Rigidbody[] rb = new Rigidbody[количество элементов];
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Нужна помощь с кодом

Сообщение evil327 03 ноя 2011, 10:43

Что-то всё равно не до конца понял, у меня куча "детей" им нужно присвоить Rigidbody причем из скрипта весящего на камере
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ

Re: Нужна помощь с кодом

Сообщение waruiyume 03 ноя 2011, 11:15

Повесит Rigidbody на всех детей.
Синтаксис:
Используется csharp
using UnityEngine;

public class AddRb : MonoBehaviour {

        void Start ()
        {
            Transform[] childrens = GetComponentsInChildren<Transform>();
        if(childrens.Length>1)
            for (var i = 1; i < childrens.Length; i++)
                childrens[i].gameObject.AddComponent<Rigidbody>();
        }
}

 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Нужна помощь с кодом

Сообщение evil327 10 ноя 2011, 09:13

Спасибо. Правда через Rigidbody такое количество соударений слишком тяжко считается (1-2 FPS). Проще оказалось сделать анимацию через Physx
evil327
UNец
 
Сообщения: 34
Зарегистрирован: 20 май 2011, 08:17
Откуда: Пенза
  • ICQ


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 21