Arcade-Chan 用户脚本 / 开发手册 / Arcade.Scripting
参考
表示一个用于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+ |