云譜師來了-ArcadeZero的Screencontrol
原文地址:https://github.com/Tempestissiman/ArcadeScenecontrol
ArcadeZero下載地址:https://drive.google.com/drive/folders/1ziY89wDWrwQJxbD-YGCSIwMwdE_WzrRE
ArcadeZero開發(fā)者:https://www.youtube.com/channel/UCHnTjGOLbwufuYBnFnW8oYQ/featured
在譜面文件下建立Screencontrol文件夾,放置物件操作腳本,arcade在讀取譜面時會自動將文件夾內(nèi)腳本加載。
init.lua為首次加載譜面時運行的代碼,在其中創(chuàng)建的物體可以在其他腳本中進行訪問。
Screencontrol腳本的使用方式為:在/Screencontrol下創(chuàng)建{screencontrolType}.lua文件,在aff譜面文件中寫入screencontrol(timing,{screencontrolType},...)調(diào)用{screencontrolType}.lua中的命令。{screencontrolType}可自定義,如scenecontrol(1000,trackhide)為在1000時刻調(diào)用trackhide.lua。
scenecontrol(timing, scenecontrolType, parameter0, parameter1, parameter2, ...);
scenecontrol中的預(yù)定義函數(shù):
1)onAffCommand為讀取aff控制命令時(譜面文件的每一行)所觸發(fā)的函數(shù),傳入?yún)?shù)通過此函數(shù)實現(xiàn)。
onAffCommand(timing, parameter0, parameter1, parameter2...)? ??
2)register函數(shù)為觸發(fā)器函數(shù),指定onAffCommand創(chuàng)建或傳入的對象執(zhí)行自定義的函數(shù)動作。
register(ControllerBase object, number timing, number duration, string function)
3)getNoteGroup為獲取一個timinggroup下所有物件的函數(shù),返回值為NoteGroupController。
scenecontrol中的預(yù)定義參數(shù):
1)EventID:每次scenecontrol時間發(fā)生時自增的變量,用于區(qū)分物體名。使用方法{objectname}..EventID。..為字符串拼接操作,{objectname}可自定義。
2)BaseTiming:scenecontrol命令中傳入的首個時間值。
可能用到的Unity類屬性/內(nèi)置對象:
位置類:x,y,z
顏色類:r,g,b,a/h,s,v,a
平滑動畫:Ease(Linear,InSine,OutSine,InOurSine,InQuad...)
控制器:
setTranslation:設(shè)定物件位置
getTranslationAt:獲取物件位置
setRotation:設(shè)置旋轉(zhuǎn)
getRotationAt:獲取旋轉(zhuǎn)
setScale:設(shè)置縮放
getScaleAt:獲得縮放
setActive:設(shè)置可見
getActiveAt:獲得可見
setParent:綁定物件
setColor:設(shè)置顏色
getColorAt:獲得顏色
setLayerName:設(shè)置前后層級(字符),"Background", "Foreground", "Topmost"?
getLayerNameAt:獲得前后層級
setLayerOrder:設(shè)置前后層級(數(shù)字)
getLayerOrderAt:獲得前后層級
setText:設(shè)置文本
getTextAt:獲得文本
setAlpha:設(shè)置透明度
getAlphaAt:獲得透明度
物件類:
ControllerBase:基礎(chǔ)
SpriteController:物體控制類
TextController:文本控制類
NoteGroupController:音符簇控制類
UIPauseController:暫停按鈕
UIInfoController:信息板
Scene.getSprite可以操作的物件名:
Track,CriticalLine,DivedeLine01,DivedeLine12,DivedeLine23,SingleLineL,SingleLineR,SkyInputLine,SkyInputLabel,Background
調(diào)試:在onAffCommand直接return想要調(diào)試的值,在log中查看。