Unity 3d - Помощь в написании скриптов. - Страница 11 - Форум Игроделов
Вт, 04 Фев 2025, 10:03 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Unity 3d - Помощь в написании скриптов.
DjeeZДата: Пт, 10 Июн 2011, 16:10 | Сообщение # 201
 
Сообщений: 270
Награды: 8
Репутация: 291
Статус: Offline
В C# имя надо в угловые скобки <> помещать. А так правильно, вроде.
otherScript = GetComponent<OtherScript>();

Code
//Пускай в другом скипте имеется публичная переменная типа int - "perem"
//в начале этого скрипта объявляем переменную типа GameObject:
public GameObject hand;

//ищем с помощью метода Find объект по имени "pers":
hand = GameObject.Find("pers");
   
//получаем в "а" нужную публичную переменную
   int a = hand.GetComponent<script1>().perem;
   Debug.Log(a);  // выводим ее в консоль для проверки работы скрипта


В JavaScript сам переводи. smile

По разному можно обратиться к другим объектам и компонентам. Лучше в меню Unity, вверху, нажать "help", выбрать - Scripting Reference, и на первой же странице видим, например, ссылку - Accessing Other Game Objects (доступ к другим гейм-объектам),
переходим и очучиваемся на странице с разнообразными примерами доступа к объектам игры.
Недалеко - ходить, не правда ли? surprised Тоже, бывает, забываю, что справка есть. smile
Сколько бывало жалоб на недостаточную, плохую или полное отсутствие документации при использовании многих движков и других программ. А тут, дали - а нам не надо! biggrin


Сообщение отредактировал DjeeZ - Пт, 10 Июн 2011, 16:50
 
СообщениеВ C# имя надо в угловые скобки <> помещать. А так правильно, вроде.
otherScript = GetComponent<OtherScript>();

Code
//Пускай в другом скипте имеется публичная переменная типа int - "perem"
//в начале этого скрипта объявляем переменную типа GameObject:
public GameObject hand;

//ищем с помощью метода Find объект по имени "pers":
hand = GameObject.Find("pers");
   
//получаем в "а" нужную публичную переменную
   int a = hand.GetComponent<script1>().perem;
   Debug.Log(a);  // выводим ее в консоль для проверки работы скрипта


В JavaScript сам переводи. smile

По разному можно обратиться к другим объектам и компонентам. Лучше в меню Unity, вверху, нажать "help", выбрать - Scripting Reference, и на первой же странице видим, например, ссылку - Accessing Other Game Objects (доступ к другим гейм-объектам),
переходим и очучиваемся на странице с разнообразными примерами доступа к объектам игры.
Недалеко - ходить, не правда ли? surprised Тоже, бывает, забываю, что справка есть. smile
Сколько бывало жалоб на недостаточную, плохую или полное отсутствие документации при использовании многих движков и других программ. А тут, дали - а нам не надо! biggrin

Автор - DjeeZ
Дата добавления - 10 Июн 2011 в 16:10
durak007Дата: Пн, 13 Июн 2011, 23:25 | Сообщение # 202
 
Сообщений: 177
Награды: 2
Репутация: 162
Статус: Offline
Спасибо что вы мне ответили как именно взять переменную с другого объекта. Потому что в вопросе я это вобще не обриовал.А мне нужно именно получение с другого объекта.

Добавлено (10.06.2011, 18:14)
---------------------------------------------
Вот этот джава скрипт работает для получения переменной с другого объекта

Code

function Start () {
     // By name
     var go = GameObject.Find("First1");
     go.GetComponent(Go1).enabled=false;     
}

Добавлено (13.06.2011, 23:25)
---------------------------------------------
Скажите пожалуйста, можно ли компоненту камера, именно компоненту, который цепляется через меню компонент рендеринг к объекту, а не объект камера. Можно ли компоненту камере поменять координаты положения над объектом. Над 3 д персон или над машиной.


Нет Бога кроме Аллаха и Ларс фон Триер пророк Его. И он также участник клуба GCC
 
СообщениеСпасибо что вы мне ответили как именно взять переменную с другого объекта. Потому что в вопросе я это вобще не обриовал.А мне нужно именно получение с другого объекта.

Добавлено (10.06.2011, 18:14)
---------------------------------------------
Вот этот джава скрипт работает для получения переменной с другого объекта

Code

