コンテンツにスキップ

イベント

override で書くものが 82 個、名前と引数の型で認識されるものが 43 個です。型は完全な名前で書いてあり、using を書けば短い名前で書けます。

基底の宣言を override して書くもの

Section titled “基底の宣言を override して書くもの”
書き方呼ばれる名前引数が入る変数
void InputDrop(bool value, VRC.Udon.Common.UdonInputEventArgs args)_inputDropinputDropBoolValue inputDropArgs
void InputGrab(bool value, VRC.Udon.Common.UdonInputEventArgs args)_inputGrabinputGrabBoolValue inputGrabArgs
void InputJump(bool value, VRC.Udon.Common.UdonInputEventArgs args)_inputJumpinputJumpBoolValue inputJumpArgs
void InputLookHorizontal(float value, VRC.Udon.Common.UdonInputEventArgs args)_inputLookHorizontalinputLookHorizontalFloatValue inputLookHorizontalArgs
void InputLookVertical(float value, VRC.Udon.Common.UdonInputEventArgs args)_inputLookVerticalinputLookVerticalFloatValue inputLookVerticalArgs
void InputMoveHorizontal(float value, VRC.Udon.Common.UdonInputEventArgs args)_inputMoveHorizontalinputMoveHorizontalFloatValue inputMoveHorizontalArgs
void InputMoveVertical(float value, VRC.Udon.Common.UdonInputEventArgs args)_inputMoveVerticalinputMoveVerticalFloatValue inputMoveVerticalArgs
void InputUse(bool value, VRC.Udon.Common.UdonInputEventArgs args)_inputUseinputUseBoolValue inputUseArgs
void Interact()_interact—
void MidiControlChange(int channel, int number, int value)_midiControlChangemidiControlChangeChannel midiControlChangeNumber midiControlChangeValue
void MidiNoteOff(int channel, int number, int velocity)_midiNoteOffmidiNoteOffChannel midiNoteOffNumber midiNoteOffVelocity
void MidiNoteOn(int channel, int number, int velocity)_midiNoteOnmidiNoteOnChannel midiNoteOnNumber midiNoteOnVelocity
void OnAsyncGpuReadbackComplete(VRC.SDK3.Rendering.VRCAsyncGPUReadbackRequest request)_onAsyncGpuReadbackCompleteonAsyncGpuReadbackCompleteRequest
void OnAvatarChanged(VRC.SDKBase.VRCPlayerApi player)_onAvatarChangedonAvatarChangedPlayer
void OnAvatarEyeHeightChanged(VRC.SDKBase.VRCPlayerApi player, float prevEyeHeightAsMeters)_onAvatarEyeHeightChangedonAvatarEyeHeightChangedPlayer onAvatarEyeHeightChangedPrevEyeHeightAsMeters
void OnContactEnter(VRC.Dynamics.ContactEnterInfo contactInfo)_onContactEnteronContactEnterContactInfo
void OnContactExit(VRC.Dynamics.ContactExitInfo contactInfo)_onContactExitonContactExitContactInfo
void OnControllerColliderHitPlayer(VRC.SDK3.ControllerColliderPlayerHit hit)_onControllerColliderHitPlayeronControllerColliderHitPlayerHit
void OnDeserialization(VRC.Udon.Common.DeserializationResult result)_onDeserializationonDeserializationResult
void OnDroneTriggerEnter(VRC.SDKBase.VRCDroneApi drone)_onDroneTriggerEnteronDroneTriggerEnterDrone
void OnDroneTriggerExit(VRC.SDKBase.VRCDroneApi drone)_onDroneTriggerExitonDroneTriggerExitDrone
void OnDroneTriggerStay(VRC.SDKBase.VRCDroneApi drone)_onDroneTriggerStayonDroneTriggerStayDrone
void OnDrop()_onDrop—
void OnImageLoadError(VRC.SDK3.Image.IVRCImageDownload result)_onImageLoadErroronImageLoadErrorIVRCImageDownload
void OnImageLoadSuccess(VRC.SDK3.Image.IVRCImageDownload result)_onImageLoadSuccessonImageLoadSuccessIVRCImageDownload
void OnInputMethodChanged(VRC.SDKBase.VRCInputMethod inputMethod)_onInputMethodChangedonInputMethodChangedInputMethod
void OnLanguageChanged(string language)_onLanguageChangedonLanguageChangedLanguage
void OnListAvailableProducts(VRC.Economy.IProduct[] products)_onListAvailableProductsonListAvailableProductsResult
void OnListProductOwners(VRC.Economy.IProduct product, string[] owners)_onListProductOwnersonListProductOwnersResult onListProductOwnersOwners
void OnListPurchases(VRC.Economy.IProduct[] products, VRC.SDKBase.VRCPlayerApi player)_onListPurchasesonListPurchasesResult onListPurchasesPlayer
void OnMasterTransferred(VRC.SDKBase.VRCPlayerApi newMaster)_onMasterTransferredonMasterTransferredNewMaster
bool OnOwnershipRequest(VRC.SDKBase.VRCPlayerApi requestingPlayer, VRC.SDKBase.VRCPlayerApi requestedOwner)_onOwnershipRequestonOwnershipRequestRequester onOwnershipRequestNewOwner
void OnOwnershipTransferred(VRC.SDKBase.VRCPlayerApi player)_onOwnershipTransferredonOwnershipTransferredPlayer
void OnPersistenceUsageUpdated()_onPersistenceUsageUpdated—
void OnPhysBoneGrabbed(VRC.Dynamics.PhysBoneGrabbedInfo physBoneInfo)_onPhysBoneGrabbedonPhysBoneGrabbedPhysBoneInfo
void OnPhysBonePosed(VRC.Dynamics.PhysBonePosedInfo physBoneInfo)_onPhysBonePosedonPhysBonePosedPhysBoneInfo
void OnPhysBoneReleased(VRC.Dynamics.PhysBoneReleasedInfo physBoneInfo)_onPhysBoneReleasedonPhysBoneReleasedPhysBoneInfo
void OnPhysBoneUnPosed(VRC.Dynamics.PhysBoneUnPosedInfo physBoneInfo)_onPhysBoneUnPosedonPhysBoneUnPosedPhysBoneInfo
void OnPickup()_onPickup—
void OnPickupUseDown()_onPickupUseDown—
void OnPickupUseUp()_onPickupUseUp—
void OnPlayerCollisionEnter(VRC.SDKBase.VRCPlayerApi player)_onPlayerCollisionEnteronPlayerCollisionEnterPlayer
void OnPlayerCollisionExit(VRC.SDKBase.VRCPlayerApi player)_onPlayerCollisionExitonPlayerCollisionExitPlayer
void OnPlayerCollisionStay(VRC.SDKBase.VRCPlayerApi player)_onPlayerCollisionStayonPlayerCollisionStayPlayer
void OnPlayerDataStorageExceeded(VRC.SDKBase.VRCPlayerApi player)_onPlayerDataStorageExceededonPlayerDataStorageExceededPlayer
void OnPlayerDataStorageWarning(VRC.SDKBase.VRCPlayerApi player)_onPlayerDataStorageWarningonPlayerDataStorageWarningPlayer
void OnPlayerDataUpdated(VRC.SDKBase.VRCPlayerApi player, VRC.SDK3.Persistence.PlayerData.Info[] infos)_onPlayerDataUpdatedonPlayerDataUpdatedPlayer onPlayerDataUpdatedInfos
void OnPlayerJoined(VRC.SDKBase.VRCPlayerApi player)_onPlayerJoinedonPlayerJoinedPlayer
void OnPlayerLeft(VRC.SDKBase.VRCPlayerApi player)_onPlayerLeftonPlayerLeftPlayer
void OnPlayerObjectStorageExceeded(VRC.SDKBase.VRCPlayerApi player)_onPlayerObjectStorageExceededonPlayerObjectStorageExceededPlayer
void OnPlayerObjectStorageWarning(VRC.SDKBase.VRCPlayerApi player)_onPlayerObjectStorageWarningonPlayerObjectStorageWarningPlayer
void OnPlayerParticleCollision(VRC.SDKBase.VRCPlayerApi player)_onPlayerParticleCollisiononPlayerParticleCollisionPlayer
void OnPlayerRespawn(VRC.SDKBase.VRCPlayerApi player)_onPlayerRespawnonPlayerRespawnPlayer
void OnPlayerRestored(VRC.SDKBase.VRCPlayerApi player)_onPlayerRestoredonPlayerRestoredPlayer
void OnPlayerSuspendChanged(VRC.SDKBase.VRCPlayerApi player)_onPlayerSuspendChangedonPlayerSuspendChangedPlayer
void OnPlayerTriggerEnter(VRC.SDKBase.VRCPlayerApi player)_onPlayerTriggerEnteronPlayerTriggerEnterPlayer
void OnPlayerTriggerExit(VRC.SDKBase.VRCPlayerApi player)_onPlayerTriggerExitonPlayerTriggerExitPlayer
void OnPlayerTriggerStay(VRC.SDKBase.VRCPlayerApi player)_onPlayerTriggerStayonPlayerTriggerStayPlayer
void OnPostSerialization(VRC.Udon.Common.SerializationResult result)_onPostSerializationonPostSerializationResult
void OnPreSerialization()_onPreSerialization—
void OnProductEvent(VRC.Economy.IProduct product, VRC.SDKBase.VRCPlayerApi player)_onProductEventonProductEventResult onProductEventPlayer
void OnPurchaseConfirmed(VRC.Economy.IProduct product, VRC.SDKBase.VRCPlayerApi player, bool purchasedNow)_onPurchaseConfirmedonPurchaseConfirmedResult onPurchaseConfirmedPlayer onPurchaseConfirmedPurchasedNow
void OnPurchaseConfirmedMultiple(VRC.Economy.IProduct product, VRC.SDKBase.VRCPlayerApi player, bool purchasedNow, int quantity)_onPurchaseConfirmedMultipleonPurchaseConfirmedMultipleResult onPurchaseConfirmedMultiplePlayer onPurchaseConfirmedMultiplePurchasedNow onPurchaseConfirmedMultipleQuantity
void OnPurchaseExpired(VRC.Economy.IProduct product, VRC.SDKBase.VRCPlayerApi player)_onPurchaseExpiredonPurchaseExpiredResult onPurchaseExpiredPlayer
void OnPurchasesLoaded(VRC.Economy.IProduct[] products, VRC.SDKBase.VRCPlayerApi player)_onPurchasesLoadedonPurchasesLoadedResult onPurchasesLoadedPlayer
void OnScreenUpdate(VRC.SDK3.Platform.ScreenUpdateData data)_onScreenUpdateonScreenUpdateData
void OnSpawn()_onSpawn—
void OnStationEntered(VRC.SDKBase.VRCPlayerApi player)_onStationEnteredonStationEnteredPlayer
void OnStationExited(VRC.SDKBase.VRCPlayerApi player)_onStationExitedonStationExitedPlayer
void OnStringLoadError(VRC.SDK3.StringLoading.IVRCStringDownload result)_onStringLoadErroronStringLoadErrorIVRCStringDownload
void OnStringLoadSuccess(VRC.SDK3.StringLoading.IVRCStringDownload result)_onStringLoadSuccessonStringLoadSuccessIVRCStringDownload
void OnVRCCameraSettingsChanged(VRC.SDK3.Rendering.VRCCameraSettings cameraSettings)_onVRCCameraSettingsChangedonVRCCameraSettingsChangedCamera
void OnVRCPlusMassGift(VRC.SDKBase.VRCPlayerApi gifter, int numGifts)_onVRCPlusMassGiftonVRCPlusMassGiftGifter onVRCPlusMassGiftNumGifts
void OnVRCQualitySettingsChanged()_onVRCQualitySettingsChanged—
void OnVideoEnd()_onVideoEnd—
void OnVideoError(VRC.SDK3.Components.Video.VideoError videoError)_onVideoErroronVideoErrorVideoError
void OnVideoLoop()_onVideoLoop—
void OnVideoPause()_onVideoPause—
void OnVideoPlay()_onVideoPlay—
void OnVideoReady()_onVideoReady—
void OnVideoStart()_onVideoStart—
void PostLateUpdate()_postLateUpdate—

