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」と入力して、グローバルイベントを作成します。
![Image3](https://styly.cc/wp-content/uploads/2024/03/image3-7.png)
PrefabAからグローバルイベントを送信する
PrefabAにアタッチされたFSMで、イベントを送信する設定を行います。
State1にSend Eventアクションを追加します。Event Targetの設定で「Broadcast All」を選択して、すべてのFSMにイベントを送信するようにします。Send Eventの設定で、Eventに先ほど作成したTriggerEventBを選択します。
![Image2](https://styly.cc/wp-content/uploads/2024/03/image2-6.png)
PrefabBでグローバルイベントを受信する
PrefabBにアタッチされたFSMでイベントを受け取り、それに応じてアクションを実行する設定を行います。
新しいステートState2を作成して、右クリック > Add Global Transition > TriggerEventBを選択してください。
![Image1](https://styly.cc/wp-content/uploads/2024/03/image1-6.png)
State2で実行したいアクションを追加します。例えば、「Rotate」アクションを使ってオブジェクトを回転させるなど。
![Image5](https://styly.cc/wp-content/uploads/2024/03/image5-7.png)
Unityのプレイモードでプロジェクトを実行し、PrefabAから飛ばしたTriggerEventBイベントをPrefabBで受け取り、設定されたアクション(例: 回転)を実行するか確認します。
![Image4](https://styly.cc/wp-content/uploads/2024/03/image4-7.png)
最後にPrefabA、PrefabBをSTYLYにアップロードして、STYLY Studioに配置して実際に動くか確認してみてください。