/* プラグイン内部用API */ public static void SetEventCallback(CriAtomExSequencer.EventCbFunc func, string separator) { #if CRIWARE_SUPPORT_NATIVE_CALLBACK /* ネイティブプラグインに関数ポインタを登録 */ IntPtr ptr = IntPtr.Zero; eventUserCbFunc = func; if (func != null) { CriAtomExSequencer.EventCbFunc delegateObject; delegateObject = new CriAtomExSequencer.EventCbFunc(CriAtom.SequenceEventCallbackFromNative); ptr = Marshal.GetFunctionPointerForDelegate(delegateObject); } CriAtomPlugin.criAtomUnitySequencer_SetEventCallback(ptr, separator); #else Debug.LogError("[CRIWARE] Event callback is not supported for this scripting backend."); #endif }
/* プラグイン内部用API */ public static void SetEventCallback(CriAtomExSequencer.EventCbFunc func, string separator) { #if CRIWARE_SUPPORT_SEQUENCE_CALLBACK /* ネイティブプラグインに関数ポインタを登録 */ IntPtr ptr = IntPtr.Zero; eventUserCbFunc = func; if (func != null) { #if CRIWARE_CALLBACK_IMPL_UNITYSENDMESSAGE ptr = IntPtr.Zero; #elif CRIWARE_CALLBACK_IMPL_NATIVE2MANAGED CriAtomExSequencer.EventCbFunc localFunc; localFunc = new CriAtomExSequencer.EventCbFunc(CriAtom.instance.EventCallbackFromNative); ptr = Marshal.GetFunctionPointerForDelegate(localFunc); #endif CriAtomPlugin.criAtomUnitySeqencer_SetEventCallback(ptr, CriAtom.instance.gameObject.name, "EventCallbackFromNative", separator); } #elif CRIWARE_UNSUPPORT_SEQUENCE_CALLBACK Debug.LogError("This platform does not support event callback feature."); #endif }
/** * <summary>シーケンスイベントコールバックの登録</summary> * <param name="func">シーケンスコールバック関数</param> * <param name="separator">イベントパラメタ区切り文字列(最大15文字)</param> * \par 説明: * シーケンスデータに埋め込まれたコールバック情報を受け取るコールバック関数を登録します。<br/> * 登録されたコールバック関数は、コールバックイベントを処理したタイミングで実行されます。<br/> * \par 注意: * コールバック関数は1つしか登録できません。<br/> * 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。<br/> */ public static void SetEventCallback(CriAtomExSequencer.EventCbFunc func, string separator = "\t") { /* MonoBehaviour側に登録 */ CriAtom.SetEventCallback(func, separator); }
/* プラグイン内部用API */ public static void SetEventCallback(CriAtomExSequencer.EventCbFunc func, string separator) { #if CRIWARE_SUPPORT_SEQUENCE_CALLBACK /* ネイティブプラグインに関数ポインタを登録 */ IntPtr ptr = IntPtr.Zero; eventUserCbFunc = func; if (func != null) { #if CRIWARE_CALLBACK_IMPL_UNITYSENDMESSAGE ptr = IntPtr.Zero; #elif CRIWARE_CALLBACK_IMPL_NATIVE2MANAGED CriAtomExSequencer.EventCbFunc localFunc; localFunc = new CriAtomExSequencer.EventCbFunc(CriAtom.instance.EventCallbackFromNative); ptr = Marshal.GetFunctionPointerForDelegate(localFunc); #endif CriAtomPlugin.criAtomUnitySeqencer_SetEventCallback(ptr, CriAtom.instance.gameObject.name, "EventCallbackFromNative", separator); } #elif CRIWARE_UNSUPPORT_SEQUENCE_CALLBACK Debug.LogError("This platform does not support event callback feature."); #endif }