NGUI -> Create a New UI ->domyślne ustawienia -> Create Your UI. Pojawiają się nam anchor , panel. Dodajemy NGUI -> Create widget. Wybieramy atlas I font z dostępnych zasobów NGUI. Template -> button. Potwierdzamy dodanie. Następnie tworzymy nowy skrypt C# w którym deklarujemy zmienne
public UIPanel panel;
public UIButton przycisk;
public UILabel napis;
Następnie tworzymy pusty GameObjcet do którego przypisujemy napisany skrypt. Następnie do poszczególnych pól widocznych w Inspectorze przypisujemy rzeczywiste obiekty naszego NGUI. Label jest brany z przycisku.
Następnie tworzymy prywatną metode void ButtonClicked, w której wyświetlamy konsoli napis Klik. Zapisujemy zmiany. Następnie wybieramy button
W inspektorze pojawia się nam komponent UIButton Message (scripts). Do pola Target przypisjem nasz GameObject. Następnie w polu Function name wpisaliśmy nazwę naszej prywatnej metody.
Po uruchomieniu i kliknięciu przycisku w Consoli pojawia się nam napis KLIK. Następnie w skrypcie zadeklarowaliśmy zmianę tekstu na przycisku, z domyślnego button na zmienione.
Następnie tworzymy nowy przycisk, analogicznie jak opisaliśmy to wyżej. W skrypcie dodaliśmy kolejną ziemną UIPanel panel2. Następnie w metodzie void Start wyłączamy panel 2 funkcją NGUITools.SetActive(panel2.gameObject, false); W gameObject przypisujemy do slotu panel2 nowo utworzony panel.
Następnie w skrypcie piszemy kod na to, a by po kliknięciu przycisku 1 znikł, zaś drugi ma się pojawić.
Dzięki wczorajszym wskazówkom, NGUI stało się dla nas trochę bardziej przyjazne. Postanowiliśmy samodzielnie, bez tutoriali spróbować stworzyć jakieś przykładowe NGUI, które będzie pobierało i zapisywało dane.
Kod pisany szybko, więc nie ma pewnych zabezpieczeń, np. brak try-catch czy opcji tworzenia pliku dane.txt. Są też mieszane nazwy polskie i angielskie. Nazwy często nic nie mówią. Kod oczywiście jest pełen rozwiązań, które można było zrobić inaczej, lecz zależało nam przede wszystkim na poprawnym funkcjonowaniu naszego przykładowego NGUI. NGUI to pozwala na dodawanie osób do bazy (plik tekstowy, który musi być wcześniej ręcznie utworzony). Sprawdza czy wszystkie dane są wpisane. Można także odczytać zawartość tego pliku i w niezbyt elegancki sposób to wyświetlić.
Screeny z działania są poniżej. Kod źródłowy można znaleźć pod obrazkami.
Główne menu
Po kliknięciu ADD
Po niepodaniu kompletnych danych
Po podaniu kompletnych danych
Po kliknięciu BROWSE w głównym oknie
Kod:
using UnityEngine;
using System.Collections;
using System.IO;
public class nowy : MonoBehaviour {
public UIButton button1, button2,button3, button4, button5;
public UIPanel panel1, panel2, panel3, panel4;
public UIInput imie, nazwisko, wiek;
public UILabel nazwa, wczytane;
public string plik="dane.txt";
void Start () {
NGUITools.SetActive(panel2.gameObject,false);
NGUITools.SetActive(panel3.gameObject,false);
NGUITools.SetActive(panel4.gameObject,false);
}
private void Button1Clicked()
{
NGUITools.SetActive(panel1.gameObject,false);
NGUITools.SetActive(panel2.gameObject,true);
private void Save()
if (imie.text=="" || nazwisko.text=="" || wiek.text=="") nazwa.text="Nie podano kompletnu danych";
else
nazwa.text ="Dane poprawnie zapisane";
if (File.Exists(plik))
using (StreamWriter sw = new StreamWriter(plik, true))
sw.Write(imie.text);
sw.Write (";");
sw.Write(nazwisko.text);
sw.Write(wiek.text);
sw.WriteLine ();
NGUITools.SetActive(panel3.gameObject,true);
private void OK()
if (nazwa.text =="Dane poprawnie zapisane")
NGUITools.SetActive(panel1.gameObject,true);
imie.text="";
nazwisko.text="";
wiek.text="";
private void Load()
NGUITools.SetActive(panel4.gameObject,true);
using (StreamReader sr = new StreamReader(plik))
string [] dane;
while(sr.Peek() >0)
dane=sr.ReadLine().Split (';');
wczytane.text+=dane[0]+" ";
wczytane.text+=dane[1]+" ";
...
kogramad