function Start () {
     // By name
     var go = GameObject.Find("First1");
     go.GetComponent(Go1).enabled=false;     
}

Добавлено (13.06.2011, 23:25)
---------------------------------------------
Скажите пожалуйста, можно ли компоненту камера, именно компоненту, который цепляется через меню компонент рендеринг к объекту, а не объект камера. Можно ли компоненту камере поменять координаты положения над объектом. Над 3 д персон или над машиной.


Автор - durak007
Дата добавления - 13 Июн 2011 в 23:25
ЛевшаДата: Вт, 14 Июн 2011, 13:07 | Сообщение # 203
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (durak007)
Вот этот джава скрипт работает для получения переменной с другого объекта

А на фига все эти сложности? cool

Code
static var blaBla = 0;


Вызов из др. скрипта:

Code
SkriptName.blaBla = 1;

В Js имя скрипта - это тот же класс.


X.cor.R (Prologue)
 
Сообщение
Quote (durak007)
Вот этот джава скрипт работает для получения переменной с другого объекта

А на фига все эти сложности? cool

Code
static var blaBla = 0;


Вызов из др. скрипта:

Code
SkriptName.blaBla = 1;

В Js имя скрипта - это тот же класс.

Автор - Левша
Дата добавления - 14 Июн 2011 в 13:07
yeah48rusДата: Вт, 14 Июн 2011, 21:31 | Сообщение # 204
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
Всем добрый вечер , хотелось бы задать вопрос : кто-нибудь знает возможность реализации взрыва при столкновении обьектов? ну т.е. 1 обект (машина) наезжает на бочку , бочка взрывается. в качестве реализации самого взрыва использую пак с офф сайта Detonator

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

попытался написать сам , но чтото не рабит нифига:)))

var a : GameObject;
var b : GameObject;

var c : GameObject;
function BombActive() {

if (a.transform.position.x != c.transform.position.x )
{
b.active = true ;
}
}

a - бочка, b - неактивный префаб взрыва , с - пустой геймобьект с координатами соответствующими бочке.


Сообщение отредактировал yeah48rus - Вт, 14 Июн 2011, 22:19
 
СообщениеВсем добрый вечер , хотелось бы задать вопрос : кто-нибудь знает возможность реализации взрыва при столкновении обьектов? ну т.е. 1 обект (машина) наезжает на бочку , бочка взрывается. в качестве реализации самого взрыва использую пак с офф сайта Detonator

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

попытался написать сам , но чтото не рабит нифига:)))

var a : GameObject;
var b : GameObject;

var c : GameObject;
function BombActive() {

if (a.transform.position.x != c.transform.position.x )
{
b.active = true ;
}
}

a - бочка, b - неактивный префаб взрыва , с - пустой геймобьект с координатами соответствующими бочке.

Автор - yeah48rus
Дата добавления - 14 Июн 2011 в 21:31
ShutДата: Вт, 14 Июн 2011, 22:33 | Сообщение # 205
 
Сообщений: 608
Награды: 2
Репутация: 258
Статус: Offline
yeah48rus, в fps tutorial это рассматривается.

Code
var explosion : GameObject;  

function OnCollisionEnter( collision : Collision )
{
  var contact : ContactPoint = collision.contacts[0];
  var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );  
  var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation );
  Destroy( gameObject );
}


отсюда можно немного взять.
p.s. скриптинг не мой конек если что


Где арахисы - там и зима.
 
Сообщениеyeah48rus, в fps tutorial это рассматривается.

Code
var explosion : GameObject;  

function OnCollisionEnter( collision : Collision )
{
  var contact : ContactPoint = collision.contacts[0];
  var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );  
  var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation );
  Destroy( gameObject );
}


отсюда можно немного взять.
p.s. скриптинг не мой конек если что

Автор - Shut
Дата добавления - 14 Июн 2011 в 22:33
yeah48rusДата: Вт, 14 Июн 2011, 22:50 | Сообщение # 206
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
Shut , помоему там скрипт ещё вешается на "источник" удара... или я ошибаюсь wacko да и какбы мне чем проще будет реализация тем лучше...
 
СообщениеShut , помоему там скрипт ещё вешается на "источник" удара... или я ошибаюсь wacko да и какбы мне чем проще будет реализация тем лучше...

Автор - yeah48rus
Дата добавления - 14 Июн 2011 в 22:50
ЛевшаДата: Ср, 15 Июн 2011, 10:36 | Сообщение # 207
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (yeah48rus)
чем проще будет реализация тем лучше...

