Manuál: https://docs.unity3d.com/Manual/index.html
Skriptování: https://docs.unity3d.com/Manual/ScriptingSection.html
Reference: https://docs.unity3d.com/ScriptReference/
Unity používá jazyk C#
K našim projektům můžeme připojovat textové soubory se skriptem s koncovkou .cs
Tvorba nového skriptu
Když dáme v editoru vytvořit nový skript, automaticky se nám vytvoří skript rozšiřující třídu MonoBehaviour:
using UnityEngine;
using System.Collections;
public class NazevTridy : MonoBehaviour {
// Inicializace – spuštěno jednou při startu
void Start () {
}
// Aktualizace – spuštěno při každém snímku
void Update () {
}
}
Klíčové body:
using
– importy potřebných knihoven.NazevTridy : MonoBehaviour
Následuje začátek nové třídy s jejím názvem. Za : se pak píše jakou třídu tato nová rozšiřuje. Tzn. vezme vše, co původní třída umí a přidá jí další vlastnosti a funkce.- Metody
Start
aUpdate
:- Funkce void Start() se vždy spustí při inicializaci programu. (tj. když zmáčkneme play nebo spustíme exportovaný program).
Do této funkce dáváme počáteční nastavení. Např. Vložení dat do proměnných, přiřazení posluchačů. - Funkce void Update() se vždy spustí při každém vykreslení snímku aplikace.
Do této funkce dáváme procesy, které se mají spouštět nebo testovat při chodu aplikace. Např. pohyb hráče, podmínky ukončení hry aj.
- Funkce void Start() se vždy spustí při inicializaci programu. (tj. když zmáčkneme play nebo spustíme exportovaný program).
Důležité třídy v Unity
- GameObject:
Reprezentuje jakýkoli objekt, který může existovat na scéně (v hierarchii projektu)
Vlastnosti:name
,transform
,tag
,layer
. - MonoBehaviour:
Základní třída komponenty. Umožňuje skriptům fungovat jako komponenty GameObjectů. Vždy musí být připojená na nějaký GameObject (objekt vytvořený v Unity, který je na scéně v hierarchii projektu, např. osy, 2D objekt, 3D objekt).
Poskytuje přístup k metodám jakoStart()
,Update()
,OnTriggerEnter()
, aj. - Object:
Nejzákladnější třída, z níž vycházejí všechny další objekty v Unity.Používá se pro obecnou manipulaci s objekty (např. zničení objektu pomocíDestroy()
). - Transform:
Třída, která umožňuje manipulovat s GameObjecty. Mění rotaci, pozici a scale a vztah mezi rodiči a potomky objektu.
Klíčové metody:Translate()
,Rotate()
,SetParent()
. - Vectors (Vector2, Vector3, Vector4)
Práce s body, směry a pohybem ve 2D, 3D a 4D prostoru. - Quaternion:
Třída pro práci s rotací. - ScriptableObject:
Umožňuje vytvářet datové objekty, které nejsou spojeny s žádným GameObjectem.Vhodné pro ukládání konfigurací nebo herních dat. - Time:
Tato třída umožňuje práci s časem a úpravu frameratu.Time.deltaTime
– Čas od posledního snímku (užitečné pro pohyby závislé na čase).Time.time
– Čas od spuštění aplikace.
- Mathf:
Obsahuje běžné matematické operace. - Random:
Generuje náhodné hodnoty.Random.Range(min, max)
– Náhodné číslo mezi minimem a maximem.
- Debug:
Umožňuje získávání informací z projektu pro potřebu testování.
Slouží k ladění projektů:Debug.Log("Zpráva");
- Gizmos and Handles:
Umožňují vizualizovat a manipulovat s prvky ve scéně v editoru.