本帖最后由 aojoo 于 2023-4-25 11:39 编辑
在客户端执行
sid是世界UI创建出来后的父对象
第一步:通过sid找到父对象
第二步:创建世界UI
第三步:给世界UI设置父级(如果不设置父对象,前三步都不需要)
第四步:设置世界UI的相对位置,相对旋转,相对缩放
第五步:设置世界UI的实际渲染大小(就是UI文件里要显示的区域大小)
比如这里只需要显示文字,实际渲染大小就是400,100
第六步:创建ui,创建一个画布组件,Ui的根画布设置为rootCanvas。这几步直接复制就行了,不用改动
第七步:创建一个UI添加到画布上,这个里面设置文字的控件大小,字体大小(或者直接开启自适应文本框),文字内容
(这2个图只是告诉你,尺寸大小内容对应的是什么东西,不需要在编辑器里设置)
最后一步:将自己绑定的UI设置为世界UI显示的内容,直接复制就行了,不用动
if (SystemUtil.isClient()) {
let sid = '076CE7FB'//世界Ui的父级
Core.GameObject.asyncFind(sid).then(go => {
// 创建一个世界UI对象
let worldUI = Core.GameObject.spawn({ "guid": "UIWidget" }) as Gameplay.UIWidget
worldUI.attachToGameObject(go)//设置父级
worldUI.setRelativeLocation(new Type.Vector(5000, 0, -445))//位置
worldUI.setRelativeRotation(new Type.Rotation(-180, 90, 0))//旋转
worldUI.setRelativeScale(new Type.Vector(1, 20, 20))//缩放
worldUI.drawSize = new Type.Vector2(400, 100)//设置实际渲染大小
// 创建ui
let ui = UI.UserWidget.newObject();
// 创建一个画布组件
let rootCanvas = UI.Canvas.newObject()
rootCanvas.size = new Type.Vector2(1920, 1080);
rootCanvas.position = Type.Vector2.zero
// 将Ui的根画布设置为rootCanvas
ui.rootContent = rootCanvas
// 创建一个UI添加到画布上
let text = UI.TextBlock.newObject(rootCanvas)
text.position = new Type.Vector2(0, 0)
text.size = new Type.Vector2(400, 100)//文字的尺寸
text.fontSize = 75//文字大小
//text.autoAdjust = true//或者直接开启自适应文本框
text.text = "50"//文字内容
text.fontColor = new Type.LinearColor(1, 1, 1, 1)//字体颜色,白
text.outlineColor = new Type.LinearColor(0, 0, 0, 1)//字体描边颜色,黑
text.outlineSize = 3//字体描边宽度
// 将自己绑定的UI设置为世界UI显示的内容
worldUI.setTargetUIWidget(ui)
})
}
|