Да куда уж проще... smile

Quote (yeah48rus)
там скрипт ещё вешается на "источник" удара

Нет.
Взрыв будет при столкновении с любым коллайдером, или можно выборочно через тег или слой.


X.cor.R (Prologue)
 
Сообщение
Quote (yeah48rus)
чем проще будет реализация тем лучше...

Да куда уж проще... smile

Quote (yeah48rus)
там скрипт ещё вешается на "источник" удара

Нет.
Взрыв будет при столкновении с любым коллайдером, или можно выборочно через тег или слой.

Автор - Левша
Дата добавления - 15 Июн 2011 в 10:36
yeah48rusДата: Ср, 15 Июн 2011, 22:31 | Сообщение # 208
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
люди добрые помогите плз ещё пожалуйста:) на сцене есть камера, на камере висят 2 скрипта - смутфаллоу и мауслук. можно ли добавить функцию включения скрипта мауслук по нажатии ПКМ и отключении скрипта смутфаллоу, ну сообтветственно когда ПКМ отпускается мауслук отключается , смутфаллоу включается?
 
Сообщениелюди добрые помогите плз ещё пожалуйста:) на сцене есть камера, на камере висят 2 скрипта - смутфаллоу и мауслук. можно ли добавить функцию включения скрипта мауслук по нажатии ПКМ и отключении скрипта смутфаллоу, ну сообтветственно когда ПКМ отпускается мауслук отключается , смутфаллоу включается?

Автор - yeah48rus
Дата добавления - 15 Июн 2011 в 22:31
ЛевшаДата: Ср, 15 Июн 2011, 22:56 | Сообщение # 209
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (yeah48rus)
можно ли добавить

Лишний вопрос, в Юньке все можно. smile

Простой способ - добавь в Input новый button и назначь ПКМ (mouse2).
В скрипте по условию:

Code
if (Input.GetButton ("PKM"))  {   }


Cделаешь enable, disable своим скриптам.


X.cor.R (Prologue)
 
Сообщение
Quote (yeah48rus)
можно ли добавить

Лишний вопрос, в Юньке все можно. smile

Простой способ - добавь в Input новый button и назначь ПКМ (mouse2).
В скрипте по условию:

Code
if (Input.GetButton ("PKM"))  {   }


Cделаешь enable, disable своим скриптам.

Автор - Левша
Дата добавления - 15 Июн 2011 в 22:56
yeah48rusДата: Чт, 16 Июн 2011, 21:09 | Сообщение # 210
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
всем привет ещё раз , хочу показать скрипт на задние фары машины , можт комуто пригодится , ну и сразу же хочу задать вопрос , в сочетании со скриптом из оффициального картуториала он работает , а сейчас в другом проекте почемуто не хочет... в чём может быть проблема??? можт у когото были проблемы такие...

Code
var lightSourceBrakingL : GameObject;
var lightSourceBrakingR : GameObject;
var lightSourceBackwardL : GameObject;
var lightSourceBackwardR : GameObject;

function SetBackLight(){
if (Input.GetKey("space")){
SwitchBackLight(1);
}
else{
if (((gear> 0) && (Input.GetAxis("Vertical") <0 )) || ((gear< 0) && (Input.GetAxis("Vertical") > 0 ))){
SwitchBackLight(1);
}
else {
if (Input.GetKey("s")||Input.GetKey("down")) {
SwitchBackLight(2);
}
else {
SwitchBackLight(0);
}
}
}

}

function SwitchBackLight( lightType : int) {
switch (lightType){
case 0:
lightSourceBrakingL.active = false;
lightSourceBrakingR.active = false;
lightSourceBackwardL.active = false;
lightSourceBackwardR.active = false;
break;

case 1:
lightSourceBrakingL.active = true;
lightSourceBrakingR.active = true;
lightSourceBackwardL.active = false;
lightSourceBackwardR.active = false;
break;

case 2:
lightSourceBrakingL.active = false;
lightSourceBrakingR.active = false;
lightSourceBackwardL.active = true;
lightSourceBackwardR.active = true;
break;
}
}
 
Сообщениевсем привет ещё раз , хочу показать скрипт на задние фары машины , можт комуто пригодится , ну и сразу же хочу задать вопрос , в сочетании со скриптом из оффициального картуториала он работает , а сейчас в другом проекте почемуто не хочет... в чём может быть проблема??? можт у когото были проблемы такие...

