Четверг, 28 Марта 2024, 20:08

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » еще проблема с get component (Смена оружия)
еще проблема с get component
valera884Дата: Среда, 19 Ноября 2014, 15:32 | Сообщение # 1
был не раз
Сейчас нет на сайте
Пишу скрипт на смену оружия на C#, а тут такая проблема, что скрипты на объекте отключаются, а включаться не хотят.
Вот код
Код
using UnityEngine;
using System.Collections;
   
public class SwitchWeapon : MonoBehaviour {
     public GameObject gun1;
     public GameObject gun2;
     private int curWeapon;
  SmgController pp = GameObject.Find("1st Person Smg").GetComponent <SmgController>();
  PistolController tt = GameObject.Find("Pistol 1_st person").GetComponent <PistolController>();
     // Use this for initialization
     void Start ()  
     {
       
     }
   
       
     // Update is called once per frame
     void Update ()  
     {
         if(Input.GetAxis("Mouse ScrollWheel")<0)
         {
             curWeapon -= 1;
             StartCoroutine(Switch());
         }
         if(Input.GetAxis("Mouse ScrollWheel")>0)
         {
             curWeapon += 1;
             StartCoroutine(Switch());
         }
         if(curWeapon>2)
         {
             curWeapon = 1;
             StartCoroutine(Switch());
         }
         if(curWeapon<1)
         {
             curWeapon = 2;
             StartCoroutine(Switch());
         }
         if(Input.GetKeyDown("1"))
         {
             curWeapon = 1;
             StartCoroutine(Switch());
         }
         if(Input.GetKeyDown("2"))
         {
             curWeapon = 2;
             StartCoroutine(Switch());
         }
     }
     void Null()
     {
         gun1.SetActive(false);
         gun2.SetActive(false);
     }
     IEnumerator Switch()
     {
         if(curWeapon == 1)
         {
    SmgController pp = GameObject.Find("1st Person Smg").GetComponent <SmgController>();
    pp.enabled = false;
       gun2.animation.Play ("UnArm");
             yield return new WaitForSeconds(1f);
             Null();
             gun1.SetActive(true);
    tt.enabled = true;
         }
         if(curWeapon == 2)
         {
    PistolController tt = GameObject.Find("Pistol 1_st person").GetComponent <PistolController>();
    tt.enabled = false;
    gun1.animation.Play ("UnArm");
             yield return new WaitForSeconds(0.7f);
             Null();
             gun2.SetActive(true);
    pp.enabled = true;
         }
  }
         }
berilДата: Среда, 19 Ноября 2014, 18:57 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
какие ошибки выдает?



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
ArtanielДата: Четверг, 20 Ноября 2014, 15:58 | Сообщение # 3
частый гость
Сейчас нет на сайте
Смутил кусок
Код

          if(Input.GetAxis("Mouse ScrollWheel")>0)  
          {  
              curWeapon += 1;  
              StartCoroutine(Switch());  
          }  
          if(curWeapon>2)  
          {  
              curWeapon = 1;  
              StartCoroutine(Switch());  
          }

Вы сначала запускаете корутин потому что скроллер провернулся, потом сразу же запускаете еще один такой же потому что curWeapon перевалил за 2.
Не могут ли они друг друга нейтрализовать?
Аналогичная ситуация для проворота с 1 вниз, должен дважды запуститься.
valera884Дата: Четверг, 20 Ноября 2014, 16:55 | Сообщение # 4
был не раз
Сейчас нет на сайте
нет, все проблема в

PistolController tt = GameObject.Find("Pistol 1_st person").GetComponent <PistolController>();
SmgController pp = GameObject.Find("1st Person Smg").GetComponent <SmgController>();

мне нужно нашаманить чтоб они не конфликтовали в 1 условии сразу.
berilДата: Четверг, 20 Ноября 2014, 19:20 | Сообщение # 5
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Если скрипт отключается значит ошибки. Текст ошибок в студию



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
allodsДата: Четверг, 20 Ноября 2014, 22:09 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Скорее всего он где то этот скрипт отключает
valera884Дата: Суббота, 22 Ноября 2014, 17:00 | Сообщение # 7
был не раз
Сейчас нет на сайте
ясен пень этот скрипт должен включать и выключать основные скрипты оружия. Код то читайте, я максимально понятным его написал

Добавлено (22 ноября 2014, 17:00)
---------------------------------------------
Спс опять же за то что я опять сам во всем разобрался.
Проблема была в том что я местами строчки перепутал, знатоки фиговы =)
А ведь было время когда я хотел набрать тут команду меня с позором выкинули из форума и забанили 4 аккаунта(

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » еще проблема с get component (Смена оружия)
  • Страница 1 из 1
  • 1
Поиск:

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