Суббота, 23 Ноября 2024, 22:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
XperДата: Суббота, 16 Марта 2019, 11:58 | Сообщение # 1 | Тема: Создание объекта
уже был
Сейчас нет на сайте
У меня есть персонаж у него есть рука
я хочу сделать так что бы при нажатии на кнопку он якобы брал оружие в эту руку
Код

if (Input.GetKeyDown(KeyCode.Alpha1) && selWeapon != 1)
        {
            selWeapon = 1;
            objWeapon = Instantiate(curweapon.prefab, Hard.transform.position, Hard.transform.rotation);
            objWeapon.transform.parent = Hard;
            curweapon = objWeapon.GetComponent<Weapon>();
        }

он создает оружие в руке и является его дочерним объектом
но тип создается не так как нужно

и встает такой вопрос
как сделать так что бы он держал его правильно??
Не знаю просто через что это реализовать


Сообщение отредактировал Xper - Суббота, 16 Марта 2019, 11:58
XperДата: Понедельник, 11 Марта 2019, 19:19 | Сообщение # 2 | Тема: Смена оружия в бд
уже был
Сейчас нет на сайте
У меня есть скажем так бд для оружия реализованная через 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) например глок и т.д
  • Страница 1 из 1
  • 1
Поиск:

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