UdonGraph 基础教程:Event事件速查表
本期来盘点UdonGraph中所预设的所有事件的触发条件以及对应名称,本文将会按照官方文档中记载的顺序进行讲解,如果需要阅读原文请点击https://docs.vrczh.org/udonsharp.docs.vrchat.com/events#udon-update-events跳转至官方文档。
UdonGraphEvent事件速查
Udon Events:Udon独有事件
本类下的事件由来自UdonSharpBehaviour,是Vrchat独有的事件类型。
Udon Update Events:Udon更新事件(1Event)
PostLateUpdate() |
在计算 IK 后,在帧的末尾附近触发。此时获取骨骼位置将为您提供最新的位置,以便它们不会落后一帧。 |
Udon Input Events:Udon 输入事件(9Event)
此事件将会在所有平台以统一的方式读取玩家控制器的输入,即使玩家重新映射(更改绑定)控制器,这些事件也将会正常工作。
以下所有说到的对应案件仅指的是在玩家没有更改自己的默认设置的情况下的可能位置,实际上只要对应的条件达到,无论是什么东西触发的事件都会正常触发。
Event:Interact:触发事件
Interact() |
当 VRChat 玩家与此对象交互时触发。 |
Button Events:按钮事件
按钮事件包括一个 bool 值,按下按钮时为 true,释放按钮时为 false
除了按钮事件之外,组件还会带有一个UdonInputEventArgs的对象,对象定义请进入下方链接查看:
https://creators.vrchat.com/worlds/udon/input-events/#udoninputeventargs
InputJump() |
触发条件:跳跃键:PC上的空格,控制器上的Face按钮 |
InputUse() |
触发条件:触发键:在 PC 上单击鼠标左键,控制器上的触发(前扳机)按钮 |
InputGrab() |
触发条件:抓握:在桌面上单击鼠标左键,通常是 VR 控制器上的抓握按钮 |
InputDrop() |
触发条件:结束抓握:在桌面上单击鼠标左键,松开 VR 控制器上的抓握按钮 |
Axis Events:方向轴事件
事件的 float 值通常介于 -1 和 1 之间。当使用带有模拟摇杆的控制器时,每次值变化都会触发一个新事件,从 0 到 0.1,然后到 0.2,依此类推。桌面用户将输出整数:-1、0、1 等。
InputMoveHorizontal() |
输入水平移动 桌面上的 A 和 D,通常是控制器上左右移动的左摇杆/垫 |
InputMoveVertical() |
输入垂直移动(前后移动) 桌面上的 W 和 S,通常是控制器上下移动的左摇杆/垫 |
InputLookVertical() |
输入垂直视角(上下看) 在桌面上上下移动鼠标,通常是在游戏手柄和 VR 控制器上上下移动右摇杆。 |
InputLookHorizontal() |
输入水平视角(左右看) 在桌面上左右移动鼠标,使用右摇杆/手柄向左和向右转动,无需舒适打开 VR 控制器,通常是在游戏手柄控制器上左右右摇杆。 |
Udon Pickup Events:Udon拾取事件(4Event)
本类下的四个事件都需要保证物体已经挂载了VrcPickup脚本,您可以在以下链接找到关于这个脚本的信息
https://docs.vrczh.org/creators.vrchat.com/worlds/components/vrc_pickup
OnDrop() |
当 VRChat 玩家在抓住后放置此对象时触发。 |
OnPickup() |
当 VRChat 播放器拾取此对象时触发 |
OnPickupUseup() |
按住此对象并按下 Use 按钮时触发。按钮向上时触发。在桌面上需要 'Auto Hold'。 |
OnpickupUseDown() |
按住此对象并按下 Use 按钮时触发。按下按钮时触发。在桌面上需要 'Auto Hold'。 |
Udon Networking Events:Udon网络事件(5Event)
OnOwnershipRequest() |
当 UdonBehaviour 将要更改所有者时触发。
将会返回UdonBehaviour是否接受所有权变更 |
OnOwnershipTransferred() |
每次 UdonBehaviour 更改所有者时触发 |
OnpreSerialization() |
在发送网络数据之前触发 |
OnpostSerialization() |
在发送网络数据后触发,并提供有关序列化尝试是否成功以及序列化了多少字节的数据。 |
OnDeserialization() |
收到网络数据时触发 |
Udon Player Events:Udon玩家活动(11Event)
该类下的事件还会附带触发事件的玩家的数据,以供处理
当玩家加入时触发
|
|
当玩家离开时触发 | |
当玩家重生时触发 | |
当玩家进入触发器区域时触发 | |
当玩家停留在触发器区域时触发 | |
当玩家离开触发器区域时触发 | |
当玩家和碰撞体碰撞时触发 | |
当玩家停留在碰撞体上时触发 | |
当玩家离开碰撞体时触发 | |
当碰撞粒子击中玩家时触发 | |
当碰撞体与玩家触碰时触发 |
Udon Station Events:Udon站点事件(2Event)
具体用法请看官方文档,这里只介绍触发事件
https://docs.vrczh.org/creators.vrchat.com/worlds/components/vrc_station
OnstationEntered |
当玩家进入时触发 |
OnStationExited |
当玩家离开时触发 |
Udon Video Events:Udon视频播放器事件(5Event)
UdonGraph不存在Pause和Start两个事件,请注意
OnVideoEnd() |
当视频播放器结束播放时 |
OnvideoError |
当播放器发生错误时 |
OnVideoLoop |
如果启用了循环,这将在结束时触发 |
OnvideoStart |
首次播放视频时(未确认) |
OnvideoRedy |
当视频播放器加载了 url 时 |
Udon MIDI Events:UdonMIDI事件(3Event)
请移步https://docs.vrczh.org/creators.vrchat.com/worlds/udon/midi/查看关于Midi的相关信息以及参数定义
MidiNoteON |
接收到 "Note On" 时触发。无论是 MIDI 回放还是按下您乐器上的按键都会触发该事件。 |
MidiNoteOFF |
接收到 "Note On" 时触发。一般会在松开您乐器上的按键时触发的。 |
MidiControlChange |
接收到控制变化时触发。这些变化通常由 Midi 设备上的旋钮和滑块发出。 |
Udon String/Image Loading Events:Udon 字符串/图像加载事件(4Event)
具体使用方式请阅读:
https://docs.vrczh.org/creators.vrchat.com/worlds/udon/string-loading:字符串加载
https://docs.vrczh.org/creators.vrchat.com/worlds/udon/image-loading:图像加载
OnImageLoadSuccess |
当图像下载成功时触发。 |
OnImageLoadError |
镜像下载失败时触发。 |
OnstringLoadSuccess |
字符串下载成功时触发。 |
OnstringLoadError |
字符串下载失败时触发。 |
Unity Events:Unity事件
并非Udon特有的事件,而是Unity原生自带的事件,事件一共有28个事件,覆盖了大部分的使用场景
未完待续
未完待续……