/// <summary> /// 敵AIのステートをT型に変更する /// </summary> /// <typeparam name="T"></typeparam> public void ChangeState <T>(EmotionEffectEmitter emitter) where T : EnemyState_AI { //デバッグ用 #if UNITY_EDITOR string B_State = Owner.state_AI.ToString(); int pos = B_State.LastIndexOf("."); B_State = B_State.Remove(0, pos + 1); B_State = B_State.TrimEnd(')'); #endif Destroy(Owner.state_AI); Owner.state_AI = Owner.gameObject.AddComponent <T>(); Owner.state_AI.SetOwner(Owner, emitter); Owner.state_AI.OnStart(); //デバッグ用 #if UNITY_EDITOR string name = Owner.name; string A_State = Owner.state_AI.ToString(); pos = A_State.LastIndexOf("."); A_State = A_State.Remove(0, pos + 1); A_State = A_State.TrimEnd(')'); string str = $"ステートが変わりました : 名前 {name} : BeforeState {B_State} : AfterState {A_State}"; Debug.Log(str); #endif }
public void SetOwner(Character.Enemy enemy, EmotionEffectEmitter emitter) { Owner = enemy; EmotionEmitter_ = emitter; }