敵に当たったときのアニメーションの動きはできたのですが(当たった時の処理はコードの下にあります)
そのアニメーションが終わったあとSet as Layer Default Stateに設定されたアニメーションに戻るのが実力不足で出来ません
アニメーションを切り替えるときに使っている変数はBool型ですその変数がtureになった時に敵に当たったときのアニメーションが開始されますSet as Layer Default Stateに設定されたアニメーションの場合はfalseで切り替わります
一応敵に当たったときのアニメーションが終わるまでCoroutineまたはInvokeで命令を停止させて
その後にfalseにしてSet as Layer Default Stateに設定されたアニメーションを動かそうと思いましたが
それが知識不足で出来ませんでしたのでこんな投げやりな質問をしましたすみません
開発環境表記
プラットフォームはWebGL
バージョンは2020,1.14f1
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class HP : MonoBehaviour 7{ 8 private Animator anim = null; 9 public GameObject hp_object = null; 10 public int hp_num = 0; 11 float anim_time; 12 13 // Start is called before the first frame update 14 void Start() 15 { 16 anim = GetComponent<Animator>(); 17 18 } 19 20 // Update is called once per frame 21 void Update() 22 { 23 Text hp_text = hp_object.GetComponent<Text>(); 24 25 hp_text.text = "HP" + hp_num; 26 if (hp_num < 1) 27 { 28 Shooting component = this.gameObject.GetComponent<Shooting>(); 29 Destroy(component); 30 Debug.Log("しにました"); 31 anim.SetBool("bakuhatu", true); 32 33 Destroy(this.gameObject, 1f); 34 } 35 } 36 void OnTriggerEnter2D(Collider2D collision) 37 { 38 39 hp_num -= 1 ; 40 //敵に当たったときのアニメーションが開始される 41 anim.SetBool("hidame", true); 42 43 //ここで0.1秒だけとめたい(アニメーションが終わるのがちょうど0.1秒) 44 45 //Set as Layer Default Stateに設定されたアニメーションが開始される 46 anim.SetBool("hidame", false); 47 } 48 49} 50
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。