名前と引数の型で認識されるもの

Section titled “名前と引数の型で認識されるもの”
書き方呼ばれる名前引数が入る変数
void FixedUpdate()_fixedUpdate—
void LateUpdate()_lateUpdate—
void OnAnimatorIK(int layerIndex)_onAnimatorIKonAnimatorIKLayerIndex
void OnAnimatorMove()_onAnimatorMove—
void OnBecameInvisible()_onBecameInvisible—
void OnBecameVisible()_onBecameVisible—
void OnCollisionEnter(UnityEngine.Collision other)_onCollisionEnteronCollisionEnterOther
void OnCollisionEnter2D(UnityEngine.Collision2D other)_onCollisionEnter2DonCollisionEnter2DOther
void OnCollisionExit(UnityEngine.Collision other)_onCollisionExitonCollisionExitOther
void OnCollisionExit2D(UnityEngine.Collision2D other)_onCollisionExit2DonCollisionExit2DOther
void OnCollisionStay(UnityEngine.Collision other)_onCollisionStayonCollisionStayOther
void OnCollisionStay2D(UnityEngine.Collision2D other)_onCollisionStay2DonCollisionStay2DOther
void OnControllerColliderHit(UnityEngine.ControllerColliderHit hit)_onControllerColliderHitonControllerColliderHitHit
void OnDestroy()_onDestroy—
void OnDisable()_onDisable—
void OnEnable()_onEnable—
void OnJointBreak(float breakForce)_onJointBreakonJointBreakBreakForce
void OnJointBreak2D(UnityEngine.Joint2D brokenJoint)_onJointBreak2DonJointBreak2DBrokenJoint
void OnMouseDown()_onMouseDown—
void OnMouseDrag()_onMouseDrag—
void OnMouseEnter()_onMouseEnter—
void OnMouseExit()_onMouseExit—
void OnMouseOver()_onMouseOver—
void OnMouseUp()_onMouseUp—
void OnMouseUpAsButton()_onMouseUpAsButton—
void OnParticleCollision(UnityEngine.GameObject other)_onParticleCollisiononParticleCollisionOther
void OnParticleTrigger()_onParticleTrigger—
void OnPostRender()_onPostRender—
void OnPreCull()_onPreCull—
void OnPreRender()_onPreRender—
void OnRenderImage(UnityEngine.RenderTexture src, UnityEngine.RenderTexture dest)_onRenderImageonRenderImageSrc onRenderImageDest
void OnRenderObject()_onRenderObject—
void OnTransformChildrenChanged()_onTransformChildrenChanged—
void OnTransformParentChanged()_onTransformParentChanged—
void OnTriggerEnter(UnityEngine.Collider other)_onTriggerEnteronTriggerEnterOther
void OnTriggerEnter2D(UnityEngine.Collider2D other)_onTriggerEnter2DonTriggerEnter2DOther
void OnTriggerExit(UnityEngine.Collider other)_onTriggerExitonTriggerExitOther
void OnTriggerExit2D(UnityEngine.Collider2D other)_onTriggerExit2DonTriggerExit2DOther
void OnTriggerStay(UnityEngine.Collider other)_onTriggerStayonTriggerStayOther
void OnTriggerStay2D(UnityEngine.Collider2D other)_onTriggerStay2DonTriggerStay2DOther
void OnWillRenderObject()_onWillRenderObject—
void Start()_start—
void Update()_update—
書き方説明エラー理由代替
public void _start() と void Start()実行環境が使う名前をメソッド名にするTUKI0001環境メソッドの名前を変える
base.OnPlayerJoined(player)override した先から基底の実装を呼ぶTUKI0101環境基底の実装を呼ばずに、自分の処理だけを書く(基底に処理はありません)
系統名前を誤った場合引数の型を誤った場合
override で書く(82 個)CS0115 のエラーになりますCS0115 のエラーになります
名前と引数の型で書く(43 個)対応しています。呼ばれません対応しています。呼ばれません

