Unity / C# Wieso ist Sprite Variable gleich "null"?

2 Antworten

Background.naBackground

wird nirgends initialisiert. Es gibt auch keine Methode, die das Feld initialisieren oder aktualisieren könnte.

Wenn du sie auf einen statischen Wert setzen möchtest, kannst du sie bereits bei der Definition mit einem Wert deiner Wahl initialisieren:

public Sprite naBackground = ...; // hier initialisieren
Woher ich das weiß:Beruf – Softwareentwickler seit 2009

Ich hab naBackground und maBackground in Unity eine Textur übergeben.

void Update()
  {
    this.gameObject.GetComponent<SpriteRenderer>().sprite = naBackground;
  }

wenn ich meiner Update Methode so ändere, gibt es auch die gewünschte Textur aus, sie lässt sich nur nicht ändern.

0

OnMouseOver() sollte nicht in Update ausgeführt werden, da diese so oder läuft.

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseOver.html

Dein Objekt benötigt zu dem ein Trigger Collider. Siehe Link. Da steht alles drin.

Woher ich das weiß:Beruf – Ich lehre auf Youtube und auf Udemy Spiele-Erstellung.

Wenn ich OnMouseOver() nicht in Update drin habe funktioniert es leider nicht. Wieso? Weis ich auch nicht. :/

0
@Haenschenklein0

Debugge die funktion. Wird OnMouseOver ohne Update ausgeführt, wenn du mit der Maus über das Objekt gehst?

Ist das Script auf dem Objekt?

Ist ein Collider auf dem Objekt?

0
@OctoMan

Wenn ich mit der Maus über dem Objekt bin wird es nicht ausgeführt.

Das Script ist auf dem Objekt.

Was ist ein Collider? :)

0

Was möchtest Du wissen?