Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Co tu jest źle


pablos11

Rekomendowane odpowiedzi

Opublikowano
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ekwipunek : MonoBehaviour {
	public int itemsInRow = 3;
	public int buttonWidth = 50;
	public int buttonHeight = 50;
	public int buttonMargin = 10;
	public Rect inventoryPosition = new Rect(20, 20, 0, 0);
	private List<ItemAbstract> itemsList = new List<ItemAbstract> ();
	private bool openInventory;
	private Staty ps;
	private int i = 0;
	private int j = 0;
	void Start() 
	{
		openInventory = false;
		ps = gameObject.GetComponent<Staty> ();
		inventoryPosition = new Rect (inventoryPosition.x, inventoryPosition.y, ((itemsInRow * buttonWidth) + ((itemsInRow + 1) * buttonMargin)), ((itemsInRow * buttonHeight) + ((itemsInRow + 1) * buttonMargin)));
	}
	void Update()
	{
		if (Input.GetKeyDown (KeyCode.I)) {
			openInventory = !openInventory;
		}
	}
	public void addItem(ItemAbstract item)
	{
		itemsList.Add (item);
	}
	void OnGUI()
	{
		if (openInventory) {
			int numerOfItems = itemsList.Count;
			int rows = Mathf.CeilToInt(numerOfItems / itemsInRow) + 1;
			
			GUILayout.BeginArea (inventoryPosition);
			for( i = 0 ; i < rows ; i++) {
				for( j = 0 ; j < itemsInRow ; j++) {
					if((i * itemsInRow) + j < numerOfItems) {
						if (GUI.Button(new Rect((buttonMargin + buttonMargin * j + buttonWidth * j),
						                        (buttonMargin + buttonMargin * i + buttonHeight * i),
						                        buttonWidth, 
						                        buttonHeight), itemsList[(i * itemsInRow) + j].getItemIcon())) {
							bool disposable = itemsList[(i * itemsInRow) + j].execute(ps);
							if(disposable) {
								itemsList.RemoveAt((i * itemsInRow) + j);
							}
							
						}
					} else {
						if (GUI.Button(new Rect((buttonMargin + buttonMargin * j + buttonWidth * j),
						                        (buttonMargin + buttonMargin * i + buttonHeight * i),
						                        buttonWidth, 
						                        buttonHeight), "")) {
							Debug.Log("Eq otwarte");
						}
					}
				}
			}
			GUILayout.EndArea ();
		}
	}
	if (GUI.Button(new Rect((buttonMargin + buttonMargin * j + buttonWidth * j), (buttonMargin + buttonMargin * i + buttonHeight * i), buttonWidth, buttonHeight), itemsList[(i * itemsInRow) + j].getItemIcon())) 
	{
		bool disposable = itemsList[(i * itemsInRow) + j].execute(ps);
		if(disposable)
		{
			itemsList.RemoveAt((i * itemsInRow) + j);
		}
	}
}

Unity rzuca się o ( i ) w bloku otwierania EQ, ale nie wiem o co może mu chodzić ilość nawiasów się zgadza, nie ma za dużo i za mało, chyba że przeoczyłem istotny szczegół

TEMAT


 


Opublikowano

A co to za if luzem? W klasie możesz mieć tylko pola, właściwości i metody.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Przecież możesz od razu ustawić bool na false:

private bool openInventory = false;

2cf6pe0.jpg


"Hmm jak by to powiedzieć... Moje pierwsze wrażenie o grupie... Nie lubię was..." - Kakashi


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...