Пятница, 29 Марта 2024, 09:26

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по меню оружия и циклу for (Посоны, подскажите как ограничить выбор одной и той же пушки)
Вопрос по меню оружия и циклу for
gtavcmanДата: Четверг, 12 Февраля 2015, 20:43 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте.
Подскажите пожалуйста как ограничить выбор одного элемента цикла при общем кол-ве выбора элементов 4.

Есть меню выбора оружия, нужно сделать выбор четырех пушек, что бы каждую можно было выбрать только один раз.
Сейчас одну и ту же пушку в цикле for можно выбрать все четыре раза cry

Я думаю надо сделать какую то проверку на "выбранность", но как это должно выглядеть в голову не приходит, да и может тут что-то другое нужно...


Скрипт:
Код
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;

public class WeaponMenuV2 : MonoBehaviour {
     public int _Id = 0;
     public string weapString;

     public int CountWeapon = 2;

     public bool showWeaponMenu;
     public GUISkin guiSKin;

     public List<TypeWeaponSelectNew> _TypeWeaponSelect = new List<TypeWeaponSelectNew>(); //Массив с оружием для выбора.
      
     public List<int> SelectIdWeapon = new List<int>(); //Массив Айди выбранного оружия.
     public List<string> SelectWeap = new List<string>();
     
     void Start()
     {
         Debug.Log(PlayerPrefs.GetInt("weap1"));
         PlayerPrefs.DeleteAll();
     }
     void OnGUI()
     {
         GUI.skin = guiSKin;
         if (showWeaponMenu)
         {
             GUI.Box(new Rect(Screen.width / 2 - 300, Screen.height / 2 - 200, 600, 400), "", GUI.skin.GetStyle("window"));
             GUI.Box(new Rect(Screen.width / 2 - 512, Screen.height / 2 - 200, 212, 400), "", GUI.skin.GetStyle("label"));
              
             //Список оружия
             if (_TypeWeaponSelect != null)
             {
                 for (int i = 0; _TypeWeaponSelect.Count > i; i++)
                 {
                     if (GUI.Button(new Rect(Screen.width / 2 - 480, Screen.height / 2 - 180 + (i * 20), 150, 15), _TypeWeaponSelect[i].WeaponName))
                     {
                         _Id = _TypeWeaponSelect[i].WeaponId;
                         weapString = _TypeWeaponSelect[i].stringTWS;                      
                     }
                 }
                  
             }

             //Выбор оружия
             if (_Id != 0)
             {
                 if (CountWeapon != 0)
                 {
                     if (GUI.Button(new Rect(Screen.width / 2 + 140, Screen.height / 2 + 155, 150, 35), "Выбрать"))
                     {
                         CountWeapon--;
                         SelectIdWeapon.Add(_Id);
                       //SelectWeap.Add(weapString);
                       //weapString = ("");
                         _Id = 0;
                          
                         for (int G = 0; SelectIdWeapon.Count >= G; G++)
                         {
                             PlayerPrefs.SetInt(weapString, SelectIdWeapon[G]);
                             Debug.Log("Запись id выбранного оружия" + G.ToString() + " id" + SelectIdWeapon[G].ToString());
                         }
                     }
                 }
                 else if (PlayerPrefs.GetInt("weap1") != 0)
                 {
                     GUI.Label(new Rect(250, 50, 150, 50), "Места нету");
                     if (GUI.Button(new Rect(150, 10, 150, 50), "Закончить выбор"))
                     {
                          
                     }
                 }  
             }
         }
     }
}

[Serializable]
public class TypeWeaponSelectNew
{
     public int WeaponId; //Айди оружия.
     public string stringTWS;

     public string WeaponName; //Имя оружия.
     public string SpeedFire; //Скорострельность.
     public string AmmoCount; //кол-во патронов.
      
}


Веду разработку проекта:

Project [War Tanks]
allodsДата: Пятница, 13 Февраля 2015, 17:37 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
public bool[] guns; //поставить длину 4

при выборе пушки
guns[CountWeapon ]=true;

соответственно проверяй if(!guns[CountWeapon ]) то выполняй там свое действие
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по меню оружия и циклу for (Посоны, подскажите как ограничить выбор одной и той же пушки)
  • Страница 1 из 1
  • 1
Поиск:

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