Animator anim; public void MakeMove(int action) { this.anim = GetComponent<Animator>(); if (anim) { Debug.Log(anim.name+" Makamoveに入ったよ"); } else { Debug.Log("MakeMoveには入ってない"); //これが返ってきます。 } if (action == 0) { anim.SetInteger("ani", 0); Debug.Log("Idle"); } if (action == 1) { anim.SetInteger("ani", 1); Debug.Log("Run"); } }
上記のコードなのですが「 this.anim = GetComponent<Animator>(); 」AnimatorがNullと表示されてしまいます。
このスクリプトは動くObjectに付いておりまして 呼び出すのは全く別のObjectについたスクリプトからとなります。
画面表示のアニメーターからControllerとアバターは直接セットされております。
お力添えをよろしくお願いいたします
//呼び出し側クイズオブジェクトのスクリプト //クイズの結果が int a(intには毎回所定の数字が入っておりました。) Debug.Log("前 クイズの結果 int aは " + a); QuizAction_SC quizaction_SC = new QuizAction_SC(); quizaction_SC.MakeMove(a); //キャラクターが反応して動く Debug.Log("後 クイズの結果 int aは " + a);
上記を実行すると動く側がうまく作動してくれませんでした。
ちなみに動く側のUpdate()に
if (Input.GetKeyDown(KeyCode.Z)) { Debug.Log("Z を 手入力 int a "+ a); MakeMove(a); }``` と作成してテストすると問題なくキャラクターが動いてくれました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/05 13:34
2019/05/05 14:42
2019/05/05 17:07
2019/05/05 22:44
2019/05/05 22:51
2019/05/06 00:51
2019/05/06 01:55
2019/05/06 03:04 編集
2019/05/06 03:23