Доступ - Форум Игроделов
Пт, 17 Май 2024, 08:42 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Доступ
Доступ
Jeka2012Дата: Пт, 04 Июл 2014, 17:45 | Сообщение # 1
 
Сообщений: 27
Награды: 0
Репутация: 2
Статус: Offline
Как сделать так,что бы один скрипт видел переменные второго и мог забирать,изменять данные в них

[url=http://gamecreatingcommunity.ru/forum/148-5873-1]BadDayForZombies - Мой проект [/url]
 
СообщениеКак сделать так,что бы один скрипт видел переменные второго и мог забирать,изменять данные в них

Автор - Jeka2012
Дата добавления - 04 Июл 2014 в 17:45
AltairДата: Пт, 04 Июл 2014, 18:29 | Сообщение # 2
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Jeka2012, легко )
Если скрипты на разных обьектах .
То тебе для начала в одном из скриптов(в том в котором ты хочешь получать данные переменных) ты должен создать переменную типа объект или трансформ второго объекта или даже скрипт (с этого второго объекта) .
Потом обратиться к нему.К примеру:
Код

private var scriptSecond : MouseLook;
var objSecond : GameObject;
function Start () {
scriptSecond = objSecond.GetComponent(scriptSecond);
}


А можно напрямую в инспекторе указывать скрипт(если его не нужно искать)
Код

var scriptSecond : MouseLook;


Дальше в том скрипте к которому обращаешься у тебя должны быть публичными или хотябы статичными нужные тебе переменные:

Код

static var yRotate : float;//не видно в инспекторе
//или
public var yRotate : float;//видно в инспекторе


и дальше уже в первом скрипте получать и назначать чему-то значение переменных из второго скрипта:
Код

private var scriptSecond : MouseLook;
var objSecond : GameObject;
private var yRotate : float;//видно в инспекторе
function Start () {
if(objSecond!=null)
scriptSecond = objSecond.GetComponent(scriptSecond);
}

function Update () {
if(scriptSecond!=null)
yRotate = scriptSecond.yRotate;
}


И всё))
 
СообщениеJeka2012, легко )
Если скрипты на разных обьектах .
То тебе для начала в одном из скриптов(в том в котором ты хочешь получать данные переменных) ты должен создать переменную типа объект или трансформ второго объекта или даже скрипт (с этого второго объекта) .
Потом обратиться к нему.К примеру:
Код

private var scriptSecond : MouseLook;
var objSecond : GameObject;
function Start () {
scriptSecond = objSecond.GetComponent(scriptSecond);
}


А можно напрямую в инспекторе указывать скрипт(если его не нужно искать)
Код

var scriptSecond : MouseLook;


Дальше в том скрипте к которому обращаешься у тебя должны быть публичными или хотябы статичными нужные тебе переменные:

Код

static var yRotate : float;//не видно в инспекторе
//или
public var yRotate : float;//видно в инспекторе


и дальше уже в первом скрипте получать и назначать чему-то значение переменных из второго скрипта:
Код

private var scriptSecond : MouseLook;
var objSecond : GameObject;
private var yRotate : float;//видно в инспекторе
function Start () {
if(objSecond!=null)
scriptSecond = objSecond.GetComponent(scriptSecond);
}

function Update () {
if(scriptSecond!=null)
yRotate = scriptSecond.yRotate;
}


И всё))

Автор - Altair
Дата добавления - 04 Июл 2014 в 18:29
Jeka2012Дата: Пт, 04 Июл 2014, 19:18 | Сообщение # 3
 
Сообщений: 27
Награды: 0
Репутация: 2
Статус: Offline
Спасибо огромное !Только плохо понял JS ))) Если можешь напиши на c# пожалуйста

[url=http://gamecreatingcommunity.ru/forum/148-5873-1]BadDayForZombies - Мой проект [/url]
 
СообщениеСпасибо огромное !Только плохо понял JS ))) Если можешь напиши на c# пожалуйста

Автор - Jeka2012
Дата добавления - 04 Июл 2014 в 19:18
seamanДата: Пт, 04 Июл 2014, 20:24 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Спасибо огромное !Только плохо понял JS ))) Если можешь напиши на c# пожалуйста

Совет.
Открываешь МАНУАЛ
Вбиваешь туда функции из скриптов выше, которые непонятны. Выбираешь язык C#. Видишь примеры использования. Становится понятно как написать то же самое на C#.
Пример:
GetComponent
Так получаем ссылку на наш скрипт, с которым нужно взаимодействовать,
 
Сообщение
Цитата
Спасибо огромное !Только плохо понял JS ))) Если можешь напиши на c# пожалуйста

Совет.
Открываешь МАНУАЛ
Вбиваешь туда функции из скриптов выше, которые непонятны. Выбираешь язык C#. Видишь примеры использования. Становится понятно как написать то же самое на C#.
Пример:
GetComponent
Так получаем ссылку на наш скрипт, с которым нужно взаимодействовать,

Автор - seaman
Дата добавления - 04 Июл 2014 в 20:24
ЛевшаДата: Сб, 05 Июл 2014, 01:16 | Сообщение # 5
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата
static var yRotate : float;//не видно в инспекторе

Лучше их не делать статик - опасно.
Можно так:
@HideInInspector public var yRotate : float;
smile


X.cor.R (Prologue)
 
Сообщение
Цитата
static var yRotate : float;//не видно в инспекторе

Лучше их не делать статик - опасно.
Можно так:
@HideInInspector public var yRotate : float;
smile

Автор - Левша
Дата добавления - 05 Июл 2014 в 01:16
seamanДата: Сб, 05 Июл 2014, 01:22 | Сообщение # 6
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Лучше их не делать статик - опасно.

"Опасно" - не совсем верное слово.
Статик - хорошая и полезная вещь. Нужно просто понимать что это, как она работает, и вообще - для чего. Уж во всяком случае - не для того, чтобы скрыть переменную в инспекторе.
 
Сообщение
Цитата
Лучше их не делать статик - опасно.

"Опасно" - не совсем верное слово.
Статик - хорошая и полезная вещь. Нужно просто понимать что это, как она работает, и вообще - для чего. Уж во всяком случае - не для того, чтобы скрыть переменную в инспекторе.

Автор - seaman
Дата добавления - 05 Июл 2014 в 01:22
ЛевшаДата: Сб, 05 Июл 2014, 04:35 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Разумеется. smile
Для ТС точно *опасно.


X.cor.R (Prologue)
 
СообщениеРазумеется. smile
Для ТС точно *опасно.

Автор - Левша
Дата добавления - 05 Июл 2014 в 04:35
AltairДата: Сб, 05 Июл 2014, 09:16 | Сообщение # 8
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Парни, вы так написали как будь-то я он ней сказал только в роли прятавания в инспекторое лол) это было лишь дополнением)
Цитата Левша ()
Лучше их не делать статик - опасно.

Опасно не опасно)я показал выбор и всего)
 
СообщениеПарни, вы так написали как будь-то я он ней сказал только в роли прятавания в инспекторое лол) это было лишь дополнением)
Цитата Левша ()
Лучше их не делать статик - опасно.

Опасно не опасно)я показал выбор и всего)

Автор - Altair
Дата добавления - 05 Июл 2014 в 09:16
Форум Игроделов » UNITY3D » СКРИПТИНГ » Доступ
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024