Не могу понять почему плохо работает скрипт - Форум Игроделов
Вт, 04 Фев 2025, 01:37 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Не могу понять почему плохо работает скрипт
VolkOrievithДата: Сб, 14 Июл 2012, 11:53 | Сообщение # 1
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
вот скрипт(JS):
Code
var Bullet : Collider;//пуля
var Launcher : GameObject;
var Zaderjka : float = 0.0;// задержка выстрела
var PossZaderjka : float = 0.0;
var Body : Transform;
var Potrons = 10;// патроны
var MaxPotrons = 10;
var Zapas = 5;// запас магазинов
var MaxZapas = 5;
var TimePerez : float = 0.0;
var Anamy : Collider;
var MineBody : Collider;
var MineHelf = 100;
var AnamyHelf = 100;

private var FireTimer : float = 0.0;

function Update () {

Screen.lockCursor = true;

if (Potrons <=0)
Zaderjka = 999999;

if (Input.GetKeyDown("r"))
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;

if (Input.GetKey("w"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("d"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("s"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("a"))
Body.animation.CrossFade("Pistola Animation3");

if (Zapas <= 0)
if (Potrons <=0)
Zaderjka = 999999;

Launcher.particleEmitter.emit = false;

if ( Input.GetButtonDown( "Fire1" ) && FireTimer >= Zaderjka ) {

FireTimer = 0.0;
Launcher.audio.Play();
Launcher.particleEmitter.emit = true;
Potrons = Potrons - 1;
Body.animation.CrossFade("Pistola Animation2");

var hit : RaycastHit;

if ( Physics.Raycast( Launcher.transform.position, Launcher.transform.forward, hit ) ) {
Instantiate( Bullet, hit.point, Quaternion.LookRotation( hit.normal ) );
}
}

FireTimer += Time.deltaTime;
}

1)при выстреле кол-во патронов должно убавлятся, а оно как было так и осталось sad
2)при нажатии R, кол-во магазинов должно убавлятся, а оно как было так и осталось sad :(
Что сделать?


Сообщение отредактировал Dekterev - Чт, 19 Июл 2012, 09:52
 
Сообщениевот скрипт(JS):
Code
var Bullet : Collider;//пуля
var Launcher : GameObject;
var Zaderjka : float = 0.0;// задержка выстрела
var PossZaderjka : float = 0.0;
var Body : Transform;
var Potrons = 10;// патроны
var MaxPotrons = 10;
var Zapas = 5;// запас магазинов
var MaxZapas = 5;
var TimePerez : float = 0.0;
var Anamy : Collider;
var MineBody : Collider;
var MineHelf = 100;
var AnamyHelf = 100;

private var FireTimer : float = 0.0;

function Update () {

Screen.lockCursor = true;

if (Potrons <=0)
Zaderjka = 999999;

if (Input.GetKeyDown("r"))
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;

if (Input.GetKey("w"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("d"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("s"))
Body.animation.CrossFade("Pistola Animation3");

if (Input.GetKey("a"))
Body.animation.CrossFade("Pistola Animation3");

if (Zapas <= 0)
if (Potrons <=0)
Zaderjka = 999999;

Launcher.particleEmitter.emit = false;

if ( Input.GetButtonDown( "Fire1" ) && FireTimer >= Zaderjka ) {

FireTimer = 0.0;
Launcher.audio.Play();
Launcher.particleEmitter.emit = true;
Potrons = Potrons - 1;
Body.animation.CrossFade("Pistola Animation2");

var hit : RaycastHit;

if ( Physics.Raycast( Launcher.transform.position, Launcher.transform.forward, hit ) ) {
Instantiate( Bullet, hit.point, Quaternion.LookRotation( hit.normal ) );
}
}

FireTimer += Time.deltaTime;
}

1)при выстреле кол-во патронов должно убавлятся, а оно как было так и осталось sad
2)при нажатии R, кол-во магазинов должно убавлятся, а оно как было так и осталось sad :(
Что сделать?

Автор - VolkOrievith
Дата добавления - 14 Июл 2012 в 11:53
HunjethДата: Сб, 14 Июл 2012, 15:56 | Сообщение # 2
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Code
FireTimer += Time.deltaTime;

надо ставить сразу после if вот так
Code
if ( Input.GetButtonDown( "Fire1" ) && FireTimer >= Zaderjka ) {
FireTimer += Time.deltaTime;


или так написать
Code
if ( Input.GetButtonDown( "Fire1" ) && Time.time >= FireTimer) {
FireTimer = Time.time + Zaderjka;
if (Input.GetKeyDown("r")) {
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;
}


Добавлено (14.07.2012, 15:54)
---------------------------------------------
Code
Potrons = Potrons - 1;
замени на
Code
Potrons --;


Code
Input.GetKeyDown("r")
лучше написать в начале update
Code
inpr = Input.GetKeyDown("r");

а дальше проверять true или false


Сообщение отредактировал Dekterev - Чт, 19 Июл 2012, 09:47
 
Сообщение
Code
FireTimer += Time.deltaTime;

надо ставить сразу после if вот так
Code
if ( Input.GetButtonDown( "Fire1" ) && FireTimer >= Zaderjka ) {
FireTimer += Time.deltaTime;


или так написать
Code
if ( Input.GetButtonDown( "Fire1" ) && Time.time >= FireTimer) {
FireTimer = Time.time + Zaderjka;
if (Input.GetKeyDown("r")) {
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;
}


Добавлено (14.07.2012, 15:54)
---------------------------------------------
Code
Potrons = Potrons - 1;
замени на
Code
Potrons --;


Code
Input.GetKeyDown("r")
лучше написать в начале update
Code
inpr = Input.GetKeyDown("r");

а дальше проверять true или false

Автор - Hunjeth
Дата добавления - 14 Июл 2012 в 15:56
ЛевшаДата: Сб, 14 Июл 2012, 22:33 | Сообщение # 3
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (Hunjeth)
Code
Potrons = Potrons - 1;
замени на
Code
Potrons --;

Или
Code
Potrons -= 1;


X.cor.R (Prologue)
 
Сообщение
Quote (Hunjeth)
Code
Potrons = Potrons - 1;
замени на
Code
Potrons --;

Или
Code
Potrons -= 1;

Автор - Левша
Дата добавления - 14 Июл 2012 в 22:33
commandobyДата: Вс, 15 Июл 2012, 11:42 | Сообщение # 4
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
VolkOrievith, на счёт патронов ненашёл ничего, но вот перезарядка с таким скриптом будет паказывать всё время 4 обоймы, если я правильно понял. Нужно заменить
Code
Zapas = MaxZapas - 1;
на
Code
Zapas -= 1;


Блог.

Сообщение отредактировал commandoby - Вс, 15 Июл 2012, 11:44
 
СообщениеVolkOrievith, на счёт патронов ненашёл ничего, но вот перезарядка с таким скриптом будет паказывать всё время 4 обоймы, если я правильно понял. Нужно заменить
Code
Zapas = MaxZapas - 1;
на
Code
Zapas -= 1;

Автор - commandoby
Дата добавления - 15 Июл 2012 в 11:42
VolkOrievithДата: Чт, 19 Июл 2012, 09:46 | Сообщение # 5
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
благодарю! Я тут еще маленько посидел подумал. взял каждое Условие, или не знаю как назвать, взял в фигурные скобки. вот например:
вместо
Code
if (Input.GetKeyDown("r"))
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;


я написал
Code
if (Input.GetKeyDown("r")){
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;
}

потом еще подумал и вот что получил:
Code

var Bullet : Collider;
var Launcher : GameObject;
var Zaderjka : float = 0.0;
var PossZaderjka : float = 0.0;
var RelodTime : float = 0.00;
var Body : Transform;
var Potrons = 10;
var MaxPotrons = 10;
var Zapas = 5;
var ReloadSound : GameObject;

private var FireTimer : float = 0.0;
var hit : RaycastHit;
function Update () {

Screen.lockCursor = true;

       if ( Input.GetButton("Fire1") && FireTimer >= Zaderjka )
         if (Potrons >=1){
     FireTimer = 0.0;    
     Launcher.audio.Play();    
     Launcher.particleEmitter.emit = true;     
     Potrons -= 1;
     Body.animation.CrossFade("Fire");

     Launcher.particleEmitter.emit = false;
           
     if ( Physics.Raycast( Launcher.transform.position, Launcher.transform.forward, hit ) ) {      
    Instantiate( Bullet, hit.point, Quaternion.LookRotation( hit.normal ) );
     }
    }
       

       
if (Input.GetKeyDown("r"))
     if (Potrons < MaxPotrons){
        Potrons = MaxPotrons;
        Zapas -= 1;
          if (Zapas >= 0)
            Body.animation.CrossFade("Reload");
            if (Zapas >= 0)
              ReloadSound.audio.Play();
}
if (Input.GetKey("w")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("d")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("s")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("a")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKeyUp("a")){
    Body.animation.CrossFade("Walk");
    }
if (Zapas <= -1)
    if (Potrons >=1){
    Potrons = 0;
    }
       
    FireTimer += Time.deltaTime;
}


все хорошо работает, только анимацию стрельбы не воспроизводит.

Добавлено (19.07.2012, 09:46)
---------------------------------------------
У меня еще вопрос: если нажать "r" патроны = макс патроны, воспроизводится анимация, запас -=1.
если во время анимации перезарядки нажать "Огонь" анимация прервется и автомат выстрелит. как сделать задержку?

Сообщение отредактировал Dekterev - Чт, 19 Июл 2012, 09:45
 
Сообщениеблагодарю! Я тут еще маленько посидел подумал. взял каждое Условие, или не знаю как назвать, взял в фигурные скобки. вот например:
вместо
Code
if (Input.GetKeyDown("r"))
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;


я написал
Code
if (Input.GetKeyDown("r")){
Body.animation.CrossFade("Pistola Animation");
Zaderjka = PossZaderjka;
Potrons = MaxPotrons;
Zapas = MaxZapas - 1;
}

потом еще подумал и вот что получил:
Code

var Bullet : Collider;
var Launcher : GameObject;
var Zaderjka : float = 0.0;
var PossZaderjka : float = 0.0;
var RelodTime : float = 0.00;
var Body : Transform;
var Potrons = 10;
var MaxPotrons = 10;
var Zapas = 5;
var ReloadSound : GameObject;

private var FireTimer : float = 0.0;
var hit : RaycastHit;
function Update () {

Screen.lockCursor = true;

       if ( Input.GetButton("Fire1") && FireTimer >= Zaderjka )
         if (Potrons >=1){
     FireTimer = 0.0;    
     Launcher.audio.Play();    
     Launcher.particleEmitter.emit = true;     
     Potrons -= 1;
     Body.animation.CrossFade("Fire");

     Launcher.particleEmitter.emit = false;
           
     if ( Physics.Raycast( Launcher.transform.position, Launcher.transform.forward, hit ) ) {      
    Instantiate( Bullet, hit.point, Quaternion.LookRotation( hit.normal ) );
     }
    }
       

       
if (Input.GetKeyDown("r"))
     if (Potrons < MaxPotrons){
        Potrons = MaxPotrons;
        Zapas -= 1;
          if (Zapas >= 0)
            Body.animation.CrossFade("Reload");
            if (Zapas >= 0)
              ReloadSound.audio.Play();
}
if (Input.GetKey("w")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("d")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("s")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKey("a")){
    Body.animation.CrossFade("Walk");
    }
if (Input.GetKeyUp("a")){
    Body.animation.CrossFade("Walk");
    }
if (Zapas <= -1)
    if (Potrons >=1){
    Potrons = 0;
    }
       
    FireTimer += Time.deltaTime;
}


все хорошо работает, только анимацию стрельбы не воспроизводит.

Добавлено (19.07.2012, 09:46)
---------------------------------------------
У меня еще вопрос: если нажать "r" патроны = макс патроны, воспроизводится анимация, запас -=1.
если во время анимации перезарядки нажать "Огонь" анимация прервется и автомат выстрелит. как сделать задержку?


Автор - VolkOrievith
Дата добавления - 19 Июл 2012 в 09:46
АлишДата: Чт, 19 Июл 2012, 10:27 | Сообщение # 6
Son of Satan
 
Сообщений: 223
Награды: 0
Репутация: 53
Статус: Offline
Quote (VolkOrievith)
var Zaderjka : float = 0.0;// задержка выстрела
var PossZaderjka : float = 0.0;
var Body : Transform;
var Potrons = 10;// патроны
var MaxPotrons = 10;
var Zapas = 5;// запас магазинов
var MaxZapas = 5;
var TimePerez : float = 0.0;
var Anamy : Collider;
var MineBody : Collider;
var MineHelf = 100;
var AnamyHelf = 100;

Мой брат за такие названия переменных бил меня шваброй.

Quote (VolkOrievith)
если во время анимации перезарядки нажать "Огонь" анимация прервется и автомат выстрелит. как сделать задержку?

Сделать бул-переменную, при перезарядке делать ее false. При выстреле проверять ее истинность.


Сообщение отредактировал Алиш - Чт, 19 Июл 2012, 10:28
 
Сообщение
Quote (VolkOrievith)
var Zaderjka : float = 0.0;// задержка выстрела
var PossZaderjka : float = 0.0;
var Body : Transform;
var Potrons = 10;// патроны
var MaxPotrons = 10;
var Zapas = 5;// запас магазинов
var MaxZapas = 5;
var TimePerez : float = 0.0;
var Anamy : Collider;
var MineBody : Collider;
var MineHelf = 100;
var AnamyHelf = 100;

Мой брат за такие названия переменных бил меня шваброй.

Quote (VolkOrievith)
если во время анимации перезарядки нажать "Огонь" анимация прервется и автомат выстрелит. как сделать задержку?

Сделать бул-переменную, при перезарядке делать ее false. При выстреле проверять ее истинность.

Автор - Алиш
Дата добавления - 19 Июл 2012 в 10:27
VolkOrievithДата: Чт, 19 Июл 2012, 11:50 | Сообщение # 7
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Quote (Алиш)
Сделать бул-переменную, при перезарядке делать ее false. При выстреле проверять ее истинность.

Сори, но я не очень знаю как это делается. Может объяснишь?
Quote (Алиш)
Мой брат за такие названия переменных бил меня шваброй.

мой брат слишком далеко от меня, чтобы дотянуться шваброй.
 
Сообщение
Quote (Алиш)
Сделать бул-переменную, при перезарядке делать ее false. При выстреле проверять ее истинность.

Сори, но я не очень знаю как это делается. Может объяснишь?
Quote (Алиш)
Мой брат за такие названия переменных бил меня шваброй.

мой брат слишком далеко от меня, чтобы дотянуться шваброй.

Автор - VolkOrievith
Дата добавления - 19 Июл 2012 в 11:50
АлишДата: Чт, 19 Июл 2012, 12:05 | Сообщение # 8
Son of Satan
 
Сообщений: 223
Награды: 0
Репутация: 53
Статус: Offline
Quote (VolkOrievith)
Сори, но я не очень знаю как это делается. Может объяснишь?

Мда.
Code
var bCanShoot = false;


В функции выстрела:
Code
if(bCanShoot)
{
//Что-то
}

В функции перезарядки:
//Что-то
Code
bCanShoot = false;


В функции окончания перезарядки:
Code
bCanShoot = true;


Сообщение отредактировал Dekterev - Чт, 19 Июл 2012, 15:38
 
Сообщение
Quote (VolkOrievith)
Сори, но я не очень знаю как это делается. Может объяснишь?

Мда.
Code
var bCanShoot = false;


В функции выстрела:
Code
if(bCanShoot)
{
//Что-то
}

В функции перезарядки:
//Что-то
Code
bCanShoot = false;


В функции окончания перезарядки:
Code
bCanShoot = true;

Автор - Алиш
Дата добавления - 19 Июл 2012 в 12:05
VolkOrievithДата: Чт, 19 Июл 2012, 14:00 | Сообщение # 9
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
а как писать функцию окончания перезарядки?
я самоучка в JavaScript, тем более недавно начал.

Добавлено (19.07.2012, 14:00)
---------------------------------------------
А не подскажете как вывести патроны на экран?

 
Сообщениеа как писать функцию окончания перезарядки?
я самоучка в JavaScript, тем более недавно начал.

Добавлено (19.07.2012, 14:00)
---------------------------------------------
А не подскажете как вывести патроны на экран?


Автор - VolkOrievith
Дата добавления - 19 Июл 2012 в 14:00
ЛевшаДата: Чт, 19 Июл 2012, 15:55 | Сообщение # 10
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (VolkOrievith)
как вывести патроны на экран?

Повесь GUIText, в переменную text присваивай кол-во патронов.


X.cor.R (Prologue)
 
Сообщение
Quote (VolkOrievith)
как вывести патроны на экран?

Повесь GUIText, в переменную text присваивай кол-во патронов.

Автор - Левша
Дата добавления - 19 Июл 2012 в 15:55
VolkOrievithДата: Вс, 22 Июл 2012, 07:52 | Сообщение # 11
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
А как присвоить туда кол-во патронов?

Добавлено (22.07.2012, 07:46)
---------------------------------------------
Все! патроны на экране! А как написать так: при окончании анимации Potrons = MaxPotrons; ?

Добавлено (22.07.2012, 07:52)
---------------------------------------------
вот еще неработающий скрипт:
Code

var Weapon1 = GameObject;
var Weapon2 = GameObject;
   Weapon1.WeaponScript.enabled = true;
   Weapon2.WeaponScript.enabled = false;

function Update () {
if (Input.GetKeyDown(1)){
   Weapon1.animation.CrossFade("GunUp");
   Weapon2.animation.CrossFade("GunDown");
   Weapon1.WeaponScript.enabled = true;
   Weapon2.WeaponScript.enabled = false;
}
if (Input.GetKeyDown(2)){
Weapon2.animation.CrossFade("GunUp");
Weapon1.animation.CrossFade("GunDown");
   Weapon1.WeaponScript.enabled = false;
   Weapon2.WeaponScript.enabled = true;
}
}

В инспекторе ни одна переменная не отображается.


Сообщение отредактировал VolkOrievith - Вс, 22 Июл 2012, 07:53
 
СообщениеА как присвоить туда кол-во патронов?

Добавлено (22.07.2012, 07:46)
---------------------------------------------
Все! патроны на экране! А как написать так: при окончании анимации Potrons = MaxPotrons; ?

Добавлено (22.07.2012, 07:52)
---------------------------------------------
вот еще неработающий скрипт:
Code

var Weapon1 = GameObject;
var Weapon2 = GameObject;
   Weapon1.WeaponScript.enabled = true;
   Weapon2.WeaponScript.enabled = false;

function Update () {
if (Input.GetKeyDown(1)){
   Weapon1.animation.CrossFade("GunUp");
   Weapon2.animation.CrossFade("GunDown");
   Weapon1.WeaponScript.enabled = true;
   Weapon2.WeaponScript.enabled = false;
}
if (Input.GetKeyDown(2)){
Weapon2.animation.CrossFade("GunUp");
Weapon1.animation.CrossFade("GunDown");
   Weapon1.WeaponScript.enabled = false;
   Weapon2.WeaponScript.enabled = true;
}
}

В инспекторе ни одна переменная не отображается.

Автор - VolkOrievith
Дата добавления - 22 Июл 2012 в 07:52
HunjethДата: Вс, 22 Июл 2012, 09:37 | Сообщение # 12
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Weapon1.WeaponScript.enabled = true;
Weapon2.WeaponScript.enabled = false;
убери в начале

и надо писать
Weapon1.GetComponent(WeaponScript).enabled = ...;

или
var Weapon1 : WeaponScript;

Weapon1.enabled = ...;


Сообщение отредактировал Hunjeth - Вс, 22 Июл 2012, 09:41
 
СообщениеWeapon1.WeaponScript.enabled = true;
Weapon2.WeaponScript.enabled = false;
убери в начале

и надо писать
Weapon1.GetComponent(WeaponScript).enabled = ...;

или
var Weapon1 : WeaponScript;

Weapon1.enabled = ...;

Автор - Hunjeth
Дата добавления - 22 Июл 2012 в 09:37
VolkOrievithДата: Вс, 22 Июл 2012, 10:44 | Сообщение # 13
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Заменил. не работает angry angry sad sad
У кого есть скрипт замены оружия?
 
СообщениеЗаменил. не работает angry angry sad sad
У кого есть скрипт замены оружия?

Автор - VolkOrievith
Дата добавления - 22 Июл 2012 в 10:44
HunjethДата: Вс, 22 Июл 2012, 11:13 | Сообщение # 14
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
blink blink
Input.GetKeyDown(KeyCode.Mouse0)
http://docs.unity3d.com/Documentation/ScriptReference/KeyCode.html


Сообщение отредактировал Hunjeth - Вс, 22 Июл 2012, 11:15
 
Сообщениеblink blink
Input.GetKeyDown(KeyCode.Mouse0)
http://docs.unity3d.com/Documentation/ScriptReference/KeyCode.html

Автор - Hunjeth
Дата добавления - 22 Июл 2012 в 11:13
ЛевшаДата: Вс, 22 Июл 2012, 15:24 | Сообщение # 15
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (VolkOrievith)
У кого есть скрипт замены оружия?


Code

var invWeaps : GameObject[];
private var currWeap : Transform;
private var weapState : int = 9;
private var weapActive : boolean = false;

function Update () {   
  if (Input.GetKeyUp ("1") && invWeaps[0] && weapState != 0) {
      weapState = 0; WeapChange(); }
  if (Input.GetKeyUp ("2") && invWeaps[1] && weapState != 1) {
             weapState = 1; WeapChange(); }
  if (Input.GetKeyUp ("3") && invWeaps[2] && weapState != 2) {
             weapState = 2; WeapChange(); }
  if (Input.GetKeyUp ("4") && invWeaps[3] && weapState != 3) {
             weapState = 3; WeapChange(); }
}
function WeapChange (){
  if (currWeap) {
             weapActive = false;
  }
  if (!currWeap) {
      currWeap = Instantiate(invWeaps[weapState], transform.position, transform.rotation).transform;
      currWeap.parent = transform;
      weapActive = true;
  }  
}

Скрипт вешать на ГО Weapons дочерний к камере игрока.


X.cor.R (Prologue)
 
Сообщение
Quote (VolkOrievith)
У кого есть скрипт замены оружия?


Code

var invWeaps : GameObject[];
private var currWeap : Transform;
private var weapState : int = 9;
private var weapActive : boolean = false;

function Update () {   
  if (Input.GetKeyUp ("1") && invWeaps[0] && weapState != 0) {
      weapState = 0; WeapChange(); }
  if (Input.GetKeyUp ("2") && invWeaps[1] && weapState != 1) {
             weapState = 1; WeapChange(); }
  if (Input.GetKeyUp ("3") && invWeaps[2] && weapState != 2) {
             weapState = 2; WeapChange(); }
  if (Input.GetKeyUp ("4") && invWeaps[3] && weapState != 3) {
             weapState = 3; WeapChange(); }
}
function WeapChange (){
  if (currWeap) {
             weapActive = false;
  }
  if (!currWeap) {
      currWeap = Instantiate(invWeaps[weapState], transform.position, transform.rotation).transform;
      currWeap.parent = transform;
      weapActive = true;
  }  
}

Скрипт вешать на ГО Weapons дочерний к камере игрока.

Автор - Левша
Дата добавления - 22 Июл 2012 в 15:24
VolkOrievithДата: Пн, 23 Июл 2012, 15:26 | Сообщение # 16
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Левша, Благодарю! Вроде хороший скрипт.
 
СообщениеЛевша, Благодарю! Вроде хороший скрипт.

Автор - VolkOrievith
Дата добавления - 23 Июл 2012 в 15:26
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025