Skocz do zawartości

Unity With Sebulec

  • wpisy
    6
  • komentarzy
    12
  • wyświetleń
    3037

Co i Jak? Cz. 3 Podstawy skryptów


Sebulec

864 wyświetleń

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 komentarzy


Rekomendowane komentarze

Powiem tak, fajne te wpisy, ale krótkie. Serio, piszesz i tak dla forumowej niszy więc nie bój się walnąć nawet trzy razy więcej rzeczy na raz niż jest powyżej :). Taka sugestia, pracu dalej :).

  • Upvote 2
Link do komentarza

Witam. Dzięki za opinie, co do długości pewnie będą dłuższe wpisy, ale to wszystko zależy od tematu. Jak znajdę czas to w weekend opublikuję wpis o koncepcie gry i od czego zacząć nasz projekt. Jeśli chodzi o JS to nie chce pisać w obu językach bo są to zmiany kosmetyczne a zajmują dużo czasu. Sam uczyłem się C# i polubiłem ten język. Jak znajdę czas to poza wpisami co do kursu "Planet Deffender" może zacznę sporadycznie wstawiać wideotutoriale.

Link do komentarza
Gość
Dodaj komentarz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Maksymalna ilość emotikon wynosi 75.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...