Skip navigation

Scriptek áttekintése

Scriptek felépítése

A Unity-ben ha saját scriptet szeretnénk készíteni, akkor ahhoz egy C# olszályt írunk meg. Minden olyan script, amit Komponens ként szeretnénk használni a "MonoBehaviour" őszosztályból kell, hogy származzon. Ez azt jelenti, hogy vannak benne bizonyos szolgáltatások, amiket felhasználhatunk, vagy kiegészíthetünk, hogy a komponens az általunk elvárt viselkedést produkálja.

Egy alapértelmezetten létrehozott script az alábbi módon néz ki.

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

public class PlayerController : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

A scriptekben az osztályon belül különböző függvények vanak. Ezeket a függvényket a Unity adott helyzetekben meghívha, így ezen függvények megírásával tudjuk elkészíteni a vezérlőnket. A fontosabb függvények:

  • Start(): Az első képkocka megjelenítése előtt lefut egyszer. Előkészítő kódot szoktunk bele írni.
  • Update(): Minden képkocka megjelenítése előtt egyszer lefut. A korábbi logika alapján itt lehet módosítani a játéklogikán.
  • FixedUpdate(): Hasonló az Update-hez, de képkockáktól függetlenül másodpercenként 40-szer lefut. Fontos, ha olyan funkciók akarunk, ami független a számítógép sebességétől.

Komponensek paraméterei

Ahogy korábban is szó volt róla, a Unity-ben elkészített scriptek valójában testreszabott komponensek, amik egy játékobjektumot vezérelnek.

Mint minden más játékobjektumnak, a scripteknek is lehetnek paramétereik, amiket az Editor-ban beállíthatunk. Ilyen paraméterket úgy tudunk létrehozni, hogy az osztály-ben létrehozunk publikus adattagokat.

public class PlayerController : MonoBehaviour
{
    public float speed = 1.0f;      // Játékos sebessége
    public float jumpForce = 1.0f;  // Ugrás ereje

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

A térehozott publikus adatokat utána az Inspector-ban meg lehet nézni, és módostani is lehet.

Scriptek paraméterei

Programok fordítása és hibakeresés

Ha egy Script írásával végeztünk, akkor azt le kell fordítani, hogy működhessen a játékunkban. Ehhez annyit kell tenni, hogy a szerkesztett file-t elmentjük, és visszamegyünk a Unity Editor-ba. Ilyenkor az Editor minden módosított filet újraértelmez.

Ha a script-ünkben valami hivba lenne, akkor a játékot nem lehet elindítani, amíg a hibát ki nem javítjuk. A hibákról a console ablakban kapunk értesítést, ami alapértelmezetten a Projekt ablakkal együtt a képernyő alján van, csak a projekt ablak mögötti fülön.

Console ablak egy hibával

Érdemes arra is odafigyelni, hogy mit ír ki a konzol, mert segít megtalálni a hibákat. A fenti üzenet azt jelszi, hogy a PlayerController.cs file 13 során van valami probléma. Ez érthető is, mert az alábbi programot írtam be, aminek a 13. sora valóban szabálytalan.

Hibás programkód