Code
var lightSourceBrakingL : GameObject;
var lightSourceBrakingR : GameObject;
var lightSourceBackwardL : GameObject;
var lightSourceBackwardR : GameObject;

function SetBackLight(){
if (Input.GetKey("space")){
SwitchBackLight(1);
}
else{
if (((gear> 0) && (Input.GetAxis("Vertical") <0 )) || ((gear< 0) && (Input.GetAxis("Vertical") > 0 ))){
SwitchBackLight(1);
}
else {
if (Input.GetKey("s")||Input.GetKey("down")) {
SwitchBackLight(2);
}
else {
SwitchBackLight(0);
}
}
}

}

function SwitchBackLight( lightType : int) {
switch (lightType){
case 0:
lightSourceBrakingL.active = false;
lightSourceBrakingR.active = false;
lightSourceBackwardL.active = false;
lightSourceBackwardR.active = false;
break;

case 1:
lightSourceBrakingL.active = true;
lightSourceBrakingR.active = true;
lightSourceBackwardL.active = false;
lightSourceBackwardR.active = false;
break;

case 2:
lightSourceBrakingL.active = false;
lightSourceBrakingR.active = false;
lightSourceBackwardL.active = true;
lightSourceBackwardR.active = true;
break;
}
}

Автор - yeah48rus
Дата добавления - 16 Июн 2011 в 21:09
TibersДата: Чт, 16 Июн 2011, 22:30 | Сообщение # 211
 
Сообщений: 93
Награды: 3
Репутация: 58
Статус: Offline
привет всем мне нужен нормальный скрипт врага а не с tutorial который делает выстрел потом шаг
чтоб он стоял на месте и стрелял или бегал и стрелял


[img]http://i.imgur.com/Muw4o.png[/img]
 
Сообщениепривет всем мне нужен нормальный скрипт врага а не с tutorial который делает выстрел потом шаг
чтоб он стоял на месте и стрелял или бегал и стрелял

Автор - Tibers
Дата добавления - 16 Июн 2011 в 22:30
yeah48rusДата: Чт, 16 Июн 2011, 23:08 | Сообщение # 212
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
ну чтобы стоял и стрелял можно из буткампдемо вырезать вот ссылка
 
Сообщениену чтобы стоял и стрелял можно из буткампдемо вырезать вот ссылка

Автор - yeah48rus
Дата добавления - 16 Июн 2011 в 23:08
ЛевшаДата: Чт, 16 Июн 2011, 23:20 | Сообщение # 213
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (yeah48rus)
оффициального картуториала он работает , а сейчас в другом проекте почемуто не хочет... в чём может быть проблема???

Чет я не понял... а где запуск функции SetBackLight ? blink Как оно будет работать?
Наверно в оф проекте регистрировались классы и вызывались функции из др. скрипта.


X.cor.R (Prologue)
 
Сообщение
Quote (yeah48rus)
оффициального картуториала он работает , а сейчас в другом проекте почемуто не хочет... в чём может быть проблема???

Чет я не понял... а где запуск функции SetBackLight ? blink Как оно будет работать?
Наверно в оф проекте регистрировались классы и вызывались функции из др. скрипта.

Автор - Левша
Дата добавления - 16 Июн 2011 в 23:20
yeah48rusДата: Чт, 16 Июн 2011, 23:52 | Сообщение # 214
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
всё, нашёл косяк...:))))сам затупил , в function Update дописываем строчку и пользуемся на здоровье:)))

SetBackLight();


Сообщение отредактировал yeah48rus - Пт, 17 Июн 2011, 00:02
 
Сообщениевсё, нашёл косяк...:))))сам затупил , в function Update дописываем строчку и пользуемся на здоровье:)))

SetBackLight();

Автор - yeah48rus
Дата добавления - 16 Июн 2011 в 23:52
durak007Дата: Пт, 17 Июн 2011, 01:27 | Сообщение # 215
 
Сообщений: 177
Награды: 2
Репутация: 162
Статус: Offline
Скажите плиз. Вот любая вешиль после отработки имеет инерцию и без надобности движется пот тераину после завершения пользования ею. Как можно убрать её инерцию движения из скрипта. Короче как можно остановить инерцию движения объекта из скрипта? Премного благодарен

