Инвентарь - Форум Игроделов
Пн, 06 Май 2024, 03:13 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » DECAL, GUI, HUD » Инвентарь
Инвентарь
СкептикДата: Сб, 17 Июл 2010, 16:47 | Сообщение # 1
Мыслитель
 
Сообщений: 5860
Награды: 48
Репутация: 1731
Статус: Offline
Автор: Alexwilds

Пример инвентаря, который можно использовать при создании РПГ.


Демонстрация

Скачать паккадж:
1,58 Мб
Версия с драг-дропом:
1,35 Мб

Скрипт для извлечения предмета из инвентаря:

Code
function OnGUI() {   

     var texToUse : Texture2D;   
     var currentInventoryItem : InventoryItem;   

      //Ïåðåõîä ÷åðåç êàæäóþ ñòðîêó   
      for( var i = 0; i < inventory.length; i ++ )   
      {   
          // è êàæäûé ñòîëáåö   
          for( var k = 0; k < inventory[i].length; k ++ )   
          {   
             texToUse = null;   
             currentInventoryItem = inventory[i][k];   
                
              //Åñëè åñòü ïóíêò â I-é ñòðîêè è K-ãî ñòîëáöà, íàðèñîâàòü   
              if( inventory[i][k] != null )   
              {   
                  texToUse = currentInventoryItem.texRepresentation;   
              }   
              
           var it = GUI.Button( new Rect( offSet.x+k*(iconWidthHeight+spacing), offSet.y+i*(iconWidthHeight+spacing), iconWidthHeight, iconWidthHeight ), texToUse );   
              GUI.Button( new Rect( offSet.x+k*(iconWidthHeight+spacing), offSet.y+i*(iconWidthHeight+spacing), iconWidthHeight, iconWidthHeight ), texToUse );   
           var w : int = 0;   
             var h : int = 0;   
      if ((it) && (currentInventoryItem != null))   
           {   
      currentInventoryItem.texRepresentation = null;   
      inventory[i][k] = null;   
           //i   
              //That is the magic of droping objects from inventory   
              if(texToUse == shieldtex) {   
                 Instantiate(shieldo,transform.position,transform.rotation);   
                 }   
                    
              if(texToUse == swordtex) {   
                 Instantiate(swordo,transform.position,transform.rotation);   
              }   
                 
              //òóò áóäåò äðîï   
           Debug.Log("YES!!!!!!!!!!!!!!!!!!!");   
           }   
          }   
      }   
}

Скрипт для определения позиции спауна извлекаемого оружия, аттачить к ГГ

Добавлено (17.07.2010, 16:47)
---------------------------------------------
Альтернативная система.
Автор: Xeno360

Работающая система инвентаря. Содержит 3 скрипта, необходимую графику и тестовую сцену. ИМХО, попроще предыдущей, но зато и проще разобраться.

Демонстрация

Скачать проект:
1,05 Мб


Фанат игр Max Payne и Fahrenheit.
 
СообщениеАвтор: Alexwilds

Пример инвентаря, который можно использовать при создании РПГ.


Демонстрация

Скачать паккадж:
1,58 Мб
Версия с драг-дропом:
1,35 Мб

Скрипт для извлечения предмета из инвентаря:

Code
function OnGUI() {   

     var texToUse : Texture2D;   
     var currentInventoryItem : InventoryItem;   

      //Ïåðåõîä ÷åðåç êàæäóþ ñòðîêó   
      for( var i = 0; i < inventory.length; i ++ )   
      {   
          // è êàæäûé ñòîëáåö   
          for( var k = 0; k < inventory[i].length; k ++ )   
          {   
             texToUse = null;   
             currentInventoryItem = inventory[i][k];   
                
              //Åñëè åñòü ïóíêò â I-é ñòðîêè è K-ãî ñòîëáöà, íàðèñîâàòü   
              if( inventory[i][k] != null )   
              {   
                  texToUse = currentInventoryItem.texRepresentation;   
              }   
              
           var it = GUI.Button( new Rect( offSet.x+k*(iconWidthHeight+spacing), offSet.y+i*(iconWidthHeight+spacing), iconWidthHeight, iconWidthHeight ), texToUse );   
              GUI.Button( new Rect( offSet.x+k*(iconWidthHeight+spacing), offSet.y+i*(iconWidthHeight+spacing), iconWidthHeight, iconWidthHeight ), texToUse );   
           var w : int = 0;   
             var h : int = 0;   
      if ((it) && (currentInventoryItem != null))   
           {   
      currentInventoryItem.texRepresentation = null;   
      inventory[i][k] = null;   
           //i   
              //That is the magic of droping objects from inventory   
              if(texToUse == shieldtex) {   
                 Instantiate(shieldo,transform.position,transform.rotation);   
                 }   
                    
              if(texToUse == swordtex) {   
                 Instantiate(swordo,transform.position,transform.rotation);   
              }   
                 
              //òóò áóäåò äðîï   
           Debug.Log("YES!!!!!!!!!!!!!!!!!!!");   
           }   
          }   
      }   
}

Скрипт для определения позиции спауна извлекаемого оружия, аттачить к ГГ

Добавлено (17.07.2010, 16:47)
---------------------------------------------
Альтернативная система.
Автор: Xeno360

Работающая система инвентаря. Содержит 3 скрипта, необходимую графику и тестовую сцену. ИМХО, попроще предыдущей, но зато и проще разобраться.

Демонстрация

Скачать проект:
1,05 Мб


Автор - Скептик
Дата добавления - 17 Июл 2010 в 16:47
elgnerДата: Пн, 25 Ноя 2013, 23:02 | Сообщение # 2
Нет аватара
 
Сообщений: 7
Награды: 0
Репутация: 0
Статус: Offline
Не пойму как вообще работает система инвентаря.. кабы я писал делал list<> вообщем ник чему так и не дошел. В итоге скачал готовый скрипт а там все ячейки(массив) идут с texture2d а как туда запихать gameObject что бы в ячейке хранилась не картинка а сам объект? Или я не правильно понимаю?
 
СообщениеНе пойму как вообще работает система инвентаря.. кабы я писал делал list<> вообщем ник чему так и не дошел. В итоге скачал готовый скрипт а там все ячейки(массив) идут с texture2d а как туда запихать gameObject что бы в ячейке хранилась не картинка а сам объект? Или я не правильно понимаю?

Автор - elgner
Дата добавления - 25 Ноя 2013 в 23:02
Форум Игроделов » UNITY3D » DECAL, GUI, HUD » Инвентарь
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024