J'ai ce problème, que je dessine un nouveau Rect avec une interface graphique: il dessine seulement maintenant sur l'écran. Ce que je veux faire est de faire de ce dessin un enfant d'un objet, donc je peux le cacher avec SetActive(false)
. Ce sera uniquement disponible lorsque les joueurs feront une pause et ouvriront l'inventaire. Le jeu est 2D pour Android.Comment créer une interface utilisateur graphique Rect enfant d'un objet?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Inventory : MonoBehaviour
{
public int SlotsX, SlotsY;
public GUISkin Skin;
public List<Item> inventory = new List<Item>();
public List<Item> slots = new List<Item>();
private ItemDatabase database;
void Start()
{
for (int i = 0; i < (SlotsX * SlotsY); i++)
{
slots.Add(new Item());
}
database = GameObject.FindGameObjectWithTag("Item Database").GetComponent<ItemDatabase>();
inventory.Add(database.Items[0]);
inventory.Add(database.Items[1]);
inventory.Add(database.Items[3]);
inventory.Add(database.Items[4]);
inventory.Add(database.Items[5]);
inventory.Add(database.Items[6]);
}
void OnGUI()
{
GUI.skin = Skin;
DrawInventory();
for (int i = 0; i < inventory.Count; i++)
{
GUI.Label(new Rect(10, i * 40, 200, 50), inventory[i].itemName);
}
}
void DrawInventory()
{
for (int x = 0; x < SlotsX; x++)
{
for (int y = 0; y < SlotsY; y++)
{
GUI.Box(new Rect(x * 180, y * 180, 160, 160), "", Skin.GetStyle("Slot"));
}
}
}
}
Arrêtez d'utiliser OnGui et utilisez la [nouvelle 4.6 UI] (https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/the-new-ui) à la place. – Draco18s