Инвентарь, стек, дроп - Форум - Все для Unity3d

Все для Unity3d> Инвентарь, стек, дроп - Форум>
Страница 1 из 11
Форум » Unity » Вопросы » Инвентарь, стек, дроп
Инвентарь, стек, дроп
ZayRoxДата: Воскресенье, 26.06.2016, 15:20 | Сообщение # 1
Новый писатель
Группа: Пользователи
Сообщений: 1
Статус: Offline
Мужики, нужна ваша помощь...
проблема в том когда у меня в инвентаре 5 аптечек и я их все выбрасываю, а потом поднимаю обратно, то уже не 5 аптечек а 1
как решить проблему? (если выбрасывать на кнопу 'G' то они по одной выбрасывались, если через инвентарь в пустое окно то выбрасывалась только одна)

------------------------------------------------------------------------------

---------------------------------------------------------------------------


Всём добра :)

Сообщение отредактировал ZayRox - Воскресенье, 26.06.2016, 15:24
 
OkAyДата: Воскресенье, 26.06.2016, 15:24 | Сообщение # 2
Новый писатель
Группа: Пользователи
Сообщений: 35
Статус: Offline
так ты должен передать тому объекту, который выбрасывается, кол-во этого айтема, что бы потом, когда подбираешь знать сколько выбросил
 
ZayRoxДата: Воскресенье, 26.06.2016, 15:44 | Сообщение # 3
Новый писатель
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата OkAy ()
так ты должен передать тому объекту, который выбрасывается, кол-во этого айтема, что бы потом, когда подбираешь знать сколько выбросил
вот, но я не знаю как правильно сделать это


Всём добра :)
 
OkAyДата: Воскресенье, 26.06.2016, 17:07 | Сообщение # 4
Новый писатель
Группа: Пользователи
Сообщений: 35
Статус: Offline
Покажи как у тебя выглядит функция DropItem()
 
ZayRoxДата: Воскресенье, 26.06.2016, 18:02 | Сообщение # 5
Новый писатель
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата OkAy ()
Покажи к[img]file:///D:/icon_inventory/da6c4f0b918fff012e00dcdfd7cd2d43.png[/img]ак у тебя выглядит функция DropItem()[img]file:///D:/icon_inventory/da6c4f0b918fff012e00dcdfd7cd2d43.png[/img]

------------------------------------------------------

------------------------------------------------------

Добавлено (26.06.2016, 18:02)
---------------------------------------------

Цитата OkAy ()
Покажи как у тебя выглядит функция DropItem()
if(Input.GetButtonDown("DropItem"))
{
if(hotbar.Inv[SHI,0] != null)
{
DropItem(hotbar.Inv[SHI,0].ID,1,hand,new Vector3(0,0,3));
RemoveSpecificItem(hotbar,SHI,0,1);
}
}
}

-----------------------------------------------------------------------------------------------
if(open) // Дроп вещей через окно инвентаря
{
if(!inventoryWindow.Contains(Event.current.mousePosition) && !hotbarRect.Contains(Event.current.mousePosition))
{
if(SelectedItem != null && Event.current.button == 1)
{
DropItem(SelectedItem.ID,SelectedItem.CurrentStackSize,hand,new Vector3(0,0,3));
SelectedItem = null;
}
}
-----------------------------------------------------------------------------------------------
public void DropItem(int id,int count,Transform t,Vector3 velocity)
{
ItemStack item = items.GetItem(id);
item.CurrentStackSize = count;
item = (ItemStack)GameObject.Instantiate(item, t.position, t.rotation);
item.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
item.GetComponent<Rigidbody>().velocity = transform.TransformDirection (velocity);
item.transform.parent = null;
}


Всём добра :)

Сообщение отредактировал ZayRox - Воскресенье, 26.06.2016, 17:39
 
OkAyДата: Понедельник, 27.06.2016, 09:10 | Сообщение # 6
Новый писатель
Группа: Пользователи
Сообщений: 35
Статус: Offline

Код
public void DropItem(int id,int count,Transform t,Vector3 velocity)
{
    ItemStack item = items.GetItem(id);
    item.CurrentStackSize = count;
    item = (ItemStack)GameObject.Instantiate(item, t.position, t.rotation);
    item.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
    item.GetComponent<Rigidbody>().velocity = transform.TransformDirection (velocity);
    item.transform.parent = null;
}
 Попробуй вот так:

Код
public void DropItem(int id,int count,Transform t,Vector3 velocity)
{
    inst_item = GameObject.Instantiate(item, t.position, t.rotation) as GameObject;
    inst_item.AddComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
    inst_item.GetComponent<Rigidbody>().velocity = transform.TransformDirection (velocity);
    inst_item.transform.parent = null;
    inst_item.AddComponent<ItemStack>() = items.GetItem(id);
    inst_item.GetComponent<ItemStack>().CurrentStackSize = count;
}
 
ZayRoxДата: Понедельник, 27.06.2016, 11:12 | Сообщение # 7
Новый писатель
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата OkAy ()
Попробуй вот так
есть, супер, но я только вставил в код это ))

item.GetComponent<ItemStack>().CurrentStackSize = count;

Мужик ты супер, спасибо тебе :)
тепер заработало))


Всём добра :)

Сообщение отредактировал ZayRox - Понедельник, 27.06.2016, 11:18
 
OkAyДата: Среда, 29.06.2016, 19:00 | Сообщение # 8
Новый писатель
Группа: Пользователи
Сообщений: 35
Статус: Offline
Та не за что, обращайся. Помогу советом если что
 
Форум » Unity » Вопросы » Инвентарь, стек, дроп
Страница 1 из 11
Поиск:
Свернуть
Развернуть
Необходима авторизация
0
ТОП-5 САЙТА
НОВЫЕ ИГРЫ
ГОРЯЧИЕ ТЕМЫ
СЛУЧАЙНЫЕ ФАЙЛЫ