У меня есть скажем так бд для оружия реализованная через ScriptableObject
Код
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "База данных оружия", menuName = "Weapon/db", order = 1)]
public class WeaponDataBase : ScriptableObject
{
public List<PistolWeapon> listpw = new List<PistolWeapon>();
public List<Automato> listAutomato = new List<Automato>();
public List<Granade> listgrenade = new List<Granade>();
}
вот скрин самой бд
и есть скрипт где я храню эту всю бд как бы на сцене в виде контроллера(который заполняется тогда когда сцена запущенна)
Код
public class CurentDataBase : MonoBehaviour
{
public WeaponDataBase WDB;
public List<Weapon> listWeapon = new List<Weapon>();
private void Awake()
{
add_to_total_listPistol(WDB.listpw);
add_to_total_listAutomato(WDB.listAutomato);
add_to_total_listGrenade(WDB.listgrenade);
}
void add_to_total_listPistol<T>(List<T> itemlisti) where T : Weapon // добавление предметов в колекцию без приведения типа
{
foreach (var cur_it in itemlisti)
{
listWeapon.Add(cur_it);
}
}
void add_to_total_listAutomato<T>(List<T> itemlisti) where T : Weapon // добавление предметов в колекцию без приведения типа
{
foreach (var cur_it in itemlisti)
{
listWeapon.Add(cur_it);
}
}
void add_to_total_listGrenade<T>(List<T> itemlisti) where T : Weapon // добавление предметов в колекцию без приведения типа
{
foreach (var cur_it in itemlisti)
{
listWeapon.Add(cur_it);
}
}
}
скрин так же прикрепил
Вопрос вот в чем
Как можно реализовать смену оружия?
Что бы например при нажатии на 1(Alpha1 в юньке) например брался PKM тот же, а при нажатии на 2(Alpha2) например глок и т.д