| 
				
				Назначить функцию чилду
				 | 
 | 
| andarky | Дата: Понедельник, 18 Февраля 2013, 11:25 | Сообщение # 1 |  
 
старожил 
Сейчас нет на сайте 
 
 | Незнаю даже как это гуглить правильно,   поэтому сюда и пишу.   Смысл вот в чем:   есть несколько функций у родительского объекта:   Код Func1()   Func2()   Func3()     И я хочу эти функции назначить чилду.   Так же как в языках ActionScript: 
   Код Object1.onRollOver() = Func1;   Object2.onRollOver() = Func2;   ...   
   т.е. в Unity должно быть как-то так:   Код    Child[1].OnTriggerEnter() = Func1();   Child[2].OnTriggerEnter() = Func1();   ...   Child[1].OnTriggerExit() = Func2();   Child[2].OnTriggerExit() = Func3();   
   Такое возможно на JS ?   Наверное на C# - ДА.   Но я в нём не понимаю, поэтому кто знает JS,   подскажите, пожалуйста КАК
 
   Моя страничка по дизайну   GameDev//Design//3D   Ютубчик  
 
 Сообщение отредактировал andarky - Понедельник, 18 Февраля 2013, 11:27  |  
| 
 | 
 |    | 
| Левша | Дата: Понедельник, 18 Февраля 2013, 15:54 | Сообщение # 2 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Цитата (andarky) Такое возможно на JS ?   Наверное на C# - ДА.     Нет. Архитектура будет несколько иная.   В чилдах должны присутствовать эти функции, а из родителя их можно запускать при условии что они публичные.
  X.cor.R (Prologue)
 |  
| 
 | 
 |    | 
| andarky | Дата: Понедельник, 18 Февраля 2013, 16:02 | Сообщение # 3 |  
 
старожил 
Сейчас нет на сайте 
 
 | значит я не могу, например:   В родителе прописать   Код    function Func1() {   transform.Rotate(0,15,0);}      
   назначить это родителем его чилду,   чтоб чилд понимал transform как свой? 
   например:Код    function Func1(u) {   transform.Rotate(0,u,0);} 
   transform.Find('Child1').OnTriggerEnter() = Func1(15);   transform.Find('Child2').OnTriggerEnter() = Func1(-20);   
   Чтоб чилдам действие сверху назначалось? 
   Или только так чтоб эти Func1/Func2/Func3.... - всё было уже в чилде   а родитель только дает указание КАКУЮ именно выполнить? 
   
 
   Моя страничка по дизайну   GameDev//Design//3D   Ютубчик  
 |  
| 
 | 
 |    | 
| Левша | Дата: Понедельник, 18 Февраля 2013, 18:46 | Сообщение # 4 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Цитата (andarky) чтоб чилд понимал transform как свой?     Нет, но мы можем получить в родителе ссылку на трансформ чилда и работать с ним. 
   ЗЫ. В Юнити нельзя вертеть обьекты через transform.Rotate, только через Quaternion или Euler.
  X.cor.R (Prologue)
 |  
| 
 | 
 |    | 
| andarky | Дата: Вторник, 19 Февраля 2013, 06:15 | Сообщение # 5 |  
 
старожил 
Сейчас нет на сайте 
 
 | Левша, Цитата (Левша) нельзя вертеть обьекты через transform.Rotate, только через Quaternion или Euler.      это всё фигня... просто что в голову взбрело - то я и написал 
   Цитата (Левша)  мы можем получить в родителе ссылку на трансформ чилда и работать с ним     это я тоже знаю 
   итак, допустим   Код    Child1=transform.Find('Child1');   Child1.OnTriggerEnter() = Func1(15);   
   смысл: Чтобы у чилда в OnTriggerEnter() выполнялась Func1() - которая в родителе прописана   Это невозможно? 
   Или КАК?
 
   Моя страничка по дизайну   GameDev//Design//3D   Ютубчик  
 
 Сообщение отредактировал andarky - Вторник, 19 Февраля 2013, 06:15  |  
| 
 | 
 |    | 
| Novatorvlad | Дата: Вторник, 19 Февраля 2013, 07:07 | Сообщение # 6 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | Бред какой-то пишешь. Нахрена из предка вызывать функцию в чилде ? Да и ты в ООП, как я в балете. Чилд.геткомпонент<скрипт>().функция(15) так еще можно... Добавлено (19.02.2013, 07:07) --------------------------------------------- Тфу, допёрло. Обьект создай, блин. 
  Девбложек
 |  
| 
 | 
 |    | 
| andarky | Дата: Вторник, 19 Февраля 2013, 11:26 | Сообщение # 7 |  
 
