2017-05-09 1 views
-1

Ich versuche eine Animation aufzurufen, die die Unverwundbarkeitsrahmen eines Spielers beim Treffer bestimmt. Ich kann keine Variable von meinem Animationscontroller aufrufen, um mit myAnim.TriggerHurt(invincibleTimeAfterHurt); zu interagieren, und als Ergebnis habe ich diesen Fehler. die beiden Instanzen von myAnim in meinem Animations-Controller sind Animator myAnim und myAnim = this.gameObject.GetComponent<Animator>(); Ich weiß nicht, warum es nicht funktioniert, also jede Hilfe, die jemand zur Verfügung stellen kann, wird geschätzt.Der Name "myAnim" existiert nicht im aktuellen Kontext mit Visual Studio für Unity

Animation Controller:

enter image description here

Spieler Controller:

enter image description here

+0

wert setzen einige code in ihre frage. – Orangesandlemons

+3

1. Veröffentlichen Sie keine Links zu Code 2. Veröffentlichen Sie keine Bilder von Code 3. 'myAnim' ist in einer anderen Klasse definiert, daher ist unklar, warum Sie erwarten, dass es in' PlayerController' definiert oder zugänglich ist – UnholySheep

Antwort

0

Es gibt einige Dinge falsch mit Ihrem Code.

  1. Die Funktion TriggerHurt() ist in der AnimationController-Klasse definiert. Daher müssen Sie in der PlayerController-Klasse auf dieses Skript (AnimationController.cs) verweisen. Sie könnten das wie folgt (vorausgesetzt, beide Skripte auf dem gleichen Gameobject sind)

public AnimationController animController;
void Start() { animController = gameObject.GetComponent<AnimationController>(); }

Dann rufen Sie TriggerHurt() von dem anderen Skript wie folgt:

animController.TriggerHurt(invincibleTimeAfterHurt)

0

Anstelle von

myAnim.TriggerHurt(invincibleTimeAfterHurt); 

verwenden

AnimationControlle.instance.TriggerHurt(invincibleTimeAfterHurt); 
Verwandte Themen