/// <summary>イベントアクターを生成する</summary> public EventActor createActor(EventManager manager, int index) { string[] action = m_actions[index]; string kind = action[0]; string[] parameters = new string[action.Length - 1]; Array.Copy(action, 1, parameters, 0, parameters.Length); m_actorName = ""; m_actorIndex = index; EventActor actor = null; switch (kind.ToLower()) { // [evaluate-event] // イベントの終了時に指定したイベントを連続して実行する. case "evaluate-event": actor = EventActorEvaluateEvent.CreateInstance(parameters, manager.gameObject); break; // [set] // ゲーム内変数に文字列を代入する. case "set": actor = EventActorSet.CreateInstance(parameters, manager.gameObject); break; // [move] // オブジェクトを移動する. case "move": actor = EventActorMove.CreateInstance(parameters, manager.gameObject); break; // [hide] // 指定されたオブジェクトを非表示にする. case "hide": actor = EventActorVisibility.CreateInstance(parameters, false, manager.gameObject); break; // [show] // 指定されたオブジェクトを表示する. case "show": actor = EventActorVisibility.CreateInstance(parameters, true, manager.gameObject); break; // [text] // 地の文を表示する. case "text": actor = EventActorText.CreateInstance(parameters, manager.gameObject); break; // [dialog] // 会話文を表示する. case "dialog": actor = EventActorDialog.CreateInstance(parameters, manager.gameObject, this); break; // [choice] // 選択肢を表示して選んだものに応じてゲーム内変数に値を代入する. case "choice": actor = EventActorChoice.CreateInstance(parameters, manager.gameObject); break; // [play] // サウンドを再生する. case "play": actor = EventActorPlay.CreateInstance(parameters, manager.gameObject, this); break; // [fadeout] // フェードアウトを行う. case "fadeout": actor = EventActorFading.CreateInstance(parameters, false, manager.gameObject); break; // [fadein] // フェードインを行う. case "fadein": actor = EventActorFading.CreateInstance(parameters, true, manager.gameObject); break; // [load] // スクリプトを読み込んでイベントを入れ替える. case "load": // ToDo: load コマンドがあったときは継続評価を打ち切る? (現在は打ち切っていない). actor = EventActorLoad.CreateInstance(parameters, manager.gameObject); break; // [call-event] // コマンドが実行されるタイミングで強引に別のイベントを実行する. case "call-event": actor = EventActorCallEvent.CreateInstance(parameters, manager.gameObject); break; // [message] // オブジェクトにメッセージを送信して固有の処理を行わせる. case "message": actor = EventActorMessage.CreateInstance(parameters, manager.gameObject); break; default: Debug.LogError("Invalid command \"" + kind + "\""); break; } return(actor); }