| 
				
				ссылка на переменную в инспекторе (адрес/указатель)
				 | 
 | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 11:20 | Сообщение # 1 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | Предположим есть у меня какой то объект. Есть у него две переменных health и fuel и может потом я захочу к нему добавить еще shield. И есть у меня два хелзбара для health и для fuel и потом я еще возможно захочу добавить бар для shield. Мне очень лень писать практически один и тот же скрипт для каждого из хелзбаров, и менять там лишь только название переменной которую он берет из моего объекта.  Мне бы хотелось просто указывать в инспекторе адрес (ну типа как в плюсах к переменной можно либо по адресу либо по указателю добраться) или мб. имя переменной к которой конкретный хелзбар будет оращаться, т.к. в теории еще малоли для каких параметров кроме этих трех я захочу сделать бары, но алгоритм независимо от этого останется тем же. Есть способ это сделать?
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| orkons | Дата: Четверг, 28 Июня 2018, 11:49 | Сообщение # 2 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | А какой-там скрипт для каждого хелсбара? Там условно говоря 2 строчки всего. Надо получить ссылку на слайдер, отображающий ХП полоску, и ему присваивать значение переменной хп/топлива/защиты.
 
 Сообщение отредактировал orkons - Четверг, 28 Июня 2018, 11:51  |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 11:55 | Сообщение # 3 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | если честно, просто с естетической точки зрения.  Просто кайфово же, когда просто передал значение по ссыллке, и не надо стопицот однотипных скриптов плодить, плюс еще в итоге меньше времени на компиляцию + меньший размер исходного файла. Все почучуть складывается и в итоге тогда проект больше походит на профессиональный продукт, нежели на школьную поделку и проще людей к совместной разработке привлечь.
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| drcrack | Дата: Четверг, 28 Июня 2018, 11:56 | Сообщение # 4 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | делаешь string targetFloat и дальше рефлексией GetType() GetFields() GetValue() придется написать кучу кода и все будет очень медленно, зато не придется писать 2 строчки каждый раз при добавлении нового бара
 
 Сообщение отредактировал drcrack - Четверг, 28 Июня 2018, 12:01  |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 11:58 | Сообщение # 5 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | оооо, вот эт похоже на то что мне нужно, ушол курить
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| drcrack | Дата: Четверг, 28 Июня 2018, 12:07 | Сообщение # 6 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | Цитата  если честно, просто с естетической точки зрения.   по-моему наоборот это мега криво) лучший код это код простой как топор и понятный даже дошкольнику если нужен новый класс — делаешь новый класс либо добавляешь enum в старый для переключения режимов работы
 
 Цитата  Все почучуть складывается и в итоге тогда проект больше походит на профессиональный продукт,  на гитхабе есть куча этих самых профессиональных продуктов, можешь поизучать их код
 |  
| 
 | 
 |    | 
| orkons | Дата: Четверг, 28 Июня 2018, 12:10 | Сообщение # 7 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | Возможно пригодится: как реализован ХП-бар у мобов у меня https://gcup.ru/forum/59-100597-1 (на данный момент последнее видео в первом посте). Это вариант новичка, изучающего с# 2 месяца, но вдруг, так как там есть видео с детальным разбором кода.
 |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 13:32 | Сообщение # 8 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | да вроде не так уж и мудрено Код public int myVar = 42;
  void OnGUI () { if (GUILayout.Button("Output Variable Value")) { int newVar = (int)this.GetType().GetField("myVar").GetValue(this); Debug.Log("Variable value: " + newVar); } }  
  проект  Mysterious Space. The losted moment
 
 Сообщение отредактировал zaicev9797 - Четверг, 28 Июня 2018, 13:32  |  
| 
 | 
 |    | 
| drcrack | Дата: Четверг, 28 Июня 2018, 14:04 | Сообщение # 9 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | не мудрено но очень медленно как минимум GetField надо сохранить и не вызывать каждый раз но даже GetValue все равно в сотни раз тормознее чем просто чтение поля
 |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 14:20 | Сообщение # 10 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | ну и хелзбаров на экране единовременно не так уж много, так что не критично
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| seaman | Дата: Четверг, 28 Июня 2018, 14:41 | Сообщение # 11 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | > хелзбаров на экране единовременно не так уж много, так что не критично Зато OnGUI вызывается несколько раз за кадр...
 |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 15:54 | Сообщение # 12 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | а я не через гуай, такие примитивные вещи можно и самому из плейнов собирать, как мне кажется вполне себе вариант. так что мне побарабану) одна пустышка, один квад краем касается пустышки. В итоге если сохранить начальный скейл одной из осейи потом скейлить пустышку по этой оси, то нормльный бар получается.
  проект  Mysterious Space. The losted moment
 
 Сообщение отредактировал zaicev9797 - Четверг, 28 Июня 2018, 15:56  |  
| 
 | 
 |    | 
| drcrack | Дата: Четверг, 28 Июня 2018, 15:57 | Сообщение # 13 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | Цитата  а я не через гуай, такие примитивные вещи можно и самому из плейнов собирать, как мне кажется вполне себе вариант. так что мне побарабану) одна пустышка, один плейн краем касается пустышки. В итоге если скейлить пустышку по одной из осей нормльный бар получается.   т.е. вместо того чтобы просто сделать 1 Image и менять fillAmount простым однострочным скриптом ты вот эту всю схему замутил с рефлексией и каким-то плейнами?   kostyl driven development  
 |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 17:14 | Сообщение # 14 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | ну чтобы менять fillAmount мне бы всеравно пришлось бы мутить схему с рефлексией. Ну и никто не говорил что я вот прям узнал способ, и сразу пошел его юзать. Я лишь на заметку взял, что если вдруг мне придется насоздавать 100500 различных хелсбаров для 100500 разных переменных, то я таким методом воспользуюсь а зачем я из плейнов собираю это все - вполне понятно тсановится из:Цитата seaman (  )   Зато OnGUI вызывается несколько раз за кадр...  Если мне придется делать что то более сложноое чем просто висящий сам по себе на экране бар, то я скорее всего это уже на UI буду делать.
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| orkons | Дата: Четверг, 28 Июня 2018, 18:38 | Сообщение # 15 |  
| 
 частый гость 
Сейчас нет на сайте 
 
 | "а зачем я из плейнов собираю это все - вполне понятно тсановится из:" А события почему не пользуетесь, чтобы менять значения баров только когда меняется переменная хп?
 |  
| 
 | 
 |    | 
| zaicev9797 | Дата: Четверг, 28 Июня 2018, 19:28 | Сообщение # 16 |  
 
AbRaKaDaBrA 
Сейчас нет на сайте 
 
 | чтобы использовать GUI надо сейчас сидеть вспоминать его все методы (за год службы благополучно все забывается и плюс когда начинали новый GUI вводить я только пощупать его успелл) . а чтобы отскейлить плейн по оси Х ничего вспоминать не надо    короче говоря в данный момент вермени для меня это было гораздо проще
  проект  Mysterious Space. The losted moment
 |  
| 
 | 
 |    | 
| seaman | Дата: Четверг, 28 Июня 2018, 21:25 | Сообщение # 17 |  
| 
 старожил 
Сейчас нет на сайте 
 
 | В 2019 обещают ввести и в редакторе новый UI. Надеюсь тогда совсем уберут OnGUI. Сделать бар на новом UI элементарно...
 |  
| 
 | 
 |    |