STYLYでPrefabAとPrefabBを連携させる方法:PlayMaker FSMのアクションをグローバルイベントで送信する手順解説

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

PrefabAからグローバルイベントを送信する

PrefabAにアタッチされたFSMで、イベントを送信する設定を行います。

State1にSend Eventアクションを追加します。Event Targetの設定で「Broadcast All」を選択して、すべてのFSMにイベントを送信するようにします。Send Eventの設定で、Eventに先ほど作成したTriggerEventBを選択します。

Image2

PrefabBでグローバルイベントを受信する

PrefabBにアタッチされたFSMでイベントを受け取り、それに応じてアクションを実行する設定を行います。

新しいステートState2を作成して、右クリック > Add Global Transition > TriggerEventBを選択してください。

Image1

State2で実行したいアクションを追加します。例えば、「Rotate」アクションを使ってオブジェクトを回転させるなど。

Image5

Unityのプレイモードでプロジェクトを実行し、PrefabAから飛ばしたTriggerEventBイベントをPrefabBで受け取り、設定されたアクション(例: 回転)を実行するか確認します。

Image4

最後にPrefabA、PrefabBをSTYLYにアップロードして、STYLY Studioに配置して実際に動くか確認してみてください。