Нет Бога кроме Аллаха и Ларс фон Триер пророк Его. И он также участник клуба GCC
 
СообщениеСкажите плиз. Вот любая вешиль после отработки имеет инерцию и без надобности движется пот тераину после завершения пользования ею. Как можно убрать её инерцию движения из скрипта. Короче как можно остановить инерцию движения объекта из скрипта? Премного благодарен

Автор - durak007
Дата добавления - 17 Июн 2011 в 01:27
youfusДата: Пт, 17 Июн 2011, 11:29 | Сообщение # 216
Нет аватара
 
Сообщений: 11
Награды: 0
Репутация: 0
Статус: Offline
Ребят что то не могу айтвином создать вращение по кругу на определенном растоянии от точки. Айтвин у меня вообще выдает ошибки кучу. Может есть просто скриптик какой нибудь маленький?
 
СообщениеРебят что то не могу айтвином создать вращение по кругу на определенном растоянии от точки. Айтвин у меня вообще выдает ошибки кучу. Может есть просто скриптик какой нибудь маленький?

Автор - youfus
Дата добавления - 17 Июн 2011 в 11:29
ЛевшаДата: Пт, 17 Июн 2011, 16:38 | Сообщение # 217
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (yeah48rus)
в function Update

А где в твоем скрипте Update ? huh

Quote (yeah48rus)
всё, нашёл косяк

Вообщето я тебя прямо в него (косяк), ткнул. biggrin

Quote (Левша)
где запуск функции SetBackLight ? Как оно будет работать?


Quote (youfus)
не могу айтвином создать вращение по кругу на определенном растоянии от точки

Удочери его ГО, смести координаты и вращай ГО.

Quote (durak007)
Вот любая вешиль после отработки имеет инерцию

blink даже без риджБоду?

Quote (durak007)
Короче как можно остановить инерцию движения объекта из скрипта?

Нулевой скоростью.


X.cor.R (Prologue)
 
Сообщение
Quote (yeah48rus)
в function Update

А где в твоем скрипте Update ? huh

Quote (yeah48rus)
всё, нашёл косяк

Вообщето я тебя прямо в него (косяк), ткнул. biggrin

Quote (Левша)
где запуск функции SetBackLight ? Как оно будет работать?


Quote (youfus)
не могу айтвином создать вращение по кругу на определенном растоянии от точки

Удочери его ГО, смести координаты и вращай ГО.

Quote (durak007)
Вот любая вешиль после отработки имеет инерцию

blink даже без риджБоду?

Quote (durak007)
Короче как можно остановить инерцию движения объекта из скрипта?

Нулевой скоростью.

Автор - Левша
Дата добавления - 17 Июн 2011 в 16:38
yeah48rusДата: Сб, 18 Июн 2011, 18:50 | Сообщение # 218
Нет аватара
 
Сообщений: 12
Награды: 0
Репутация: 1
Статус: Offline
люди добрые задаю такой вопрос можно ли переменную формата float выводить на экран в формате int . если да, то каким образом, точнее какой командой...
 
Сообщениелюди добрые задаю такой вопрос можно ли переменную формата float выводить на экран в формате int . если да, то каким образом, точнее какой командой...

Автор - yeah48rus
Дата добавления - 18 Июн 2011 в 18:50
ShutДата: Сб, 18 Июн 2011, 18:54 | Сообщение # 219
 
Сообщений: 608
Награды: 2
Репутация: 258
Статус: Offline
yeah48rus,


Где арахисы - там и зима.
 
Сообщениеyeah48rus,

Автор - Shut
Дата добавления - 18 Июн 2011 в 18:54
Zer0nДата: Сб, 18 Июн 2011, 19:41 | Сообщение # 220
 
Сообщений: 880
Награды: 23
Репутация: 516
Статус: Offline
Quote (yeah48rus)
люди добрые задаю такой вопрос можно ли переменную формата float выводить на экран в формате int . если да, то каким образом, точнее какой командой...

В шарпе - (int)переменная; В JS наверное также.


 
Сообщение
Quote (yeah48rus)
люди добрые задаю такой вопрос можно ли переменную формата float выводить на экран в формате int . если да, то каким образом, точнее какой командой...

В шарпе - (int)переменная; В JS наверное также.

Автор - Zer0n
Дата добавления - 18 Июн 2011 в 19:41
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025