Воскресенье, 17 Ноября 2024, 16:55

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Игроделы, помогите со скриптом!!!
NOWHEREДата: Суббота, 09 Февраля 2013, 09:07 | Сообщение # 1
участник
Сейчас нет на сайте
Хотел сделать скрипт, чтобы при коллизии игрока и пульта, при нажатии кнопки Е происходили ивенты:

1 - Изменялся цвет подсветки пульта
2 - Открывалась дверь
3 - отображался текст

Вроде бы ничего, но! Сколько бы не курил Скрипт Референс по JS, не могу понять, как заставить Юнити читать переменные из другого скрипта.

Так же возникли проблемы в цикле For. Ну не могу понять, хоть апстену бошкой!

Помогите плиз. Только без срача и троллинга, окда?



ShadowZiДата: Суббота, 09 Февраля 2013, 09:39 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Хоть что-то не меняется)
Код
var script=object.GetComponent("имяскрипта");
var x=script.nashaperemennay

object - объект который проколайдили, получить можно как там через функцию при обработке столкновений.
Надо понимать логику юнити на объекты мы навешиваем компоненты, и скрипт также является компонентом.

Ps я так бы делать не стал, как раз потому что надо лезть в другой скрипт. Насколько помню гораздо проще можно сделать, из центра экрана кастить луч, и сделать обработку попадания лучём. Как с пулемётом в туторе, но вместо убирания жизней выполняем действие.
NOWHEREДата: Суббота, 09 Февраля 2013, 14:16 | Сообщение # 3
участник
Сейчас нет на сайте
Цитата (ShadowZi)
Ps я так бы делать не стал, как раз потому что надо лезть в другой скрипт. Насколько помню гораздо проще можно сделать, из центра экрана кастить луч, и сделать обработку попадания лучём. Как с пулемётом в туторе, но вместо убирания жизней выполняем действие.
Это как?



ShadowZiДата: Суббота, 09 Февраля 2013, 14:23 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Я давно с рейкастом не работал, как и с юнити, но похоже придётся. Там в старом туторе платформера про робота был код для стационарного пулемёта, пулемёт вместо того чтобы стрелять мешами как раз использовал кастирования луча для нанесения повреждений. Тебе надо будет выкинуть фактически всю аи часть, из пулемёта, ну и вместо повреждений выполнение своего скрипта...
White9Дата: Суббота, 09 Февраля 2013, 15:09 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
NOWHERE, вот пример работы с райкастом. Луч исходит из позиции мыши по направлению взгляда камеры


Сообщение отредактировал White9 - Суббота, 09 Февраля 2013, 15:09
NOWHEREДата: Суббота, 09 Февраля 2013, 15:33 | Сообщение # 6
участник
Сейчас нет на сайте
Спасибо, конечно, но мы отошли от темы. Как получить доступ к переменным в другом скрипте? И как сделать функции? В БАСИКе это было просто - объявил типы и всё, а здесь? Помогите


ShadowZiДата: Суббота, 09 Февраля 2013, 15:34 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Цитата (ShadowZi)
Хоть что-то не меняется)
Код
var script=object.GetComponent("имяскрипта");
var x=script.nashaperemennay
NOWHEREДата: Суббота, 09 Февраля 2013, 15:53 | Сообщение # 8
участник
Сейчас нет на сайте
Ща тестану)) Не уходи с сайта. А скайп, маил или ася у тя есть?


ShadowZiДата: Суббота, 09 Февраля 2013, 15:54 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Не забудь ещё про это
Цитата (ShadowZi)
object - объект который проколайдили, получить можно как там через функцию при обработке столкновений.
Надо понимать логику юнити на объекты мы навешиваем компоненты, и скрипт также является компонентом.
NOWHEREДата: Суббота, 09 Февраля 2013, 16:00 | Сообщение # 10
участник
Сейчас нет на сайте
не срабатывает. в консоли пишет, что не знает объект, к которому я другой скрипт приаттачил. а также гонит со значениями.


ShadowZiДата: Суббота, 09 Февраля 2013, 16:03 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Цитата (ShadowZi)
Не забудь ещё про это
Цитата (ShadowZi)
object - объект который проколайдили, получить можно как там через функцию при обработке столкновений.
Надо понимать логику юнити на объекты мы навешиваем компоненты, и скрипт также является компонентом.
NOWHEREДата: Суббота, 09 Февраля 2013, 16:07 | Сообщение # 12
участник
Сейчас нет на сайте
Он не знает игровой объект, хотя у меня он есть

Добавлено (09.02.2013, 16:07)
---------------------------------------------
Что интересно, когда я меняю в скрипте замка тип переменной с числа на true, то возникает только одна ошибка, что к true непременимо ==. А если число, то ошибок 100500, чо за хрень



ShadowZiДата: Суббота, 09 Февраля 2013, 16:08 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
так просто обратиться к объекту нельзя, по имени.
в начале надо определить этот объект. С юнити давно не работал(ещё впереди вспоминать всё и понимать что они нафигачили с версии 3.5 на версии 4+), но вроде при колизии создаётся объект колизии, в качестве свойств этого объекта передаётся объект с которым мы столкнулись.
Выковыриваем этот объект из этого свойства и вешаем на наш object
NOWHEREДата: Суббота, 09 Февраля 2013, 16:09 | Сообщение # 14
участник
Сейчас нет на сайте
подробнее?


ShadowZiДата: Суббота, 09 Февраля 2013, 16:19 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
Подробнее в туториале. Работа со столкновениями подробно расписана в туториале платформера, http://u3d.as/content/unity-technologies/3d-platformer-tutorial/3yF

и в Scripting Reference. В противном случае это получается копипаст кода из одного места в другое.
NOWHEREДата: Суббота, 09 Февраля 2013, 16:28 | Сообщение # 16
участник
Сейчас нет на сайте
А в С# как?

Добавлено (09.02.2013, 16:28)
---------------------------------------------
И это случаем не через функцию OnCollisionEnter(blahblah)



ShadowZiДата: Суббота, 09 Февраля 2013, 16:34 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
через неё, пишешь в ней как раз своё. а в скобках там посмотри как в образце должна быть переменная определённого типа.
Двиг сам в эту переменную засунет всё инфу о столкновении и через её свойства вытянешь объект с которым столкнулись
NOWHEREДата: Суббота, 09 Февраля 2013, 16:44 | Сообщение # 18
участник
Сейчас нет на сайте
БЛДЖАД!!! Ну а как мне присвоить значение переменной, если он не хочет её считать за true???


ShadowZiДата: Суббота, 09 Февраля 2013, 16:51 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
пример кода
NOWHEREДата: Суббота, 09 Февраля 2013, 17:00 | Сообщение # 20
участник
Сейчас нет на сайте
Для первого скрипта(объект blhc):

#pragma strict

static var _isClosed == true;

Для второго:

#pragma strict

var hds = blhc.GetComponent("butlockHeatCont");
var heatdooranim = hds._isClosed;

function OpenHeatContDoor () {

if (_isClosed == true){

Animation.Play ("Opening");

}
}



  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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