Передача var в с одного скрипта в другой...

Программирование на Юнити.

Передача var в с одного скрипта в другой...

Сообщение Hellcaller 10 июн 2010, 09:35

Всем привет. У меня трабла все делаю как по книжке но не фурычит.
Есть у меня скрипт(PowerBar):

Код: Выделить всё
var maximumHitPoints = 10.0;
static var hitPoints : float = 0.0;
var healthGUI : GUITexture;
var die : AudioClip;
var buttonDown : boolean = false;
var damage : float = 0.0;

private var healthGUIWidth = 0.0;

function Awake () {
   healthGUIWidth = healthGUI.pixelInset.width;
}

function Update() {
if (Input.GetButton("Fire1"))
{
  damage = Time.deltaTime;
  ApplyDamage();
}
else
{
   hitPoints += Time.deltaTime*0.2;
}
hitPoints = Mathf.Clamp(hitPoints, 0, maximumHitPoints);
}

function LateUpdate () {
   UpdateGUI();
}

function ApplyDamage () {
   hitPoints -= damage;
   if (hitPoints < 0.0)
      Die();
}

function Die () {
   if (die)
      AudioSource.PlayClipAtPoint(die, transform.position);
}

function UpdateGUI () {
   
   var healthFraction = Mathf.Clamp01(hitPoints / maximumHitPoints);

   
   healthGUI.pixelInset.xMax = healthGUI.pixelInset.xMin + healthGUIWidth * healthFraction;

}

С него мне надо передать static var hitPoints в стандартный юнитовский скрипт DragRigidBody чтобы уменьшить spring до 0 если значение hitPoints < 1
Вот мои строчки в DragRigidBody скрипте:
Код: Выделить всё
function Update ()
{
if (PowerBar.hitPoints < 1)
spring = 0;
else if (PowerBar.hitPoints > 1)
spring = 50;

но Юнити ругается что Unknown identifier: 'PowerBar'.
P.S.
Да да я знаю [curved_hands] ...
Opposition Forces
Мои поделки на Unity
Hellcaller
UNIт
 
Сообщения: 70
Зарегистрирован: 28 май 2010, 22:59

Re: Передача var в с одного скрипта в другой...

Сообщение Golandez 10 июн 2010, 09:59

У вас оба скрипта висят на одном ГО ? Покажите полностью PowerBar.
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Передача var в с одного скрипта в другой...

Сообщение Hellcaller 10 июн 2010, 10:03

У вас оба скрипта висят на одном ГО ? Покажите полностью PowerBar.

PowerBar выложил полностью вы наверное не обратили внимание на полосу прокрутки.
Этот скрипт присвоен GUITEXTURE а DragRigidbody скрипт присвоен Rigidbody
P.S. Нашел еще такой вариант:
Код: Выделить всё
function Update ()
{
if (DragRigidbody.GetComponent(PowerBar).hitPoints < 1)
spring = 0;
else if (DragRigidbody.GetComponent(PowerBar).hitPoints > 1)
spring = 50;

Но всеравно Юнити не видит скрипт "PowerBar"
Код: Выделить всё
Unknown identifier: 'PowerBar'.
Hellcaller
UNIт
 
Сообщения: 70
Зарегистрирован: 28 май 2010, 22:59

Re: Передача var в с одного скрипта в другой...

Сообщение Golandez 10 июн 2010, 10:18

Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital

Re: Передача var в с одного скрипта в другой...

Сообщение Hellcaller 10 июн 2010, 10:43

gameObject.GetComponent не подойдет так как скрипты висят на разных обэктах а не на одном...
Opposition Forces
Мои поделки на Unity
Hellcaller
UNIт
 
Сообщения: 70
Зарегистрирован: 28 май 2010, 22:59

Re: Передача var в с одного скрипта в другой...

Сообщение Neodrop 10 июн 2010, 10:50

Подойдёт. Просто вместо gameObject, который является локальной переменной вашего скрипта, нужно использовать ссылку на объект, на котором вы ищете компонент.
Пройдите туториалы и не городите необдуманных глупостей на форуме. :-w
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Передача var в с одного скрипта в другой...

Сообщение Hellcaller 10 июн 2010, 10:58

Всем спасибо разобрался:
Код: Выделить всё
function Update ()
{
if (GameObject.Find ("powerBar").GetComponent("PowerBar").hitPoints  < 1)
spring = 0;
else if (GameObject.Find ("powerBar").GetComponent("PowerBar").hitPoints > 1)
spring = 50;
Opposition Forces
Мои поделки на Unity
Hellcaller
UNIт
 
Сообщения: 70
Зарегистрирован: 28 май 2010, 22:59


Вернуться в Скрипты

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

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