LogoArcartX Doc
UI篇

开始

UI篇前言

前言

  • 学习 UI 之前,请先学习 Shimmer 的使用,UI 的中后期应用是围绕脚本展开的。
  • 如果你只需要制作简单的 UI,且运算仅涉及基础的数字加减乘除,可以跳过 Shimmer 部分。
  • UI 的讲解中会穿插部分开发相关内容,请根据需要自行参考。
  • 以下是一条重要提示,请务必留意。
  • UI 几乎所有属性都是脚本语句,因此如果某个属性的值是字符串,无法直接作为文本读取。
  • 因为 Shimmer 的字符串使用单引号包裹,比如"abc",而 YAML 语法中引号涉及转义问题。
  • 所以,如果某个属性你想设定为纯文字,只需要在开头加上一个~即可。
  • 比如texts: "~我是一个纯文字属性值"
  • 对于 UI 系列内容,HUD 和 Menu 使用同一个配置文件,位于同一个文件夹。如果你是直接在 ArcartX 的 ui 目录下创建的 UI 配置,那么 UI 的 id 即为文件名本身。
  • 比如xxx.yml对应的 id 就是xxx,如果是xxx/yyy.yml,那么 id 就是xxx/yyy
  • 如果你是附属开发者,建议注册 UI 时遵循以下格式:插件名:ID,例如ArcartXAuthmeView:Main

UI的上下文逻辑

  • 在学习完 Shimmer 之后,下面简单讲解一下 UI 的上下文逻辑。
  • 我们先看一下UI的整体配置,这里放置了一个组件做示例
ui:
  match:
  hide: []
  itemSize: "16"
  through: "false"
  escClose: "true"
  background: true
  closeDied: "true"
  show: "true"
  jei: "false"
  action:
controls:
   background:
    type: "Texture"
    attribute:
      width: "1270"
      height: "650"
      normal: "~inventory/bg.png"
 
template:
   我是一个模板:
    type: "Texture"
    attribute:
      width: "128"
      height: "128"
      normal: "~inventory/xxx.png"
  • 不难看出 UI的配置分为两个大板块,一个是ui,一个是controls
  • 在Shimmer教学中我们提到过载体关键字:self,这里讲解一下不同位置的self所指向的对象。
  • ui这个配置项以内,所有的self关键字指向的是ui自身。
  • controls这个配置项以内,所有的self关键字指向的是当前组件。
  • 此外,UI 作为一个整体,共享同一个本地变量池(varval),也就是你在ui块创建的本地变量,在控件中也可引用,反之亦然。
  • 对于template块,写法和controls一模一样,但是这个块中的控件是作为模板存在,不会被创建,需要主动使用create函数来加入到UI中。用于动态创建UI的需求(后续请看UI的Shimmer函数和控件的Shimmer函数)

On this page