全站-加入QQ频道-第一版.png
全站-加入QQ频道-第一版.png
近期平台发版更新修复了一些问题,如果还有问题请反馈给站长
(遇到相关问题请携带截图私信给站长残天

全站通知:

埋久UI库

阅读

    

2025-03-09更新

    

最新编辑:埋久umaru

阅读:

  

更新日期:2025-03-09

  

最新编辑:埋久umaru

来自觅长生WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
埋久umaru
首页攻略埋久UI库
剧情时脚本
指令 说明
CreateUI

创建UI

CreateUI*UI名字#UI类型#父级UI

UI名字主要可用于通过名字查找UI(如果有重复名字只能找到第一个找到的)
UI类型:【0空1按钮2文本3图片4动态立绘(Spine)】其中按钮UI是自带图片的,如果填0的话,则是一个空面板,可以用来作为父级
UI会挂在父级UI下,跟随父级UI移动缩放显示隐藏等,如果还没有父级UI,可以填0,则挂在觅长生原版主UI上
(注意UI挂父级时,不要全部都挂在0号父级上,可以建个空面板挂上去,后面新建的UI全部挂在这个空面板上)

json示例:CreateUI*新建的UI名字#0#0
Lua示例:runner.CreateUI("新建的按钮UI",1,0)

SetUIShow

显示\隐藏UI

SetUIShow*UIID#0隐藏1显示

json示例:SetUIShow*1#0
Lua示例:runner.SetUIShow(1,0)

SetUIEnable

启用\禁用UI

SetUIEnable*UIID#0禁用1启用

被禁用后的UI不会遮挡鼠标,也不会触发按钮事件

json示例:SetUIEnable*1#0
Lua示例:runner.SetUIEnable(1,0)

SetUIParent

修改UI父级

SetUIParent*UIID#目标父级UI

UI会跟随父级移动放大缩小等,父级隐藏,子级也会跟随隐藏

json示例:SetUIParent*2#1
Lua示例:runner.SetUIParent(2,1)

SetUIImage

设置UI图片(仅按钮UI、图片UI可用)

SetUIImage*UIID#图片路径#0不改变UI大小1使用图片大小

图片路径可以使用Next的Asset下的图片,也可以使用原版图片

json示例:SetUIImage*1#UI/问号#1
Lua示例:runner.SetUIImage("UI/问号",1)

SetImageColor

设置UI图片颜色(仅按钮UI、图片UI可用)

SetUIImage*UIID#R#G#B#A

接收0-255的数字,可以给图片调色,不懂RGBA值可以随便找个ps之类的软件自己调色看看

json示例:SetImageColor*1#255#255#255#255
Lua示例:runner.SetImageColor(1,255,255,255,255)

SetTextColor

设置文本颜色(仅文本UI可用)

SetTextColor*UIID#R#G#B#A

接收0-255的数字,可以给文本调色,不懂RGBA值可以随便找个ps之类的软件自己调色看看

json示例:SetTextColor*1#255#255#255#255
Lua示例:runner.SetTextColor(1,255,255,255,255)

SetUIEX

设置UI属性

SetUIEX*UIID#长度#高度#坐标X#坐标Y#缩放X#缩放Y

就是设置UI的大小、位置、缩放信息

json示例:SetUIEX*1#100#100#0#0#1#1
Lua示例:runner.SetUIEX(1,100,100,0,0,1,1)

SetUISize

设置UI大小

SetUISize*UIID#长度#高度

具体数值参考分辨率,如果你游戏大小是1920*1080,那你设置1980长度,1080宽度就和你游戏窗口一样大

json示例:SetUISize*1#1920#1080
Lua示例:runner.SetUISize(1,1920,1080)

SetUIPosition

设置UI局部坐标

SetUIPosition*UIID#坐标X#坐标Y

当你父级为0时,如果坐标X为0,坐标Y为0,则为屏幕正中心。此时往左x为负数,往右x为正数,往上y为正数,往下y为负数。
注意这是局部坐标,如果你父级不为0时,则具体坐标是跟随父级中心位置进行偏移,比如x为0,y为-10,则是在父级UI中心往下10像素的位置。
修改父级局部坐标,则子级会跟随移动

json示例:SetUIPosition*1#0#0
Lua示例:runner.SetUIPosition(1,0,0)

SetUIScale

设置UI缩放

SetUIScale*UIID#缩放X#缩放Y

可以理解翻N倍长度或者高度,默认为1倍,即不进行缩放。注意子级会跟随进行缩放。如果设置为-x,则进行水平翻转,-y,则进行垂直翻转

json示例:SetUIScale*1#1#1
Lua示例:runner.SetUIScale(1,1,1)

SetText

设置文本

SetText*UIID#文本内容#字体大小#字体风格#对齐模式

文本内容里可以自己加颜色代码
字体风格0法线1加粗2斜体3加粗且斜体
对齐模式0左上 1上 2右上 3左 4居中 5右 6左下 7下 8右下

json示例:SetText*1#这是一个文本示例#20#0#3
Lua示例:runner.SetText(1,"这是一个文本示例",20,0,3)

SetFont

设置文本字体

SetFont*UIID#字体名称

这个比较复杂,可以填"CLOUDLIBIAN-GB-NORMAL",是觅长生通用字体,还有几种我有空看一下
json示例:SetFont*1#CLOUDLIBIAN-GB-NORMAL
Lua示例:runner.SetText(1,"CLOUDLIBIAN-GB-NORMAL")

InitUI

初始化UI

InitUI*UIID

把UI的局部坐标归0,缩放归1
json示例:InitUI*1
Lua示例:runner.InitUI(1)

AddButtonEvent

添加按钮点击事件

AddButtonEvent*UIID#事件类型#事件名称

事件类型:0 Next剧情事件(就是DialogEvent文件夹里的) 1 Next指令(直接触发指令,json格式的) 2 Lua函数,需要先用字典将函数保存到C#中,比如env.customData:set_Item("XX事件",function()retrun end)或者env.customData:set_Item("XX事件",func(xxxxx)),具体可以看示例

json示例:AddButtonEvent*1#0#UI按钮点击示例
Lua示例:runner.AddButtonEvent(1,1,"ShowTip*测试")

ClearButtonEvent

清除按钮所有点击事件

AddButtonEvent*UIID#事件类型#事件名称

json示例:ClearButtonEvent*1
Lua示例:runner.ClearButtonEvent(1)

RemoveUI

销毁UI

RemoveUI*UIID

子级也会全部一起销毁

json示例:RemoveUI*1
Lua示例:runner.RemoveUI(1)

RegisterUITrigger

注册UI触发器

RegisterUITrigger*UIID

json示例:RegisterUITrigger*1
Lua示例:runner.RegisterUITrigger(1)

RegisterUIEvent

注册UI触发事件

RegisterUIEvent*UIID#触发类型#事件类型#事件名称

要先注册触发器才有效果

触发类型:1仅首次使用时触发(主要用于初始化) 2UI每次显示时触发 3UI每次隐藏时触发 4UI每帧触发(隐藏不触发)
事件类型:0 Next剧情事件(就是DialogEvent文件夹里的) 1 Next指令(直接触发指令,json格式的) 2 Lua函数,需要先用字典将函数保存到C#中,比如env.customData:set_Item("XX事件",function()retrun end)或者env.customData:set_Item("XX事件",func(xxxxx)),具体可以看示例

json示例:RegisterUIEvent*1#1#0#UI按钮点击示例
Lua示例:runner.RegisterUIEvent(1,1,1,"ShowTip*触发")

ChangeUIName

修改UI名字

ChangeUIName*UIID#新的名字

重名让你苦恼的话可以用这个改一下

json示例:ChangeUIName*1#新的名字
Lua示例:runner.ChangeUIName(1,"新的名字")

AddUIMove

让UI可以被拖动

AddUIMove*UIID

给UI加一个可以被鼠标拖动的组件,方便你F7看位置,没什么其他作用

json示例:AddUIMove*1
Lua示例:runner.AddUIMove(1)

SetImageValue

修改图片值

SetImageValue*UIID#值

用于填充类型的图片

json示例:SetImageValue*1#0.98
Lua示例:runner.SetImageValue(1,0.98)

SetImageType

设置图片类型

SetImageType*UIID#图片类型

图片类型:0简单 1切片 2平铺 3填充 一般也就填充用的多

json示例:SetImageType*1#3
Lua示例:runner.SetImageType(1,3)

SetImageFillMethod

设置图片填充方式

SetImageType*UIID#填充方式#填充点

填充方式:0水平 1垂直 2底部90° 3底部180° 4底部360°

可以用来做血条什么的,通过调整图片值来改变血条长度

json示例:SetImageFillMethod*1#0#0
Lua示例:runner.SetImageFillMethod(1,0,0)

SetImagefillClockwise

设置图片填充的顺\逆时针

SetImagefillClockwise*UIID#顺\逆时针

仅用于底部类型的填充方式

json示例:SetImagefillClockwise*1#1
Lua示例:runner.SetImagefillClockwise(1,0)

SetImageMask

开启/关闭图片遮罩模式

SetImageMask*UIID#0关闭1开启

可以将图片设置为遮罩,遮罩可以让子级显示范围不超过设为遮罩的父级,一般用来做边框

json示例:SetImageMask*1#1
Lua示例:runner.SetImageMask(1,0)

PrintAllSpine

打印/扫描所有spine文件

PrintAllSpine*0不打印1打印

会扫描所有spine文件并加入字典方便使用,会很卡!!!填1的话会把所有找到的spine数据名输出到控制台,建议仅调试时填1

json示例:PrintAllSpine*0
Lua示例:runner.PrintAllSpine(0)

SetUISpine

设置UI动态立绘

SetUISpine*UIID#Spine数据名#皮肤名#动画名#动画是否循环

Spine数据名就是PrintAllSpine指令输出到控制台那些,皮肤名动画名顾名思义,循环基本填1,不然是静态立绘。

json示例:SetUISpine*UIID#MapPlayerYuJian_SkeletonData#男#Idle
Lua示例:runner.SetUISpine(UIID,"MapPlayerYuJian_SkeletonData","男","Idle")

SetUISpineSkin

设置Spine皮肤

SetUISpineSkin*UIID#皮肤名

json示例:SetUISpineSkin*UIID#男
Lua示例:runner.SetUISpineSkin(UIID,"男")

SetUISpineAnim

设置Spine动画

SetUISpineAnim*UIID#动画名

json示例:SetUISpineAnim*UIID#Idle_0
Lua示例:runner.SetUISpineAnim(UIID,"Idle_0")

AddOldSpine

给spine添加原生动画组件

AddOldSpine*UIID

添加后可以使用觅长生原版的npc立绘那些

json示例:AddOldSpine*UIID
Lua示例:runner.AddOldSpine(UIID)

SetOldSpineNpc

为Spine设置NPC立绘

SetOldSpineNpc*UIID#NPCID

需要使用过AddOldSpine的才有效,怎么使用具体可以看示例

json示例:SetOldSpineNpc*UIID#609
Lua示例:runner.SetOldSpineNpc(UIID,609)

CreateTimer

创建计时器

CreateTimer*触发间隔#0不循环1循环#触发事件

慎用!!!最好不要用来写剧情什么的,非要用的话建议间隔控制在零点几秒,别玩家都换存档了还在触发事件。
触发间隔最低填0.02,既0.02秒后触发,不循环的触发器会在触发完成后自动移除,循环的触发器需要自己手动删除,触发事件这里只接受Lua函数

Lua示例:看mod里文件示例

RemoveTimer

移除计时器

RemoveTimer*计时器

参数是计时器本体,移除后不再触发

Lua示例:runner.RemoveTimer(env:GetLastTimer())或者runner.RemoveTimer(env:GetNowTimer())

RauseTimer

暂停/开启计时器

RauseTimer*计时器#0暂停1运行

暂停时不计时也不触发事件

Lua示例:runner.RauseTimer(env:GetLastTimer(),0)或者runner.RemoveTimer(env:GetNowTimer(),0)

MainAddKeyEvent

注册按键事件

MainAddKeyEvent*按键码#Lua函数事件

建议只用来注册UI唤出热键,按键码可以看本Mod里Lua文件夹下的keyCode.txt

Lua示例:runner.MainAddKeyEvent(98,"B键唤出UI")


运行时脚本
指令 说明
int CreateUI

创建UI

CreateUI(UI名字,UI类型,父级UI)

UI名字主要可用于通过名字查找UI(如果有重复名字只能找到第一个找到的)
UI类型:【0空1按钮2文本3图片4动态立绘(Spine)】其中按钮UI是自带图片的,如果填0的话,则是一个空面板,可以用来作为父级
UI会挂在父级UI下,跟随父级UI移动缩放显示隐藏等,如果还没有父级UI,可以填0,则挂在觅长生原版主UI上
(注意UI挂父级时,不要全部都挂在0号父级上,可以建个空面板挂上去,后面新建的UI全部挂在这个空面板上)
返回UIID

Lua示例:env:CreateUI("新建的按钮UI",1,0)

int CopyUI

复制/克隆UI

CopyUI(UIID,UI名字,UI父级ID)

复制目标UI,包括其所有子级。按钮和触发事件也会被复制,当需要重新设置参数,不然会触发原UI效果
复制后UI,如果要找子级,可以用GetChild或者FindChild找
返回UIID

Lua示例:env:CopyUI(1,"新复制的UI",0)

int GetLastUI

获取最后一个被创建的UIID

GetLastUI()

建议声明变量指向它,否则下次创建UI就会是新的值,另外如果有新找到的UI,也会改变这个值。
返回UIID

Lua示例:env:GetLastUI()

string GetText

获得文本内容

GetText(UIID)

返回文本的字符串。

Lua示例:env:GetLastUI(1)

GameObject GetGameOBJ

获得目标UI的游戏对象

GetGameOBJ(UIID)

如果你有一定的C#基础,可以用这个找到你创建的UI的游戏对象,自行操作,比如env:GetGameOBJ(1).name="新的名字",等效于ChangeUIName

Lua示例:env:GetGameOBJ(1)

int GetUIShow

获取UI显示状态

GetUIShow(UIID)

返回0代表隐藏 返回1代表显示

Lua示例:env:GetUIShow(1)

int GetChild

获取UI的子级

GetChild(UIID,1)

返回UI的子级,传入1就是找第一个子级,如此类推
返回UIID,找不到时返回0

Lua示例:env:GetChild(1,1)

int GetEventUI

获取触发按钮事件的UI

GetEventUI()

在按钮事件(即AddButtonEvent触发)中,可以用这个指令获得当前触发按钮事件的UI
返回UIID

Lua示例:env:GetEventUI()

int GetTriggerUI

获取触发事件的UI

GetTriggerUI()

在触发事件(即RegisterUIEvent触发)中,可以用这个指令获得当前触发事件的UI
返回UIID

Lua示例:env:GetTriggerUI()

int GetUIByName

通过名字查找UI

GetUIByName()

只能找到第一个找到的UI,另外复制得来的UI,其子级无法通过这个找到,除非使用GetChild或者FindChild找到后,将其改名,保证不重名才能用这个找到
返回UIID,找不到返回0

Lua示例:env:GetUIByName()

int GetOldHeadUI

获取原版头像UI(就是左上角那个,更多的原版UI有需求可以说,有空我就加一下)

GetOldHeadUI()

可以把自己的UI挂在这个UI下,会跟随左上角头像框显示或隐藏
返回UIID

Lua示例:env:GetOldHeadUI()

int FindChild

通过名字寻找子级

FindChild(UIID,\"要找的子级UI名字\")

查找UI子级里有没有名字符合的UI,不会使用可以看示例
返回UIID,没找到返回0

Lua示例:env:FindChild(UIID,"要找的子级UI名字")

int GetMainUI

获取UI主画布ID

GetMainUI*

就是所谓的“0号”父级,本mod创建的所有UI以及觅长生主要UI都放在这下面,可以通过他找子级
返回UIIDbr>
Lua示例:env:GetMainUI()

int GetNowTimer

获取当前触发事件的计时器

GetNowTimer*

在触发事件中获取,比如在你循环事件的最后获取一下,然后用RemoveTimer移除他,让他不再触发
返回Timer(计时器本体)>
Lua示例:env:GetNowTimer()

int GetLastTimer

获取最后创建的计时器

GetLastTimer*

如果你用CreateTimer创建计时器后不知道怎么操作,可以用这个获取一下计时器
返回Timer(计时器本体)>
Lua示例:env:GetLastTimer()

int GetKey

获取某键是否被按住

GetKey*按键码

放在每帧事件中可以被循环触发。按键码可以看本Mod里Lua文件夹下的keyCode.txt
返回bool
Lua示例:env:GetKey(98)

int GetKeyDown

获取某键是否被按下

GetKeyDown*按键码

通常放在每帧事件中,判断某键是否被按下,只判断一次。按键码可以看本Mod里Lua文件夹下的keyCode.txt
返回bool
Lua示例:env:GetKeyDown(98)

int GetNowPlayer

获取当前玩家

GetNowPlayer*

通常情况下等效于env.player,但在env不重置时,用这个指令获取玩家更准确。
返回Avatar
Lua示例:env:GetNowPlayer()

相关视频:https://www.bilibili.com/video/BV1Y6QjY3ERY/