Как прикрепить к анимированной модели другую модель?

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

Re: Как прикрепить к анимированной модели другую модель?

Сообщение waruiyume 17 сен 2012, 10:35

Они инстансятся из префаба, ведь так? При этом все ссылки, которые указывают на компоненты внутри префаба, заменятся ссылками на созданные объекты. (Нет это тоже не юмор)
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как прикрепить к анимированной модели другую модель?

Сообщение seaman 17 сен 2012, 11:10

У меня так. На префабе скрипт
Синтаксис:
Используется csharp
    public Transform leftHand;
    public Transform rightHand;

    public Start()
    {
        //Ищем трансформы правой и левой руки
        foreach (Transform tr in gameObject.GetComponentsInChildren<Transform>(true))
        {
            if (tr.name == "Torch") leftHand = tr;
            if (tr.name == "Weapon") rightHand = tr;
        }

Ну и прикрепить оружие к уже найденным трансформам думаю легко.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как прикрепить к анимированной модели другую модель?

Сообщение mrcoder 17 сен 2012, 11:28

waruiyume писал(а):Они инстансятся из префаба, ведь так? При этом все ссылки, которые указывают на компоненты внутри префаба, заменятся ссылками на созданные объекты.

на данный момент я инстанирую непосредственно с моделей, не помещая их на сцену.
что то я совсем запутался. :(


Синтаксис:
Используется csharp
                        public GameObject prefabchar; //ссылается на модель персонажа
                      public GameObject pointforweapon; //перетаскиваем кость из скелета персонажа руками
                            public GameObject weapon; //модель оружия
                                case 3:
                                        GameObject clone = new GameObject();
                                        clone = Instantiate(prefabchar, transform.position, transform.rotation) as GameObject;
                                        AllvisibleChars[i]=     clone;
                                        AllvisibleChars[i].transform.localScale= new Vector3(3.2f,3.2f,3.2f);
                                                                      .....
                                                                      Инстанируем оружие в weaponclone.
                                                                      И здесь как то надо прикрепить Weaponclone к ?кости pointforweapon? для Го AllvisibleChars[i] ...
                                                       Weaponclone.transform.parent =AllvisibleChars[i].transform;// так мы приаттачим оружие к модели персонажа. но как к руке?...
                                                       совсем запутался ни через find, ни через  pointforweapon   <img src="./images/smilies/20.gif" alt=":((" title="Crying" />                                                                
                                                                       ...
                                        break;
 
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Как прикрепить к анимированной модели другую модель?

Сообщение mrcoder 17 сен 2012, 11:35

seaman писал(а):У меня так. На префабе скрипт
Ну и прикрепить оружие к уже найденным трансформам думаю легко.


seaman большое спасибо! сейчас попробую сообразить ваш вариант.

голова уже распухла....
остался фактически вот этот последний элемент(напрямую зависящий от знаний юнити) реализовать для базовой готовности необходимого набора механизмов. и на нем почему то страшно туплю второй день, хотя на первый взгляд реализация этого не сложна.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Как прикрепить к анимированной модели другую модель?

Сообщение waruiyume 17 сен 2012, 11:44

В моём представлении, это выглядит так:
Код: Выделить всё
класс Персонаж:монобех//висит на префабе персонажа
{
   var public рука;//назначена в инспекторе
}


Код: Выделить всё
класс Some
{
   var дубина;

   Foo()
   {
      перс=РодитьПерса();
      дубина.parent=перс.рука;
   }
}
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как прикрепить к анимированной модели другую модель?

Сообщение Левш@ 17 сен 2012, 11:55

Ничего не подходит, потому что изначально все не правильно организовано.
Прежде чем начинать писать что либо, надо составить для себя алгоритм и видеть для себя весь путь реализации до конца.
А не метаться. :)
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как прикрепить к анимированной модели другую модель?

Сообщение mrcoder 17 сен 2012, 13:20

Левш@ писал(а):Прежде чем начинать писать что либо, надо составить для себя алгоритм и видеть для себя весь путь реализации до конца.

так и сделано, я не новичек в программировании и уж тем более в клиент-серверных вещах. но в юнити я слабо ориентироуюсь - отсюда и проблемы. все упирается исключительно в особенности и незнание некоторых моментов движка. поэтому я изначально и стремлюсь использовать все свое - колизии, физику и уж тем более сервер. что бы просто программировать а не тратить кучу времени абсолютно вникуда, на постоянное изучение юнити.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Как прикрепить к анимированной модели другую модель?

Сообщение mrcoder 17 сен 2012, 14:45

всем еще раз спасибо! :ymapplause:
на свежую голову перечитал темку и за 5 минут сварганил.

тааа-дааам... :-B


пока беседовали по теме я и забыл о чем спрашивал то. по сути мне нужно было только узнать команду нахождения косточки.
код конечно вышел далек от совершенства. ну пока сгодится. сделал тест. запас по мощности достаточный, и это при том что скелет гораздо сложнее сейчас чем нужно.
seaman, вы не использовали break в цикле(если это кусочек реального кода был). а может он вам и не нужен, если активно не используется это у вас.
Синтаксис:
Используется csharp

                                        GameObject cloneweap = new GameObject();
                                        cloneweap = Instantiate(prefabweap, transform.position, transform.rotation) as GameObject;
                                        AllvisibleCharsweap[i]= cloneweap;
                                        AllvisibleCharsweap[i].transform.localScale= new Vector3(3.2f,3.2f,3.2f);
                                    foreach (Transform tr in AllvisibleChars[i].GetComponentsInChildren<Transform>(true))
                                {
                        if (tr.name == "gnomemale_bone_CSR") { AllvisibleCharsweap[i].transform.parent = tr; AllvisibleCharsweap[i].transform.localPosition=new Vector3(0f,0f,0f); break;}
                                }

 
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Как прикрепить к анимированной модели другую модель?

Сообщение seaman 18 сен 2012, 08:37

вы не использовали break в цикле

Мне нужны две кости. В каком порядке найдутся неизвестно. Где ставить break? Можно, конечно завести булеву переменную, проверять/устанавливать ... Но это усложнит код и не факт что ускорит алгоритм. Пока не тормозит лучше оставить так.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Пред.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23