UnityとPlayMakerを使用して、PrefabAからグローバルイベントを送信して、PrefabBでそれを受け取る具体的な実装方法をご紹介いたします。
PrefabAとPrefabBを別々にSTYLYにアップロードして、PrefabAで実行したPlayMaker FSMのアクションをPrefabBにイベント飛ばす(グローバルイベント)ことが可能になります。
実装方法
前提条件
・PlayMakerがインストールされていること
・PrefabAとPrefabBがプロジェクトに存在し、それぞれにPlayMaker FSMがアタッチされていること
2つのCubeをヒエラルキーに配置して、オブジェクト名をそれぞれPrafabA、PrafabBに変更します。それぞれに、PlayMaker FSM追加してください。
グローバルイベントの作成
PrefabAのPlayMaker Editor上でEventsタブを開きます。
Add Event箇所に「TriggerEventB」と入力して、グローバルイベントを作成します。
PrefabAからグローバルイベントを送信する
PrefabAにアタッチされたFSMで、イベントを送信する設定を行います。
State1にSend Eventアクションを追加します。Event Targetの設定で「Broadcast All」を選択して、すべてのFSMにイベントを送信するようにします。Send Eventの設定で、Eventに先ほど作成したTriggerEventBを選択します。
PrefabBでグローバルイベントを受信する
PrefabBにアタッチされたFSMでイベントを受け取り、それに応じてアクションを実行する設定を行います。
新しいステートState2を作成して、右クリック > Add Global Transition > TriggerEventBを選択してください。
State2で実行したいアクションを追加します。例えば、「Rotate」アクションを使ってオブジェクトを回転させるなど。
Unityのプレイモードでプロジェクトを実行し、PrefabAから飛ばしたTriggerEventBイベントをPrefabBで受け取り、設定されたアクション(例: 回転)を実行するか確認します。
最後にPrefabA、PrefabBをSTYLYにアップロードして、STYLY Studioに配置して実際に動くか確認してみてください。