云谱师来了-ArcadeZero的Screencontrol
原文地址:https://github.com/Tempestissiman/ArcadeScenecontrol
ArcadeZero下载地址:https://drive.google.com/drive/folders/1ziY89wDWrwQJxbD-YGCSIwMwdE_WzrRE
ArcadeZero开发者:https://www.youtube.com/channel/UCHnTjGOLbwufuYBnFnW8oYQ/featured
在谱面文件下建立Screencontrol文件夹,放置物件操作脚本,arcade在读取谱面时会自动将文件夹内脚本加载。
init.lua为首次加载谱面时运行的代码,在其中创建的物体可以在其他脚本中进行访问。
Screencontrol脚本的使用方式为:在/Screencontrol下创建{screencontrolType}.lua文件,在aff谱面文件中写入screencontrol(timing,{screencontrolType},...)调用{screencontrolType}.lua中的命令。{screencontrolType}可自定义,如scenecontrol(1000,trackhide)为在1000时刻调用trackhide.lua。
scenecontrol(timing, scenecontrolType, parameter0, parameter1, parameter2, ...);
scenecontrol中的预定义函数:
1)onAffCommand为读取aff控制命令时(谱面文件的每一行)所触发的函数,传入参数通过此函数实现。
onAffCommand(timing, parameter0, parameter1, parameter2...)
2)register函数为触发器函数,指定onAffCommand创建或传入的对象执行自定义的函数动作。
register(ControllerBase object, number timing, number duration, string function)
3)getNoteGroup为获取一个timinggroup下所有物件的函数,返回值为NoteGroupController。
scenecontrol中的预定义参数:
1)EventID:每次scenecontrol时间发生时自增的变量,用于区分物体名。使用方法{objectname}..EventID。..为字符串拼接操作,{objectname}可自定义。
2)BaseTiming:scenecontrol命令中传入的首个时间值。
可能用到的Unity类属性/内置对象:
位置类:x,y,z
颜色类:r,g,b,a/h,s,v,a
平滑动画:Ease(Linear,InSine,OutSine,InOurSine,InQuad...)
控制器:
setTranslation:设定物件位置
getTranslationAt:获取物件位置
setRotation:设置旋转
getRotationAt:获取旋转
setScale:设置缩放
getScaleAt:获得缩放
setActive:设置可见
getActiveAt:获得可见
setParent:绑定物件
setColor:设置颜色
getColorAt:获得颜色
setLayerName:设置前后层级(字符),"Background", "Foreground", "Topmost"
getLayerNameAt:获得前后层级
setLayerOrder:设置前后层级(数字)
getLayerOrderAt:获得前后层级
setText:设置文本
getTextAt:获得文本
setAlpha:设置透明度
getAlphaAt:获得透明度
物件类:
ControllerBase:基础
SpriteController:物体控制类
TextController:文本控制类
NoteGroupController:音符簇控制类
UIPauseController:暂停按钮
UIInfoController:信息板
Scene.getSprite可以操作的物件名:
Track,CriticalLine,DivedeLine01,DivedeLine12,DivedeLine23,SingleLineL,SingleLineR,SkyInputLine,SkyInputLabel,Background
调试:在onAffCommand直接return想要调试的值,在log中查看。