старожил 
Сейчас нет на сайте 
 
 | Цитата (Novatorvlad) Обьект создай, блин.      а подробнее можно? 
   Я хочу написать несколько функций и разным объектам (чилдам)   назначить их на разные события (OnTriggerEnter/ OnTriggerExit/ OnMoouseEnter/ OnCollision ...)   в зависимости от чилда (имени) ему будет назначаться разная функция и при том в разные события (OnTriggerEnter/ OnTriggerExit/ OnMoouseEnter/ OnCollision ...)   т.е изначально у чилдов всё пусто: 
   Код    function OnTriggerEnter()   {}; 
   function OnTriggerExit()   {}; 
   function OnMouseEnter()   {};   ...      
   родитель должен им назначать поведение... 
   теперь задача ясна? 
   Можно такое?
 
   Моя страничка по дизайну   GameDev//Design//3D   Ютубчик  
 |  
| 
 | 
 |    | 
| IIyxMASTER | Дата: Вторник, 19 Февраля 2013, 11:43 | Сообщение # 8 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | заведи в чилдах переменную, в которой будет храниться номер действия.   От родителя отправляй сообщения с номером нужной функции.   псевдокод:   Код число А = 0   function OnTriggerEnter()     {   если а == 0 то ничего не делать   если а == 1 то прыгать   если а == 2 то бегать   };      Родитель считает, что при столкновении конечность должна бегать - отправляет ей сообщение, меняя число А на 2   Родитель считает, что при столкновении конечность более ничего не должна делать - ставит ей А равную 0   Примерно ясна логика?:-) 
   либо если хочется, чтоб вся логика была сосредоточена в родителе   Код function OnTriggerEnter()     {   отправить сообщение родителю "Меня коснулись";   };      Родитель это сообщение получает и начинает манипулировать ребятенком.
 
 Сообщение отредактировал IIyxMASTER - Вторник, 19 Февраля 2013, 11:45  |  
| 
 | 
 |    | 
| andarky | Дата: Вторник, 19 Февраля 2013, 15:11 | Сообщение # 9 |  
 
старожил 
Сейчас нет на сайте 
 
 | IIyxMASTER,   в ActionScript есть свищи и казы:   Код    switch (nn)   {   case 1:   <..>   break; 
   case 2:   <..>   break; 
   case 3:   <..>   break; 
   ... //и далее   } 
      
   наверное и JS в Unity Должно быть. 
   Всё же это не совсем то...Добавлено (19.02.2013, 14:30) --------------------------------------------- я щас нарисую Добавлено (19.02.2013, 15:11) --------------------------------------------- значит вот:   есть объект пустышка (с триггером) внутри него анимированный персонаж с коллайдером и ригидбодем.   если я попадаю в триггер должна сработать реакция на меня: перс включает анимацию и предпринимает разные дейтсвия. 
   НО! идя в него иногда игнорируется его коллайдер! а иногда срабатывает ригидбоди - что вообще правильно.   Только, например я оттолкнул пресонажа и тот отлетел.   Когда я иду дальше - срабатывает OnTriggerExit того пустышки-родителя. Он то НИКУДА не делся...   и, вот что: перс опять появляется в (0,0,0) и играет соответствующая анимация     
   я вскоре понял, что тут что-то не так и   сделал вот чо:      теперь родитель сидит внутри чилда (в реальности такого не бывает)   у него свой коллайдер с ригидбоди.   А чилд имеет триггер.   Теперь: всё правильно с физикой.   И всё переделал наоборот... 
   смысл таков:   ребенок говорит маме: В меня кто-то вошел.   А мам из животика дает указания как действовать... 
   Вот такой выход я нашел.   Правильно ли это??
 
   Моя страничка по дизайну   GameDev//Design//3D   Ютубчик  
 |  
| 
 | 
 |    | 
| JHawk | Дата: Вторник, 19 Февраля 2013, 19:17 | Сообщение # 10 |  
 
めゃくちゃちゃ 
Сейчас нет на сайте 
 
 | andarky, немножко не понятно, что ты хочешь сделать в итоге...   Может ты скажешь?
 |  
| 
 | 
 |    | 
| Левша | Дата: Вторник, 19 Февраля 2013, 19:26 | Сообщение # 11 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Я мало что понял... но думаю тебе нужны massage для вызова функций в других обьектах...  
  X.cor.R (Prologue)
 |  
| 
 | 
 |    | 
| JHawk | Дата: Вторник, 19 Февраля 2013, 19:31 | Сообщение # 12 |  
 
めゃくちゃちゃ 
Сейчас нет на сайте 
 
 | Левша, SendMessage нужно отправлять конкретному обьекту, а тут ему надо на неизвестный обьект вроде..
 |  
| 
 | 
 |    | 
| seaman | Дата: Вторник, 19 Февраля 2013, 20:52 | Сообщение # 13 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | SendMessage можно отправить без адреса.
 |  
| 
 | 
 |    | 
| Левша | Дата: Вторник, 19 Февраля 2013, 21:30 | Сообщение # 14 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Цитата (seaman) без адреса.     И оно дойдет до адресата с вызываемым методом в любом случае.    
  X.cor.R (Prologue)
 |  
| 
 | 
 |    |