欢迎光临散文网 会员登陆 & 注册

云谱师来了-ArcadeZero的Screencontrol

2022-02-24 21:37 作者:橘猫Orzcat  | 我要投稿

原文地址:https://github.com/Tempestissiman/ArcadeScenecontrol

ArcadeZero下载地址:https://drive.google.com/drive/folders/1ziY89wDWrwQJxbD-YGCSIwMwdE_WzrRE

ArcadeZero开发者:https://www.youtube.com/channel/UCHnTjGOLbwufuYBnFnW8oYQ/featured

  1. 在谱面文件下建立Screencontrol文件夹,放置物件操作脚本,arcade在读取谱面时会自动将文件夹内脚本加载。

  2. init.lua为首次加载谱面时运行的代码,在其中创建的物体可以在其他脚本中进行访问。

  3. Screencontrol脚本的使用方式为:在/Screencontrol下创建{screencontrolType}.lua文件,在aff谱面文件中写入screencontrol(timing,{screencontrolType},...)调用{screencontrolType}.lua中的命令。{screencontrolType}可自定义,如scenecontrol(1000,trackhide)为在1000时刻调用trackhide.lua。

    scenecontrol(timing, scenecontrolType, parameter0, parameter1, parameter2, ...);

  4. 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。

  5. scenecontrol中的预定义参数:

    1)EventID:每次scenecontrol时间发生时自增的变量,用于区分物体名。使用方法{objectname}..EventID。..为字符串拼接操作,{objectname}可自定义。

    2)BaseTiming:scenecontrol命令中传入的首个时间值。

  6. 可能用到的Unity类属性/内置对象:

    位置类:x,y,z

    颜色类:r,g,b,a/h,s,v,a

    平滑动画:Ease(Linear,InSine,OutSine,InOurSine,InQuad...)

  7. 控制器:

    setTranslation:设定物件位置

    getTranslationAt:获取物件位置

    setRotation:设置旋转

    getRotationAt:获取旋转

    setScale:设置缩放

    getScaleAt:获得缩放

    setActive:设置可见

    getActiveAt:获得可见

    setParent:绑定物件

    setColor:设置颜色

    getColorAt:获得颜色

    setLayerName:设置前后层级(字符),"Background", "Foreground", "Topmost" 

    getLayerNameAt:获得前后层级

    setLayerOrder:设置前后层级(数字)

    getLayerOrderAt:获得前后层级

    setText:设置文本

    getTextAt:获得文本

    setAlpha:设置透明度

    getAlphaAt:获得透明度

  8. 物件类:

    ControllerBase:基础

    SpriteController:物体控制类

    TextController:文本控制类

    NoteGroupController:音符簇控制类

    UIPauseController:暂停按钮

    UIInfoController:信息板

  9. Scene.getSprite可以操作的物件名:

    Track,CriticalLine,DivedeLine01,DivedeLine12,DivedeLine23,SingleLineL,SingleLineR,SkyInputLine,SkyInputLabel,Background

  10. 调试:在onAffCommand直接return想要调试的值,在log中查看。






云谱师来了-ArcadeZero的Screencontrol的评论 (共 条)

分享到微博请遵守国家法律