Tematem dzisiejszego wpisu będą skrypty. Unity obsługuje 3 języki programowania: C# JavaScript i Boo. Ostatni język jest praktycznie nieużywany, ponieważ Jest on przestarzały i zalecany dla zaawansowanych programistów. Podczas kursu będę posługiwał się językiem C#. Dzisiaj chciałbym pokazać budowę skryptów i różnice pomiędzy Javą.
C#:
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
Pierwsze dwa wiersze to niezbędne odwołania do silnika. Po ich skasowaniu skrypt nie będzie działać. Najlepiej nie zmieniać pierwszej części skryptu.
W kolejnym wierszu definiujemy klasę skryptu, czyli jego nazwę. Pamiętaj by nazwa pliku była zawsze taka sama jak ta w skrypcie.
{ Klamra otwiera "ciało " programu. Właśnie w tej części będziemy pracować.
Język JavaScript tych zapisów nie posiada. Są one ukryte i automatycznie odczytywane w Unity.
C#
private int liczbaNaboi = 100;
public GameObject Lewy;
public Transform Prawy;
public float speed= 10;
Powyżej zamieściłem kilka zmiennych wykorzystanych przeze mnie w projekcie, nad którym będziemy pracować. Zmienne to określone wartości przykryte pod nazwą. Zapisujemy je tuż po klamerce otwierającej ciało programu.
Przykładowo private int LiczbaNaboi = 100; oznacza zmienną prywatną, czyli dostępną tylko w naszej klasie. Int to oznaczenie zmiennej liczb całkowitych. LiczbaNaboi to nazwa naszej zmiennej. = 100 to przypisana wartość. Pamiętaj przy definiowaniu zmiennych zawsze ich wartość musi pasować do ich typu, czyli do zmiennej typu float(liczby dziesiętne) nie możemy przypisać wartości testowej lub true/false.
Public oznacza zmienną publiczną, czyli taką, którą możemy zmieniać w inspektorze i do której mamy wolny dostęp.
private var liczbaNaboi : string = 100;
public var speed : float = 10;
Jak widać definiowanie zmiennych w JavaScript jest bardzo podobne a różni się tylko zmianą kolejności poprzez nadanie nazwy zmiennej na początku, dodaniu po znaku : typu zmiennej. Dodatkowo przy dodawaniu zmiennych należy nie zapominać o słowie var które występuje przed nazwą.
Zmienne typu GameObject, Transform lub float omówię w innych poradnikach na gotowych przykładach.
Dodatkowo należy pamiętać o zakończeniu definiowania zmiennych znakiem ; . Znaku ; używamy także na końcu każdego wiersza z poleceniem.
W obu językach mamy także możliwość zawarcia komentarzy. Komentarz to tekst, który nie będzie odczytywany przez silnik. Piszemy w nim np. podpowiedzi lub uwagi na przyszłość lub zamiast usuwać polecenie możemy go wstawić w komentarzu.
/*Mamy dwa rodzaje komentarzy
to jest komentarz dla wielu
wierszy zaczyna się znakiem /*
jest bardzo przydatny, gdy chcemy widzieć część kodu, ale nie chcemy by program go odczytywał
komentarz kończymy poprzez zamianę kolejności znaków, czyli poprzez */
//to jest komentarz jednowierszowy
// zaczynamy go dwoma ukośnikami //
Void Start () - (C#) / Function Start () - (JavaScript) Funkcja startowa. Wszystkie polecenia zawarte między {} zostaną wykonane na początku skryptu. Służy głównie do jednorazowego przypisania wartości lub zainicjowania funkcji.
Void Update () - (C#) / Function Start () - (JavaScript) Funkcja Ciągła. Polecenia zawarte miedzy {} są wykonywane, co klatkę.
Pamiętaj o kończeniu funkcji klamrami {} . Upewnij się, że skrypt zawiera ich parzystą liczbę.
Teraz napiszemy prosty skrypt, który pomoże wam zrozumieć podstawy programowania.
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
public float Liczba = 100;
private string Tekst = "Liczba wynosi";
void Start()
{
print(Tekst); // Funkcja wypisze tekst w konsoli
}
void Update()
{
Debug.Log(Liczba); /* Alternatywne polecenie
do polecenia print
*/
}
}
Skrypt dodajemy do dowolnego obiektu w grze( Możecie utworzyć pusty obiekt poprzez zakładkę GameObject>>Create Empty ) poprzez przeciągnięcie go z okna project na nazwę obiektu w oknie Hierarchy lub poprzez naciśniecie na obiekt wybranie AddComponent>> Scripts>> Nazwa skryptu.
Jak widzicie po włączeniu gry (przycisk Play w górnej części okna) i wyłączeniu ( tym samym przyciskiem) w oknie Console widzimy wyświetlającą się liczbę 100 a na początku nasz tekst. W przypadku skryptu z wieloma powtarzającymi się komendami polecam zaznaczyć opcję Collapse, która nam wyświetla komunikat tylko raz, dzięki czemu zamiast 100 takich samych komunikatów mamy jeden z liczbą jego przesłań. Dodatkowo dzięki temu, iż zmienna Liczba jest zmienną publiczną po wybraniu obiektu, do którego przypisany jest skrypt w oknie inspektor wyświetla nam się nazwa Liczba i obok niej okno, w które możemy wstawić dowolną liczbę.
Na dzisiaj to tyle, dokładny opis poleceń i ich działania znajdziecie w kolejnych wpisach. W razie pytań piszcie komentarze.
5 Comments
Recommended Comments