Бар здоровья над объектом [РЕШЕНО]

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

Бар здоровья над объектом [РЕШЕНО]

Сообщение Friend123 31 май 2012, 20:43

Добрый день!
Лазил по форуму и инету, но так и не смог найти ответ на сабж. Я делаю игру - вид сверху, используются 2 координаты X и Z, типа 2D. Делаю бар здоровья - создал примитив Plane, делаю его дочерним объектом от объекта-врага, назначаю координаты чуть выше самого объекта. Прописал небольшой скрипт, чтобы бар не поворачивался вместе с родительским объектом и повесил его на бар:
Синтаксис:
Используется csharp
void Update(){
    transform.rotation = Quaternion.identity;
}
 


И что получается: да, бар не крутится вокруг родителя, но если родитель начинает поворачиваться, то бар не всегда находится над ним, а может оказаться и сбоку, и снизу, в зависимости от угла поворота. Как это можно побороть, чтобы бар был всегда над объектом-родителем?
Последний раз редактировалось Friend123 02 июн 2012, 01:23, всего редактировалось 1 раз.
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Бар здоровья над объектом

Сообщение Левш@ 01 июн 2012, 16:26

Как это можно побороть, чтобы бар был всегда над объектом-родителем?

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

Re: Бар здоровья над объектом

Сообщение Friend123 01 июн 2012, 20:37

Левш@ писал(а):
Как это можно побороть, чтобы бар был всегда над объектом-родителем?

Я эти бары через GUITexture делаю, проекцией 3Д в 2Д, такой бар всегда имеет постоянные координаты относительно пивота обьекта и всегда смотрит в камеру + с расстоянием сохраняет размер. :)

Я в принципе изначально так и хотел, т.е. получается мне нужно взять бар, взять координаты Vector3 объекта и спроецировать на экран, соответственно в 2D координаты, так получается? А-то делал Plane'ом - жопа получается

Update. Смог написать скрипт:
Синтаксис:
Используется csharp
void Update(){
    Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
    EnemyHealthBarPref.GetComponent<GUITexture>().pixelInset = new Rect(screenPos.x-30, screenPos.y+40, 50, 5);
}
 

Он работает нормально в том случае если хелсбар болтается сам по себе на сцене, а если хелсбар сделать дочерним от объекта противника, то переписав немного скрипт и повесив его на противника (до этого висел на самом хелсбаре) я получаю, что в инспекторе координаты x и y pixelInset'а меняются нормально, а хелсбара на сцене нету и где он неизвестно.
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Бар здоровья над объектом

Сообщение Левш@ 02 июн 2012, 01:01

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

Re: Бар здоровья над объектом

Сообщение Friend123 02 июн 2012, 01:23

Левш@ писал(а):Нет, дочерить его нельзя... :) трансформ GUITexture влияет на ее координаты.

Ну тогда всё понятно :) спасибо за помощь
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ


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

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

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