Суббота, 28 Декабря 2024, 04:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Вызов функции из дочернего объекта JS
dead-menschДата: Воскресенье, 04 Января 2015, 05:09 | Сообщение # 1
был не раз
Сейчас нет на сайте
Столкнулся с такой бедой, я недавно начал учить JS именно под Unity3d (до этого изучал его более 2 лет для браузера (Node.JS, Jquery и т.д.)).
Так вот, у меня есть 3 объекта:
1. Башня (объект в котором вызывается функция).
2. Триггер (вызывает функцию в башне).
3. Враг (активирует триггер).

Есть 2 скрипта:

1. На башне:

Код

#pragma strict   
function fire () {   
print('Enemy');   
}


2. на триггере:

Код

#pragma strict   
var tower : GameObject;   
var tags = 'Enemy';   

function OnTriggerStay (Enemy : Collider) {   
    if (Enemy.collider.tag == tags) {   
      //tower.GetComponent('tower').fire();   
    }   
}


В итоге он мне выдаёт ошибку:

Цитата

Assets/My files/Scripts/trigger tower.js(7,32): BCE0019: 'fire' is not a member of 'UnityEngine.Component'.


Как можно вызвать функцию из другого объекта иным способом или отловить активацию триггера на дочернем объекте, родительским?


Сообщение отредактировал dead-mensch - Воскресенье, 04 Января 2015, 06:22
MANMANAДата: Воскресенье, 04 Января 2015, 05:40 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
tower - название скрипта башни? tower.js

Код
var towerScript: tower  = hitInfo.gameObject.GetComponent(tower);
var tags = 'Enemy';   

function OnTriggerStay (Enemy : Collider) {   
    if (Enemy.collider.tag == tags) {
towerScript.fire();
    }   
}


кажется, на Юнискрипте так.
и да, fire и Fire - разные вещи, помним, да?:)

можно через SendMessage http://www.unity3dstudent.com/2011....nctions
http://www.gamasutra.com/blogs....per.php


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
dead-menschДата: Воскресенье, 04 Января 2015, 06:23 | Сообщение # 3
был не раз
Сейчас нет на сайте
tower - название скрипта на башне.

Если использовать hitInfo, то получается следующая ошибка:

Цитата
Assets/My files/Scripts/trigger tower.js(3,27): BCE0005: Unknown identifier: 'hitInfo'.


fire - только используется, до этого просто использовал Fire, поправил.
MANMANAДата: Воскресенье, 04 Января 2015, 13:15 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата dead-mensch ()
Если использовать hitInfo, то получается следующая ошибка:


и правильно получается.
что такое hitInfo?
оно нигде не оПЕРДЕЛено ранее.
это я ночью каку какую-то написал smile

var myObject : GameObject;//tower game object. assign GO in Inspector
var towerScript: tower = myObject.GetComponent(tower); //tower script
var tags = 'Enemy';

function OnTriggerStay (Enemy : Collider) {
if (Enemy.collider.tag == tags) {
towerScript.fire();
}
}

в самом верху http://docs.unity3d.com/412....nt.html

Добавлено (04 января 2015, 13:15)
---------------------------------------------
а если вопрос, как в названии темы, с папками-дочками, то смотри здесь http://answers.unity3d.com/questio....sa.html


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
dead-menschДата: Воскресенье, 04 Января 2015, 13:31 | Сообщение # 5
был не раз
Сейчас нет на сайте
Большое спасибо, помогло.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг