Прошу помощи в создании скрипта оружия. - Форум Игроделов
Вс, 09 Фев 2025, 18:58 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Прошу помощи в создании скрипта оружия.
MaxUnityDevДата: Чт, 26 Апр 2012, 18:56 | Сообщение # 1
 
Сообщений: 126
Награды: 1
Репутация: 136
Статус: Offline
Всем привет. помогите пожалуйста мне. У меня есть скрипт на оружия, часть я написал сам.

В скрипте не могу сделать чтобы правильно гильзы падали, они падают не в том месте, и партиклы при попадании в стены, тоже как не пытался не получается, хотел сделать чтобы по тегам допустим metal, wood и прочее.
После того как создал префаб плеера, и засунул туда рабочий вариан со сцены он вообще перестал стрелять по направлению. Я скину архив там 8 метров, будет время глянте пожалуйста.

Скачать исходник 8 метров.

Code
var totalBullets = 7;
var ReloadBullets = 7;
var clips = 5;
// var hitParticles : GameObject;
var force = 500.0;
var damage = 50.0;
var range = 1000.0;
var ReloadTime = 3;
var ReloadSound : AudioClip;
var FireSound : AudioClip;
var EmptySound : AudioClip;
private var reloading : boolean = false;
var emptyHull : Rigidbody;
var throwPos : Transform;
var rate : float = 0.1;
private var rate_time : float;

function Update()
{
   Fire();
     
   /*
   if (Input.GetButtonDown("MoveWeapon"))
   {
    animation.CrossFade("move");
   }
   else
   {
    animation.CrossFade("idle");
   }
   */
}

function Fire ()
{
   if (Input.GetButton("Fire1")  && !reloading  && Time.time > rate_time){
    rate_time = Time.time + rate;
      
      
      
    if(totalBullets > 0) {
       
     //animation.Play("startFire");
     //animation.Play("endFire");
     animation.Play("fire", PlayMode.StopAll);
     animation["fire"].speed = 15.0;
     FireOneShot ();
     // clone = Instantiate(explo, GameObject.Find("FireZone").transform.position, transform.rotation);
    }
    else
    {
     animation.CrossFade("idle");
    }
    if (totalBullets <=0)
    {
     if (EmptySound)
     {
      audio.PlayOneShot(EmptySound);
      animation.Play("chick");
     }
    }
   }
     
   if (Input.GetButtonDown("Reload") && !reloading)
   {
    Reload();
   }
}

function Reload()
{
   //if (reloading)
   //return;
   if(totalBullets <= ReloadBullets){
    if (clips >0)
    {
     reloading = true;
     audio.PlayOneShot(ReloadSound);
     //animation.Play("reload");
     animation.Play("reload", PlayMode.StopAll);
     animation["reload"].speed = 1;
     yield WaitForSeconds(ReloadTime);
     totalBullets = ReloadBullets;
     clips -=1;
     reloading = false;
    }else{
     if(totalBullets <= ReloadBullets){
      if (clips >0)
      {
       reloading = true;
       audio.PlayOneShot(ReloadSound);
       //animation.Play("reload");
       animation.Play("reload", PlayMode.StopAll);
       animation["reload"].speed = 1;
       yield WaitForSeconds(ReloadTime);
       totalBullets = ReloadBullets;
       clips -=1;
       reloading = false;
      }
     }
    }
   }
}

function FireOneShot ()
{
   if (emptyHull) {
    Instantiate(emptyHull.transform,throwPos.position,throwPos.rotation);
totalBullets = (totalBullets - 0);
   }
      var direction = transform.TransformDirection(Vector3.right);
      var hit : RaycastHit;
     
   // Did we hit anything?
   if (Physics.Raycast (transform.position, direction, hit, range))
   {
    // Apply a force to the rigidbody we hit
    if (hit.rigidbody)
    hit.rigidbody.AddForceAtPosition(force * direction, hit.point);
      
    // Send a damage message to the hit object
    hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
   }
   if (FireSound)
   {
    audio.PlayOneShot(FireSound);
   }
   totalBullets -=1;
}


замените в функции fire animation["fire"].speed = 15.0; на = 8.0; там глюк.

Добавлено (26.04.2012, 18:56)
---------------------------------------------
Все, разобрался сделал систему точнее переделал систему. Теперь у меня и дырки от пуль на стенах и на физ.объектах и партиклы и прочее. Тему пока не закрывать.


http://www.youtube.com/watch?v=wD6VGTjkK9Q&feature=related

http://www.youtube.com/watch?NR=1&v=lXgX7zvTw0E
http://orbart.free.fr/index.php?Gallery=105 - Созданно на юнити


Сообщение отредактировал MaxUnityDev - Ср, 25 Апр 2012, 14:34
 
СообщениеВсем привет. помогите пожалуйста мне. У меня есть скрипт на оружия, часть я написал сам.

В скрипте не могу сделать чтобы правильно гильзы падали, они падают не в том месте, и партиклы при попадании в стены, тоже как не пытался не получается, хотел сделать чтобы по тегам допустим metal, wood и прочее.
После того как создал префаб плеера, и засунул туда рабочий вариан со сцены он вообще перестал стрелять по направлению. Я скину архив там 8 метров, будет время глянте пожалуйста.

Скачать исходник 8 метров.

Code
var totalBullets = 7;
var ReloadBullets = 7;
var clips = 5;
// var hitParticles : GameObject;
var force = 500.0;
var damage = 50.0;
var range = 1000.0;
var ReloadTime = 3;
var ReloadSound : AudioClip;
var FireSound : AudioClip;
var EmptySound : AudioClip;
private var reloading : boolean = false;
var emptyHull : Rigidbody;
var throwPos : Transform;
var rate : float = 0.1;
private var rate_time : float;

function Update()
{
   Fire();
     
   /*
   if (Input.GetButtonDown("MoveWeapon"))
   {
    animation.CrossFade("move");
   }
   else
   {
    animation.CrossFade("idle");
   }
   */
}

function Fire ()
{
   if (Input.GetButton("Fire1")  && !reloading  && Time.time > rate_time){
    rate_time = Time.time + rate;
      
      
      
    if(totalBullets > 0) {
       
     //animation.Play("startFire");
     //animation.Play("endFire");
     animation.Play("fire", PlayMode.StopAll);
     animation["fire"].speed = 15.0;
     FireOneShot ();
     // clone = Instantiate(explo, GameObject.Find("FireZone").transform.position, transform.rotation);
    }
    else
    {
     animation.CrossFade("idle");
    }
    if (totalBullets <=0)
    {
     if (EmptySound)
     {
      audio.PlayOneShot(EmptySound);
      animation.Play("chick");
     }
    }
   }
     
   if (Input.GetButtonDown("Reload") && !reloading)
   {
    Reload();
   }
}

function Reload()
{
   //if (reloading)
   //return;
   if(totalBullets <= ReloadBullets){
    if (clips >0)
    {
     reloading = true;
     audio.PlayOneShot(ReloadSound);
     //animation.Play("reload");
     animation.Play("reload", PlayMode.StopAll);
     animation["reload"].speed = 1;
     yield WaitForSeconds(ReloadTime);
     totalBullets = ReloadBullets;
     clips -=1;
     reloading = false;
    }else{
     if(totalBullets <= ReloadBullets){
      if (clips >0)
      {
       reloading = true;
       audio.PlayOneShot(ReloadSound);
       //animation.Play("reload");
       animation.Play("reload", PlayMode.StopAll);
       animation["reload"].speed = 1;
       yield WaitForSeconds(ReloadTime);
       totalBullets = ReloadBullets;
       clips -=1;
       reloading = false;
      }
     }
    }
   }
}

function FireOneShot ()
{
   if (emptyHull) {
    Instantiate(emptyHull.transform,throwPos.position,throwPos.rotation);
totalBullets = (totalBullets - 0);
   }
      var direction = transform.TransformDirection(Vector3.right);
      var hit : RaycastHit;
     
   // Did we hit anything?
   if (Physics.Raycast (transform.position, direction, hit, range))
   {
    // Apply a force to the rigidbody we hit
    if (hit.rigidbody)
    hit.rigidbody.AddForceAtPosition(force * direction, hit.point);
      
    // Send a damage message to the hit object
    hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
   }
   if (FireSound)
   {
    audio.PlayOneShot(FireSound);
   }
   totalBullets -=1;
}


замените в функции fire animation["fire"].speed = 15.0; на = 8.0; там глюк.

Добавлено (26.04.2012, 18:56)
---------------------------------------------
Все, разобрался сделал систему точнее переделал систему. Теперь у меня и дырки от пуль на стенах и на физ.объектах и партиклы и прочее. Тему пока не закрывать.


Автор - MaxUnityDev
Дата добавления - 26 Апр 2012 в 18:56
НиколайДата: Ср, 04 Июл 2012, 15:56 | Сообщение # 2
 
Сообщений: 385
Награды: 5
Репутация: 78
Статус: Offline
MaxUnityDev,поделишься своей новой системой оружия?

 
СообщениеMaxUnityDev,поделишься своей новой системой оружия?

Автор - Николай
Дата добавления - 04 Июл 2012 в 15:56
aklemenДата: Ср, 04 Июл 2012, 18:48 | Сообщение # 3
Нет аватара
 
Сообщений: 48
Награды: 0
Репутация: 21
Статус: Offline
Присоединяюсь к просьбе, пока все аналогичные системы что попадались, как то коряво работают или сложно настраиваются.
 
СообщениеПрисоединяюсь к просьбе, пока все аналогичные системы что попадались, как то коряво работают или сложно настраиваются.

Автор - aklemen
Дата добавления - 04 Июл 2012 в 18:48
icarosДата: Пн, 23 Сен 2013, 12:53 | Сообщение # 4
Нет аватара
 
Сообщений: 19
Награды: 0
Репутация: 0
Статус: Offline
Я тоже присоединяюсь к просьбе о новой системе
 
СообщениеЯ тоже присоединяюсь к просьбе о новой системе

Автор - icaros
Дата добавления - 23 Сен 2013 в 12:53
PRINCEДата: Пн, 23 Сен 2013, 19:30 | Сообщение # 5
 
Сообщений: 1871
Награды: 15
Репутация: 814
Статус: Offline
icaros, через год присоединился, посмотрел бы дату чтоле, ктото еще в 2016 присоединится
 
Сообщениеicaros, через год присоединился, посмотрел бы дату чтоле, ктото еще в 2016 присоединится

Автор - PRINCE
Дата добавления - 23 Сен 2013 в 19:30
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025