Skip to main content

事件节点

这是被视为"事件"的 Udon 节点列表。

您的脚本可以使用事件来检测动作并触发动作或逻辑链。输入事件有自己单独的页面。要跳转到图表中的事件,请在图表侧边栏中单击它。

以下所有节点在需要逻辑的地方都有流程节点。

note

更多与网络相关的事件列在网络组件页面上。

Interact​

当本地玩家与此 GameObject 交互时触发。

  • 玩家只能与具有碰撞器组件和 UdonBehaviour 组件的 GameObject 交互。
  • 如果你希望玩家与 2D UI 交互,请改用 VRC Ui Shape 和按钮组件。

OnDrop​

当本地玩家放下持有的此对象时触发。

OnPickup​

当此对象被本地玩家拾取时触发。

OnPickupUseDown​

当本地玩家持有此对象并按下"使用"按钮时触发。在按钮按下时触发。桌面端需要"自动持有"。

OnPickupUseUp​

当本地玩家持有此对象并按下"使用"按钮时触发。在按钮释放时触发。桌面端需要"自动持有"。

OnPlayerJoined​

输出:player - VRC.SDKBase.VRCPlayerApi

当任何玩家加入实例时触发。输出加入的 player。

当你加入实例时,你为实例中的每个玩家(包括自己)执行 OnPlayerJoined。当其他玩家加入你的实例时,你仅为加入的玩家执行 OnPlayerJoined。

OnPlayerLeft​

Event_OnPlayerLeft

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中的任何玩家离开时触发。输出离开的 player。

OnPlayerRestored​

Event_OnPlayerRestored

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中玩家的所有持久数据加载完成后触发,包括他们的所有 PlayerData 和 PlayerObjects。输出数据已加载的 player。

当你加入实例时,你为实例中的每个玩家(包括自己)执行 OnPlayerRestored。当其他玩家加入你的实例时,你仅为加入的玩家执行 OnPlayerRestored。

OnStationEntered​

Event_OnStationEntered

当本地玩家进入此对象上的载具时触发。

OnStationExited​

Event_OnStationExited

当本地玩家离开此对象上的载具时触发。

OnVideoEnd​

Event_OnVideoEnd

当此对象上的视频播放器播放完毕时触发,无论是视频结束还是玩家交互。

OnVideoError​

Event_OnVideoError

输出:videoError - VRC.SDK3.Components.Video.VideoError

当视频播放器加载视频时遇到错误触发。

OnVideoLoop​

Event_OnVideoLoop

如果启用了循环,当视频播放器完成一次循环时触发。

OnVideoPause​

Event_OnVideoPause

当此对象上的视频播放器暂停时触发。

OnVideoPlay​

Event_OnVideoPlay

当此对象上的视频播放器开始播放时触发,无论是队列中新视频开始、取消暂停还是玩家交互。

OnVideoStart​

Event_OnVideoStart

当此对象上的视频播放器从停止状态开始播放时触发。

OnVideoReady​

Event_OnVideoReady

当视频播放器加载新视频时触发。

玩家事件​

OnPlayerTriggerEnter​

Event_OnPlayerTriggerEnter

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器进入触发器碰撞器时触发。

OnPlayerTriggerStay​

Event_OnPlayerTriggerStay

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器位于触发器碰撞器内部时,每帧触发。

OnPlayerTriggerExit​

Event_OnPlayerTriggerExit

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器离开触发器碰撞器时触发。

OnPlayerCollisionEnter​

Event_OnPlayerCollisionEnter

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器进入碰撞器时触发。

OnPlayerCollisionStay​

Event_OnPlayerCollisionStay

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器位于碰撞器内部时,每帧触发。

OnPlayerCollisionExit​

Event_OnPlayerCollisionExit

输出:player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的胶囊碰撞器离开碰撞器时触发。

OnPlayerParticleCollision​

Event_OnPlayerParticleCollision

输出:player - VRC.SDKBase.VRCPlayerApi

当粒子与实例中任何玩家的胶囊碰撞器碰撞时触发,前提是该粒子系统已开启"碰撞"和"发送碰撞消息"。

OnPlayerRespawn​

Event_OnPlayerRespawn

输出:player - VRC.SDKBase.VRCPlayerApi

当本地玩家通过点击菜单中的"重生"重生时触发。

OnPersistenceUsageUpdated​

Event_OnPersistenceUsageUpdated

