Skip to content

Latest commit

 

History

History
72 lines (62 loc) · 4.59 KB

File metadata and controls

72 lines (62 loc) · 4.59 KB

Arcade-Chan 用户脚本 / 开发手册 / Arcade.Scripting

ScriptChart 类

参考

定义

命名空间: Arcade.Scripting.Apis.Aff
Lua层级: <Global>
程序集: Arcade.Scripting.dll

表示一个用于Lua脚本的Arcaea谱面对象。

[MoonSharpUserData]
public sealed class ScriptChart : IDisposable

继承 Object -> ScriptChart

实现 IDisposable

注解

该类是所有通过Lua层对已加载的谱面进行CRUD(增删改查)操作的入口类,其为一个单例类,且在Lua层中无法直接创建新的实例(构造函数不对Lua层公开)。
Lua层获取该类实例需要通过ChartInstance全局变量或LoadActiveChart()工厂方法进行。
该类可看作是谱面对象 Arcade.Gameplay.Chart.ArcChart 的「脚本」封装,提供了对谱面中的所有事件进行操作的方法。
若需要修改现有谱面元素,可先获取元素的脚本对象,然后修改其属性即可(修改会自动触发一个内部的通知事件,因此会自动更新到谱面对象中)。

属性

该类没有向脚本层公开的属性。

方法

方法名 说明
LoadActiveChart() 从当前已加载的谱面文件 ArcChart 对象创建用于脚本的谱面对象 ScriptChart。
Refresh() 刷新当前脚本谱面对象,将其与当前已加载的谱面文件对象同步。其作用等价于Sync()
Sync() 将当前脚本谱面对象(ScriptChart)与已加载的最新谱面对象(ArcChart)同步。其作用等价于Refresh()
Save() 保存谱面到文件。其作用等价于编辑器中单击保存按钮或按默认为Ctrl+S的快捷键。
SaveWithoutNotify() 保存谱面到文件,但不触发保存通知。
AddTiming(ScriptTiming) 添加一个Timing(时间点)脚本事件到谱面中。
AddTap(ScriptTap) 添加一个Tap音符到谱面中。
AddHold(ScriptHold) 添加一个Hold音符到谱面中。
AddArc(ScriptArc) 添加一个Arc音符到谱面中。
AddTimingGroup(ScriptTimingGroup) 添加一个TimingGroup(时间组)到谱面中。
RemoveTiming(ScriptTiming) 从谱面中移除一个Timing(时间点)脚本事件。
RemoveTap(ScriptTap) 从谱面中移除一个Tap音符。
RemoveHold(ScriptHold) 从谱面中移除一个Hold音符。
RemoveArc(ScriptArc) 从谱面中移除一个Arc音符。
RemoveTimingGroup(ScriptTimingGroup) 从谱面中移除一个TimingGroup(时间组)。
ViewEvents() 获取所有脚本事件(不包括ScriptTimingGroup)的只读视图。
ViewTimings() 获取所有脚本Timing(时间点)事件的只读视图。
ViewTaps() 获取所有脚本Tap音符的只读视图。
ViewHolds() 获取所有脚本Hold音符的只读视图。
ViewArcs() 获取所有脚本Arc音符的只读视图。
ViewCameras() 获取所有脚本Camera(相机动画)事件的只读视图。
ViewSceneControls() 获取所有脚本SceneControl(场景控制)事件的只读视图。
ViewTimingGroups() 获取所有脚本TimingGroup(时间组)的只读视图。
ViewBasicObjects(GettableScriptObjectType) 获取指定类型的基本脚本对象的只读视图。
GettableScriptObjectType枚举值可以是以下之一: Timing/Tap/Hold/Arc/Camera/SceneControl/TimingGroup/All

适用于

产品 版本
Arcade-Chan 3.3.0+

另请参阅