создаём сцену, в ней камеру. на камеру вешаем этот скрипт. в инспекторе в Size указываем, например, 25.
using UnityEngine;
using System.Collections;
public class Inventory : MonoBehaviour
{
public int[] items;
public int mouseSlot;
public Lib lib;
void OnGUI()
{
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 3; y++)
{
if (GUI.Button(new Rect(x * 100, y * 100, 100, 100), lib.Images[items[y * 5 + x]]))
{
int loc = items[y * 5 + x];
items[y * 5 + x] = mouseSlot;
mouseSlot = loc;
}
}
}
GUI.DrawTexture(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 100), lib.Images[mouseSlot]);
}
}
элемент 0 - это первая ячейка. если мы туда введём цифру 3, то там будет находиться объект 3(фото ниже)
далее, создаём пустой объект. на него вешаем скрипт:
using UnityEngine;
using System.Collections;
public class Lib : MonoBehaviour
{
public string[] Names;
public Texture[] Images;
}
настраиваем в инспекторе всё так:
позже, в инспекторе у нашей камеры в строке Lib указываем пустой объект со скриптом lib. система инвентаря готова, теперь вопрос:
как сделать, чтобы, если игрок зашёл в триггер, то первый слот в инвентаре становился занят щитом, например?