输出:player - VRC.SDKBase.VRCPlayerApi

当玩家的持久存储使用量更新时触发。

OnPlayerDataStorageExceeded​

Event_OnPlayerDataStorageExceeded

输出:player - VRC.SDKBase.VRCPlayerApi

当玩家超出其玩家数据存储限制时触发。

OnPlayerDataStorageWarning​

Event_OnPlayerDataStorageWarning

输出:player - VRC.SDKBase.VRCPlayerApi

当玩家接近其玩家数据存储限制时触发。

OnPlayerObjectStorageExceeded​

Event_OnPlayerObjectStorageExceeded

输出:player - VRC.SDKBase.VRCPlayerApi

当玩家超出其玩家对象存储限制时触发。

OnPlayerObjectStorageWarning​

Event_OnPlayerObjectStorageWarning

Outputs: player - VRC.SDKBase.VRCPlayerApi

当玩家接近其玩家对象存储限制时触发。

OnScreenUpdate​

Event_OnScreenUpdate

输出:data - VRC.SDK3.Platform.ScreenUpdateData

当本地玩家首次进入移动设备上的世界以及设备方向更改时触发。输出包含以下值的 ScreenUpdateData 结构:

  • type - ScreenUpdateType - 目前仅为 OrientationChanged,未来可能扩展。
  • orientation - VRCOrientation - 玩家设备的方向,作为 VRC.SDKBase.Platform.VRCOrientation 枚举,值为 Landscape 或 Portrait。
  • resolution - Vector2 - 玩家设备的分辨率,作为 Vector2 结构。

OnInputMethodChanged​

Event_OnInputMethodChanged 输出:inputMethod - VRC.SDKBase.VRCInputMethod 当本地玩家使用不同的输入方法(键盘、鼠标、控制器等)时触发。

OnLanguageChanged​

Event_OnLanguageChanged Outputs: language - string 当本地玩家更新其显示语言时触发。

OnPlayerSuspendChanged​

Event_OnPlayerSuspendChanged

Outputs: player - VRC.SDKBase.VRCPlayerApi

当实例中任何玩家的设备变为挂起状态时触发。设备在进入睡眠模式或切换到其他应用时会被挂起。对于被挂起的玩家,此事件将在唤醒时触发。检查 VRCPlayerApi.isSuspended 以确定是唤醒还是挂起事件。

挂起时,设备不会运行 Udon 代码或响应网络事件,直到玩家重新打开 VRChat。

当你在 VRChat 中创建多人互动时,你应该对挂起的玩家做出反应,以确保你的 Udon 代码按预期继续运行。例如,你可能希望将重要对象的所有权转移给未被挂起的玩家。

你的代码应考虑到任何设备随时可能被挂起,无论平台如何。PC 玩家目前永远不会被挂起,但不应以此为前提。

OnVRCPlusMassGift​

Event_OnVRCPlusMassGift

Outputs:

  • gifter - VRC.SDKBase.VRCPlayerApi
  • numGifts - int

当实例中任何玩家投放礼物炸弹时触发。

OnVRCCameraSettingsChanged​

Event_OnVRCCameraSettingsChanged

Outputs: camera - VRC.SDK3.Rendering.VRCCameraSettings

当用户在 VRChat 图形设置中更改某些选项时触发,例如"近裁剪覆盖"或"视野"。

通过 VRCCameraSettings 自行更改值不会触发此事件!同样,相机的 Position 和 Rotation 也不会触发它,因为它们几乎每帧都在变化。

传入的 camera 对象指的是 ScreenCamera 或 PhotoCamera(参见 VRCCameraSettings)。请注意,当用户使用 PhotoCamera 上的缩放滑块或 Dolly 路径调整缩放值时,此事件将每帧触发,因为它们会影响 FieldOfView 值。

更改屏幕分辨率,包括通过调整 VRChat 窗口大小,也会每帧调用此事件。建议进行最小处理以避免影响性能。

此事件可能每帧触发多次。

OnVRCQualitySettingsChanged​

Event_OnVRCQualitySettingsChanged

当用户调整影响 VRC.SDK3.Rendering.VRCQualitySettings 中一个或多个值的图形设置时触发。

与 OnVRCCameraSettingsChanged 类似,此事件可能频繁触发,建议保持轻量处理。

高级说明​

此列表中的所有节点的类型都是 System.Void。