イベントには 2 つの系統があり、宣言の場所も、綴りを検査する主体も異なります。

override で書く(82 個)名前で認識される(43 個)
由来実行環境のイベントUnity のメッセージ
宣言の場所基底の TsukimiBehaviour無い(自分で宣言する)
綴りの検査C# のコンパイラ行われない(綴りの検査)
引数の型の検査C# のコンパイラ行われない
一覧と外れたときCS0115 のエラー普通のメソッドになる
アクセス修飾子public override で書く問わない(private でもイベント)
戻り値基底の宣言どおりvoid
呼び出しの仕組み一覧の名前と引数の型に一致したメソッドへ _start のようなエントリポイントの名前が付き、実行環境はその名前で呼ぶ(C# の仮想呼び出しではない)同じ

最も短い書き方が Start です。

using UnityEngine;
using Tsukimi;
public class EventsStart : TsukimiBehaviour
{
void Start()
{
Debug.Log(1); // => 1
}
}

基底が持っている宣言に合わせます。

using UnityEngine;
using Tsukimi;
public class EventsInteract : TsukimiBehaviour
{
public override void Interact()
{
Debug.Log(2);
}
void Start()
{
Debug.Log(1); // => 1
}
}

override のほうは、綴りも引数の型も C# が見るので、その場でエラーになります。

using UnityEngine;
using Tsukimi;
using VRC.SDKBase;
public class R_events_override_typo : TsukimiBehaviour
{
public override void OnPlayerJoind(VRCPlayerApi player)
{
Debug.Log(player.playerId);
}
}

次の Update は引数を 1 つ取るためイベントにならず、private で呼び出し元も無いため命令も生成されません。

using UnityEngine;
using Tsukimi;
public class EventsNameMatchMiss : TsukimiBehaviour
{
private void Update(float delta)
{
Debug.Log(2);
}
void Start()
{
Debug.Log(1); // => 1
}
}

private を付けたメソッドもイベントになります。

using UnityEngine;
using Tsukimi;
public class EventsPrivateEvent : TsukimiBehaviour
{
private void LateUpdate()
{
Debug.Log(2);
}
void Start()
{
Debug.Log(1); // => 1
}
}

実行環境は、イベント名の先頭を小文字にして _ を付けた名前でプログラムを呼びます (Start なら _start。一覧の表の真ん中の列がこの名前です)。

この名前はメソッドの名前とは別に登録されるので、同じ綴りのメソッドを自分で書くと登録が 二重になり、TUKI0001 のエラーになります。

using UnityEngine;
using Tsukimi;
public class R_events_entry_collision : TsukimiBehaviour
{
public void _start()
{
Debug.Log(2);
}
void Start()
{
Debug.Log(1);
}
}
渡し方実行環境がイベントへ引数を渡す仕組みはありません。値を名前の付いた変数へ先に書き込み、そのあとイベントを呼びます
変数の名前先頭を小文字にしたイベント名と、先頭を大文字にした実行環境側の引数名をつないだもの(一覧の表の右の列)
名前が 1 文字でも違うと書き込みはどこにも反映されません。イベントは呼ばれ、引数は初期値のまま実行されます。エラーも実行時の失敗も出ません
対応づけを持つ相手コンパイラが持っていて、実行環境が持つイベントの定義と突き合わせてあります
using UnityEngine;
using Tsukimi;
using VRC.SDKBase;
public class EventsPlayerJoined : TsukimiBehaviour
{
public override void OnPlayerJoined(VRCPlayerApi player)
{
Debug.Log(player.playerId);
}
void Start()
{
Debug.Log(1); // => 1
}
}

変数の名前を決めるのは実行環境側の引数名なので、引数の名前は自由に付けられます。

using UnityEngine;
using Tsukimi;
using VRC.SDKBase;
public class EventsParameterName : TsukimiBehaviour
{
public override void OnPlayerLeft(VRCPlayerApi who)
{
Debug.Log(who.playerId);
}
void Start()
{
Debug.Log(1); // => 1
}
}

同じ規則で受け取ります。

using UnityEngine;
using Tsukimi;
public class EventsTriggerEnter : TsukimiBehaviour
{
void OnTriggerEnter(Collider other)
{
Debug.Log(other.gameObject.activeSelf);
}
void Start()
{
Debug.Log(1); // => 1
}
}

基底の宣言にある引数名と、実行環境が値を書きに来る変数の名前が食い違っているイベントが 22 個あります。書いた引数名は使われないので、動作に違いはありません。

イベント基底の宣言にある引数名引数が入る変数
InputDropvalueinputDropBoolValue
InputGrabvalueinputGrabBoolValue
InputJumpvalueinputJumpBoolValue
InputLookHorizontalvalueinputLookHorizontalFloatValue
InputLookVerticalvalueinputLookVerticalFloatValue
InputMoveHorizontalvalueinputMoveHorizontalFloatValue
InputMoveVerticalvalueinputMoveVerticalFloatValue
InputUsevalueinputUseBoolValue
OnImageLoadErrorresultonImageLoadErrorIVRCImageDownload
OnImageLoadSuccessresultonImageLoadSuccessIVRCImageDownload
OnListAvailableProductsproductsonListAvailableProductsResult
OnListProductOwnersproductonListProductOwnersResult
OnListPurchasesproductsonListPurchasesResult
OnOwnershipRequestrequestingPlayer requestedOwneronOwnershipRequestRequester onOwnershipRequestNewOwner
OnProductEventproductonProductEventResult
OnPurchaseConfirmedproductonPurchaseConfirmedResult
OnPurchaseConfirmedMultipleproductonPurchaseConfirmedMultipleResult
OnPurchaseExpiredproductonPurchaseExpiredResult
OnPurchasesLoadedproductsonPurchasesLoadedResult
OnStringLoadErrorresultonStringLoadErrorIVRCStringDownload
OnStringLoadSuccessresultonStringLoadSuccessIVRCStringDownload
OnVRCCameraSettingsChangedcameraSettingsonVRCCameraSettingsChangedCamera
using UnityEngine;
using Tsukimi;
using VRC.Udon.Common;
public class EventsInputJump : TsukimiBehaviour
{
public override void InputJump(bool value, UdonInputEventArgs args)
{
Debug.Log(value);
}
void Start()
{
Debug.Log(1); // => 1
}
}

引数の無い宣言も持っているイベントが 4 個あります。引数を使わないなら、こちらで書けます。

イベントもう 1 つの書き方
OnDeserializationvoid OnDeserialization()
OnOwnershipTransferredvoid OnOwnershipTransferred()
OnStationEnteredvoid OnStationEntered()
OnStationExitedvoid OnStationExited()
using UnityEngine;
using Tsukimi;
public class EventsNoArgumentOverload : TsukimiBehaviour
{
public override void OnStationEntered()
{
Debug.Log(2);
}
void Start()
{
Debug.Log(1); // => 1
}
}

コードを書かずに呼ばれるもの

Section titled “コードを書かずに呼ばれるもの”

一覧の表に並ぶイベントは、実行環境の定義に無いものを除いて、 どれも呼び出しを書かずに呼ばれます。Interact なら、プレイヤーが そのオブジェクトを使ったときです(認識の方式の例)。

近づいたときに出る文言は InteractionText で決めます。DisableInteractive を立てると、 そのオブジェクトは Interact を受け取らなくなり、輪郭も出なくなります。

using UnityEngine;
using Tsukimi;
public class EventsInteractAppearance : TsukimiBehaviour
{
public bool locked;
void Start()
{
InteractionText = "Open";
}
public override void Interact()
{
locked = !locked;
DisableInteractive = locked;
}
}

イベントとは別に、public を付けたメソッドは名前で登録され、SendCustomEvent の宛先に なります(書き方とエラーになる形はコンポーネントの取得と呼び出し)。

宛先としての登録は、そのプログラムの中に呼び出しが 1 つも無くても行われます。呼び出し元が別のプログラムや 実行環境にある場合、コンパイル時には検出できないためです。

OnDeserialization OnPreSerialization OnPostSerialization OnOwnershipRequest OnOwnershipTransferred は、値の同期と所有権に伴って呼ばれます。呼ばれる条件は 同期 にまとめてあります。

配布しているパッケージの基底では、次の 6 個が条件付きコンパイルで囲まれています。 プロジェクトでその機能を有効にしていないと、宣言そのものがないので override で書けません。

イベント条件
OnPersistenceUsageUpdatedVRC_ENABLE_PLAYER_PERSISTENCE || VRC_ENABLE_INSTANCE_PERSISTENCE
OnPlayerDataStorageExceededVRC_ENABLE_PLAYER_PERSISTENCE
OnPlayerDataStorageWarningVRC_ENABLE_PLAYER_PERSISTENCE
OnPlayerDataUpdatedVRC_ENABLE_PLAYER_PERSISTENCE
OnPlayerObjectStorageExceededVRC_ENABLE_PLAYER_PERSISTENCE
OnPlayerObjectStorageWarningVRC_ENABLE_PLAYER_PERSISTENCE

次の 2 個は書けますが、実行環境が持つイベントの定義に入っていません。この名前を override した既存のコードが、そのままコンパイルできるようにしてあります。

イベント
OnVideoPause
OnVideoPlay

実行環境の側にあって、この言語が持っていないイベントは 1 個です。OnVariableChange は 変数ごとに違う名前で呼ばれる形なので、1 つのイベントとしては置けません。この名前を override すると CS0115 のエラーになります。

using UnityEngine;
using Tsukimi;
public class R_events_on_variable_change : TsukimiBehaviour
{
public override void OnVariableChange()
{
Debug.Log(1);
}
}