一切都在 Udonite.Pens 里;编辑器 API 是 Udonite.Pens.Editor.PensSetup。
Pen 和 Eraser
两者都是工具:握持方式和书写位置的规则相同。
握持
| 成员 |
|
holding |
VrcPickup 跟随同一物体上的 VRCPickup;Custom 等待下面的调用 |
undoKey |
通过 VRCPickup 握持时用于撤销的桌面按键,默认 R |
returnAfter |
松手后经过多少秒,通过 VRCObjectSync 回到世界放置它的位置。0 表示不回去 |
haptics |
通过 VRCPickup 握持时,开始书写会在 VR 手上短促振动一下。默认开启 |
tip |
在 VR 中书写的点 |
world |
场景的 PenWorld,留空会自动查找 |
SetHeld(bool) |
本地玩家是否握着它 |
SetUse(bool) |
Use 是否按下 |
Undo() |
撤销握笔者最近的一笔 |
PutBack() |
松手并立即送回世界放置它的位置 |
bool IsHeld、bool IsDrawing |
本地玩家正在用它做什么 |
书写位置
| 成员 |
|
desktopAim |
桌面和手机玩家从哪里书写:View 是视线所在,Tip 是手中工具的笔尖在画面上的位置,并保持在这一笔开始时的距离 |
drawInAir |
够不到白板时在空中书写。关闭后只在白板上书写 |
airDistance |
桌面或手机玩家视线前方多少米处写空中墨迹,默认 0.5 |
reach |
桌面或手机玩家能够到所注视白板的距离(米),默认 4 |
contactDistance |
VR 笔尖距白板在这个距离(米)以内仍可在上面书写 |
sendInterval |
书写时的发送间隔(秒) |
Pen
| 成员 |
|
colour、width |
墨迹颜色和宽度(米) |
inkStyle |
使用 PenWorld.inkStyles 中的哪一种 |
spacing |
笔尖移动多少米后笔画增加一个点 |
steadiness |
笔尖缓慢移动时用于稳定手抖的秒数;快速书写时几乎紧跟笔尖。点的间距不会小于线宽的一半 |
snap |
把每个点对齐到这个间距(米)的网格上。0 表示自由书写 |
pixelBrush |
在像素板上围绕笔尖涂的格数 |
Eraser
| 成员 |
|
radius |
笔尖或视线周围多少米内的笔画会被擦掉 |
pixelBrush |
在像素板上清除的格数 |
eraseInterval |
擦除间隔(秒) |
PenWorld
场景的墨迹。
| 成员 |
|
lines、pointsPerLine |
线条池,以及每条线的点数;更长的笔画会接续到下一条 |
inkStyles |
笔画所复制的模板线条:材质、宽度曲线、纹理模式、端点和拐角 |
smoothing |
在笔发送的每两个点之间沿曲线绘制的点数。默认 4,1 表示直线连接 |
taper |
笔画两端变细的长度(以线宽计)。0.5 让两端变圆,0 则切成方头 |
inkLifetime |
墨迹自行消失前的秒数。0 表示保留 |
keepLeaversInk |
玩家离开后保留其墨迹 |
lateJoinerBytes、joinDelay、catchUpSeconds |
后来加入的玩家收到多少墨迹、何时收到 |
boards |
所有白板,顺序在所有客户端一致。由 Refresh Boards 填写 |
StrokeTable Strokes |
本客户端显示的笔画,供需要读取的世界使用 |
StartStroke、AddInk、SendInk |
用代码书写笔画 |
EraseAt(point, radius)、EraseAlong(from, to, radius) |
像板擦一样擦除 |
UndoLatest() |
撤销本地玩家最近的一笔 |
ClearPen(pen) |
为所有人擦除某支笔的颜色、宽度和样式画出的全部笔画,不论是谁画的 |
Paint(board, kind, colour, cells) |
为所有人涂像素板格子 |
ClearBoard(board)、ClearInk(surface)、ClearEverything() |
为所有人清除 |
Whiteboard
| 成员 |
|
mode |
Ink 或 PixelGrid |
size、inkLift |
书写区域(米),以及墨迹浮在板前的距离 |
columns、rows |
像素板格数,每边最多 256 |
palette、background |
像素板的颜色,以及板擦涂的颜色 |
surface、textureProperty、smoothPixels |
像素的显示方式 |
publishDelay、publishInterval |
为后来者保存画面的快慢 |
int ColourAt(cell) |
某格显示的颜色索引 |
int CellAt(point) |
某点下方的格子 |
| 成员 |
|
boards |
要清除的白板 |
clearAirInk |
同时清除空中的墨迹 |
access |
Everyone 或实例所有者 |
label |
按钮上的文字 |
编辑器
Udonite > Pens 下的每个菜单项都是 PensSetup 的包装。每个调用都返回它创建的东西,同名的已存在时则返回现有的。
| 成员 |
|
CreatePenSet(Vector3) |
托盘上的四支笔和一块板擦 |
CreatePen(name, colour, position, inkStyle, width) |
一支笔 |
CreateEraser(name, position)、CreateTray(position) |
板擦、托盘 |
CreateWhiteboard(name, mode, position, rotation, size) |
墨迹白板或像素板 |
CreateClearButton(board) |
白板旁的清除按钮 |
CreateInkStyle(name, material, widthCurve) |
一种墨迹样式,返回其索引 |
SetInkLines(world, count) |
设置线条池大小 |
Refresh() |
把场景中的白板登记到 PenWorld |
SyncPreset.Light、Balanced、Smooth |
Apply(world, pens, erasers) 一次设定网络设置 |