跳转到正文
iPlugin

制作罗盘

用普通布局制作方位、刻度和目标样式,再组合罗盘并添加运行时目标

罗盘模板组合外观与排列规则,目标坐标由运行时命令提供。希望在画布中制作时,直接阅读可视化罗盘教程。

默认主题的方位和目标外观

资产前提

资产示例 ID / 地址准备方法
字体tutorial_font添加字体
目标图标tutorial / ui / gem添加图片

已有资产时可替换这些引用,不必重复复制。下面每段标注完整路径的 YAML 都是一份独立文件。

文件结构

tutorial_compass_content.yml
tutorial_compass.yml
tutorial.yml
tutorial_compass.yml

创建内容布局

方位、刻度、中心与目标都使用普通布局。一个目标布局可以同时包含图标和距离文字。

plugins/Xerr/core/layout/tutorial_compass_content.yml
defaults:
  font: tutorial_font
  image:
    namespace: tutorial
    basename: ui

tutorial_compass_north:
  label:
    y: -14
    value: "&fN"

tutorial_compass_east:
  label:
    y: -14
    value: "&fE"

tutorial_compass_south:
  label:
    y: -14
    value: "&fS"

tutorial_compass_west:
  label:
    y: -14
    value: "&fW"

tutorial_compass_tick:
  mark:
    value: "&7|"

tutorial_compass_center:
  mark:
    value: "&f▼"

tutorial_compass_target:
  icon:
    y: 12
    image:
      id: gem
  distance:
    x: 14
    y: 12
    value: "&e{{ get distance }}m"

组合罗盘模板

下面只引用布局 ID,不再内联文字或图片,也不配置 option。字体和图片组已经属于上一步的内容布局。

plugins/Xerr/core/template/compasses/tutorial.yml
tutorial_navigation:
  width: 180
  fov: 180
  directions:
    north: tutorial_compass_north
    east: tutorial_compass_east
    south: tutorial_compass_south
    west: tutorial_compass_west
  ticks:
    step: 15
    layout: tutorial_compass_tick
  indicator: tutorial_compass_center
  outside: edge
  collision:
    mode: hide
  markers:
    default: tutorial_compass_target

目标样式 ID 是 default,引用的是布局 tutorial_compass_target。后面的命令使用样式 ID,不使用布局 ID。

定位并绑定 HUD

plugins/Xerr/core/layout/tutorial_compass.yml
tutorial_compass:
  navigation:
    anchor:
      x: 50
      y: 0
    y: -90
    compass:
      template: tutorial_navigation
plugins/Xerr/core/display/huds/tutorial_compass.yml
tutorial_compass_hud:
  layouts:
    tutorial_compass: {}

屏幕锚点定位整条罗盘,内容布局中的局部偏移安排图标与文字。省略 compass.id 时,目标集合 ID 为模板 ID tutorial_navigation。

执行 /xerr pack 并让客户端加载新包。此时应看到方位条;尚未提供运行时目标时,没有目标图标是正常的。

添加运行时目标

/xerr compass set tutorial_navigation home world 120 64 -300 default

把 world 和坐标换成实际位置。目标 ID 为 home,再次设置相同 ID 会更新它。

最后的玩家参数省略时作用于自己;控制台必须指定观看玩家,例如:

/xerr compass set tutorial_navigation home world 120 64 -300 default Steve
/xerr compass list tutorial_navigation Steve

完成检查

  • 转动视角时方位随方向移动,中心标记保持固定。
  • 与目标处于同一世界时,家园图标和距离作为一组内容显示。
  • 已有 default 样式,运行时目标集合与布局绑定一致。

目标由命令创建后无需重新打包;修改布局、模板外观或排列范围后重新打包。更多方位、排序、贴边和碰撞字段见罗盘模板参考。