/// <summary> /// 有効化されている状態の無効化 /// </summary> public void DisactivateState() { if (activeState == null) { return; } OnDisactivateState(); activeState.Exit(); activeState = null; }
/// <summary> /// 指定した状態の有効化 /// </summary> public void ActivateState(string name) { //アクティブでなければ有効化しない if (!activated) { return; } //現在の状態 bool prevNull = (activeState == null); //現在有効化されている状態の無効化 DisactivateState(); //有効化する状態の取得 activeState = GetState(name); if (activeState) { if (prevNull) { OnActivateState(); } activeState.Enter(); } }