Unity – MonoBehaviour


Manuál: https://docs.unity3d.com/Manual/class-MonoBehaviour.html
Reference: https://docs.unity3d.com/ScriptReference/MonoBehaviour.html

MonoBehaviour je základní třída Unity, kterou můžeme připojovat na GameObjecty na scéně jako komponenty Script.
Pokud ze scény odstraníme objekt, na který je připojená, odstraníme také instanci této třídy.

Speciální funkce MonoBehaviour:

  • Životní cyklus skriptu:
    • Awake()
      Spouští se pouze jednou při inicializaci skriptu nebo při jeho aktivaci. Vhodné pro nastavení inicializačních hodnot.
    • Start()
      Volá se jednou při spuštění skriptu, obvykle hned po metodě Awake. Používá se pro logiku, která potřebuje, aby všechny objekty ve scéně byly připraveny.
    • Update()
      Spouští se každý snímek. Vhodné pro logiku, která se mění v čase (např. pohyb objektů).
    • FixedUpdate()
      Volá se v pevně stanovených časových intervalech, což je ideální pro práci s fyzikou.
    • LateUpdate()
      Spouští se každý snímek po všech voláních Update(). Používá se například pro kameru sledující objekt.
  • Aktivace a deaktivace:
    • OnEnable()
      Volá se při aktivaci GameObjectu nebo komponenty.
    • OnDisable()
      Volá se při deaktivaci GameObjectu nebo komponenty.

Zprávy

MonoBehaviour může reagovat na specifické události, známé jako zprávy. Tyto zprávy jsou automaticky volány Unity při nastání určitých událostí.

  • OnCollisionEnter(Collision collision)
    Spouští se, když collider nebo rigidbody začne kolidovat s jiným collider/rigidbody.
  • OnCollisionExit(Collision collision)
    Volá se při ukončení kolize.
  • OnTriggerEnter(Collider other)
    Spouští se, když objekt vstoupí do triggeru (collider s aktivním „Is Trigger“).
  • OnTriggerExit(Collider other)
    Spouští se, když objekt opustí trigger.

Interakce s myší

  • OnMouseDown()
    Volá se při stisknutí tlačítka myši nad colliderem.
  • OnMouseDrag()
    Spouští se při držení tlačítka myši nad colliderem a pohybu myší.
  • OnMouseEnter()
    Volá se, když myš přejede nad colliderem.
  • OnMouseExit()
    Spouští se, když myš opustí oblast collideru.
  • OnMouseOver()
    Volá se každým snímkem, pokud je myš nad colliderem.
  • OnMouseUp()
    Spouští se při uvolnění tlačítka myši nad colliderem.

Metody

  • Destroy
    odstraní game object, komponentu, nebo asset
    Destroy(gameObject); Odstraní celý objekt
    Destroy(this); Odstraní aktuální komponentu
  • GetComponent
    Najde komponentu daného typu připojenou k aktuálnímu GameObjectu.
    Rigidbody rb = GetComponent();
  • CompareTag
    Porovná tag GameObjectu s určeným textem.
    if (CompareTag("Player")) {
    // Logika pro objekt s tagem "Player"
    }
  • Instantiate
    Vytvoří kopii objektu.
    GameObject clone = Instantiate(originalObject);
  • Invoke
    Zavolá metodu po dané prodlevě.
    Invoke("MyMethod", 2.0f); // Volá MyMethod po 2 sekundách
  • InvokeRepeating
    Opakovaně volá metodu po dané prodlevě.
    InvokeRepeating("RepeatMethod", 1.0f, 0.5f); // Volá RepeatMethod každých 0.5 sekund
  • CancelInvoke
    Zruší všechny naplánované volání metod pomocí Invoke nebo InvokeRepeating.

,