Unity 2021.3.6f1
結論
ビルドしたゲームで動作しないなどの誤作動を起こす恐れがあるため、Timelineのマーカーを自作する際は必ずファイル名とクラス名が一致している事を確認すること。
何が起きたのか
Timeline上で任意のタイミングでBGMが切り替えられるよう、自作のBGMMarkerを作成した。
using System.ComponentModel;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
// BGM情報を送信するマーカー
[System.Serializable, DisplayName("BGM Marker")]
public class BGMMarker : Marker, INotification
{
public AudioClip audioClip;
public PropertyName id
{
get
{
return new PropertyName("method");
}
}
}
Markerを作る際、他のMarkerスクリプトからコピペしていたためファイル名を編集した際に「BGMMaker.cs」とタイポしていた事に気づかずにそのまま使い続けていた。
いや、不幸にも使い続ける事が出来てしまっていた。
Unity Editor上で再生した際にこのBGMMarkerは正常に動作していたが、ビルドしたゲーム上では上手く動かず(ReceiverのOnNotifiyメソッドが呼ばれない)エラーログも出なかったため暫くの間原因が分からず途方に暮れていた。
備忘録としてメモ。