#指定位置まで移動できない
0. ボタンが押されるとAttack()が呼ばれる
0. 走るアニメーションを始める
0. 指定の位置まで移動する
0. 走るのをやめてスクリューキックをする
0. キャラを消して元の位置にキャラを生成する
問題がこの3でキャラが全然動きません。(アニメーション含む)
デバッグのためにアニメーションのチェックボックスをずっとtrueにしていたらそのアニメーションは動くので、そこに問題は無いと思います。
Debug.Logもtest、TESTが800個出力されるのでそこにも問題はないと思います。
Unityを触り始めたばかりの初心者でコードもわからず、他の方のコードを参考にしてできるだけ自分なりに噛み砕いてみたので何か見落としていると思うのですが、どこを間違っているのかがわかりません……。
1日中悩んだのですがどうしても解決できなかったので教えていただければ嬉しいです。
public void Attack() { //ボタンを消す BattleButtonOff(); //タグ付けしているキャラクターをCharacterに入れる GameObject Character = GameObject.FindGameObjectWithTag("Character"); //キャラが走り出す Character.GetComponent<Animator>().SetBool("AttackRun", true); //スピードを設定 float speed = 0.01f; //Zを8f前に進ませる for(var i = 0; i < 800; i++) { Debug.Log("test"); //キャラの位置を前に進ませる Character.transform.position += Character.transform.forward * speed * Time.deltaTime; } /* //位置を代入 Transform myTransform= Character.transform; //さらに位置を代入 Vector3 pos = myTransform.position; //Zを8f前に進ませる for(var i = 0; i < 800; i++) { Debug.Log("TEST"); //キャラの座標をプラスして代入 pos.z += 0.01f * Time.deltaTime; //座標を今の位置に代入 myTransform.position = pos; } */ //走るのをやめる Character.GetComponent<Animator>().SetBool("AttackRun", false); //スクリューキックをする Character.GetComponent<Animator>().SetTrigger("AttackScrewKick"); //キャラを消す Destroy(Character); //元の位置にキャラを生成 Instantiate(Character, new Vector3(0f, 0f, -5f), Quaternion.identity); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/29 16:47