本ページにはプロモーションが含まれます
Playmaker

【Unity】Playmaker1.9.7のEvent Proxyが正しく動作していない件

この記事は約2分で読めます。

EcosystemのEvent Proxyが正しく動作いない

Playmakerのバージョンアップ後、EcosystemのEventProxyが想定の動作と異なる挙動になる。
EventProxyを使うこてで、Animationのタイムライン上任意のタイミングでFSMに対してイベント発火できたのが、できなくなった。
Unity側の仕様変更のせいなのか、Playmaker側のバグなのか、Ecosystem側のバグなのかわからないが、下記の記事の不具合が改善はされていなかった。
フォーラムでも同バグについていくつかトピックが上がっているのに、公式でも無反応という状況でした。
アニメーションイベントからFSMに対してSendEventできればなんでもいいのでその対応の覚え書きです。

https://dev.gdevnote.com/unity/%e3%80%90unity%e3%80%91playmaker%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88%e6%99%82%e3%81%ae%e3%83%88%e3%83%a9%e3%83%96%e3%83%ab%e3%82%b7%e3%83%a5%e3%83%bc%e3%83%86%e3%82%a3%e3%83%b3

対処方法

対処方法というよりEcosystemのEventProxyは使わない、です。Animatorコンポーネントと同じオブジェクトに貼り付ける。

using HutongGames.PlayMaker;
using System;
using UnityEngine;

public class AnimationScript : MonoBehaviour
{
    // FSMオブジェクトをアサインする。
    public PlayMakerFSM fsm;

    // 飛ばしたいイベント名
    public string fsmEventName;

    // FSMのイベント実行
    public void sendEvent()
    {

        fsm.SendEvent(fsmEventName);

    }

}

Animatorと同じオブジェクトにスクリプト貼り付けてFSMと呼びたいイベント名を入れる。

アニメーションイベントで該当のメソッドを呼ぶ

おわりに

1.9.8.f1でもeco systemのevent proxyで設定した対象がnullになるので動かないです。
またUnityのバージョンの問題でもなかったです。調査中。