Четверг, 26 Декабря 2024, 10:56

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: Gnomov  
Unity C# переменные
Kano-TanakaДата: Понедельник, 21 Апреля 2014, 16:43 | Сообщение # 1
был не раз
Сейчас нет на сайте
Помогите, как обратиться из скрипта на префабе к переменной из скрипта, привязанного к игроку?
Мне просто надо, чтобы граната отнимала жизни
berilДата: Понедельник, 21 Апреля 2014, 17:05 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
через GetComponent



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Kano-TanakaДата: Вторник, 22 Апреля 2014, 15:48 | Сообщение # 3
был не раз
Сейчас нет на сайте
спасибо, но тогда другой вопрос:
а как в префабе, пока он ещё не заспавнен присвоить переменной типа Transform какой либо объект в сцене(тупо перетащить объект из иерархии в скрипт не получается)
AevienДата: Вторник, 22 Апреля 2014, 16:08 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Пока префаб не находится в уровне, ты ничего с ним сделать не сможешь
Kano-TanakaДата: Вторник, 22 Апреля 2014, 16:40 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата Aevien ()
Пока префаб не находится в уровне, ты ничего с ним сделать не сможешь

тогда каким образом указать гранате, чтобы она отнимала жизни игроку?
EchoITДата: Вторник, 22 Апреля 2014, 16:53 | Сообщение # 6
старожил
Сейчас нет на сайте
Kano-Tanaka, неправильно ты, дядя Фёдор, геймдев изучаешь. Ты начинаешь с создания гранат в игре, а не с изучения языка программирования.

Чтобы найти игрока на сцене пиши:
Код
GameObject.Find("Имя префаба игрока")


Долгожданный анонсик: State of War

Сообщение отредактировал EchoIT - Вторник, 22 Апреля 2014, 16:54
Kano-TanakaДата: Вторник, 22 Апреля 2014, 20:21 | Сообщение # 7
был не раз
Сейчас нет на сайте
Цитата EchoIT ()
GameObject.Find("Имя префаба игрока")


пишу:

objPlayer = GameObject.Find("Graphics"); //objPlayer здесь - переменная типа Transform

кидает ошибку:

Неявное преобразование типа 'UnityEngine.GameObject' в 'UnityEngine.Transform' невозможно (CS0029) (Assembly-CSharp)

потом попробовал так:

objPlayer = transform.Find(objPlayerName); //где objPlayerName - переменная string с именем нужного объекта


Сообщение отредактировал Kano-Tanaka - Вторник, 22 Апреля 2014, 20:30
LightsoftДата: Вторник, 22 Апреля 2014, 21:15 | Сообщение # 8
частый гость
Сейчас нет на сайте
В ошибке же указано, что Find возвращает тип GameObject, objPlayer должен быть GameObject, а не Transform

Сообщение отредактировал Lightsoft - Вторник, 22 Апреля 2014, 21:19
Kano-TanakaДата: Вторник, 22 Апреля 2014, 21:33 | Сообщение # 9
был не раз
Сейчас нет на сайте
Спасибо и сорри, что тупанул. Как-то даже и не подумал, что GameObject может быть типом переменной.
DebieCooperДата: Среда, 23 Апреля 2014, 02:48 | Сообщение # 10
частый гость
Сейчас нет на сайте
Наверное лучше сразу язык выучить) Хотя бы до лямбда выражений дойти, имхо)

Сообщение отредактировал DebieCooper - Среда, 23 Апреля 2014, 02:49
  • Страница 1 из 1
  • 1
Поиск:

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