> For the complete documentation index, see [llms.txt](https://docs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.superiormc.cn/itemsadder-doc/tie-tu/cai-dan.md).

# 菜单

菜单是对于贴图的重要应用之一，所有的菜单插件都支持使用贴图替换背景。像下面这样的，就是使用贴图实现的自定义菜单背景。

该功能所有插件都支持，只要它能自定义箱子UI的标题，所以不存在只能 **TrMenu** 这样做的限制。（我不知道为什么那么多人会这么觉得）

![](/files/k5uYRSsJRYGFt5rRdvMs)

## 自定义背景贴图

### 新建一个自定义背景的菜单

同样新建一个贴图，贴图的大小是随意的，只要分辨率在 **256 x 256** 以内即可。如果你的贴图大小超过了这个值，那么只能通过分割的形式进行显示，届时调整贴图位置的工作复杂量指数倍上升。

### 在菜单内显示该贴图

每个箱子 **UI** 都有一个标题，我们通过在标题处写上菜单背景贴图所替换的字符即可将其显示。所以，本质上玩家在打开带有贴图的菜单时，他面对的仍是箱子 **UI**，只是我们将标题的贴图放大，以至于它覆盖掉了下面的箱子 **UI** 内的所有地方（包括格子），以达到自定义菜单的效果。

一般来说，如果你是显示正常大箱子（6行格子）大小的 **UI** 的话，呈现正方形的长宽比即可。如果长是 **175** 像素点，那么每行（箱子格）大约是 **20** 像素点（包括格子外围的装饰）。

总而言之，贴图的分辨率大小在这里没有固定的标准，由于每个人的习惯、风格和像素画需要的像素点不同，往往分辨率大小也不是固定的。作为新手的你可以使用其他人做好的菜单贴图进行练手（例如 `ItemsAdder/resource_pack/assets/mcguis/textures` 内插件自带的一些菜单贴图模板，v.3.2.0 版本后为 `ItemsAdder/contents/_iainternal/resourcepack/assets_iainternal/textures/gui` 文件夹），反复调整 `scale_ratio` 和 `y_position` 的值，直到自己满意的位置（**不上下偏差**，物品能正常在所画的格子中间显示）为止，这样你就可以自己制作一个菜单模板，以后再做第二个菜单背景贴图时，上手快很多。

### :offset\_数值: 的使用

在调整完 `scale_ratio` 和 `y_position` 的值后，我们发现左右仍存在偏差，这时我们可以通过这个字符串来调整左右显示位置。我们只需要在菜单 **UI** 的标题的贴图所替换的那个字符前添加 `:offset_数值:` 即可，例如 `:offset_-8:`，直到找到自己满意的位置为止。

一般来说，由于字符本身与箱子 **UI** 的边缘本身也存在间距，因此尽管你在绘制贴图时是从最左边贴边开始绘制，在实际显示时仍会先右偏移，偏移的像素点往往是 **8** 个像素点，所以在字符前加上 `:offset_-8:` 即可。

### \&f 的使用

添加的贴图往往是莫名其妙的变成黑色调的，这是因为箱子 UI 标题自动添加的黑色颜色代码导致的，我们只需要再在上文的 `:offset_数值:` 前添加 `&f` 即可。

### 小结

在箱子 **UI** 的标题通过 `&f:offset_数字:替换的字符` 格式显示菜单的背景贴图。

### 按钮效果

例图按钮同样也是通过贴图显示的，也同样在箱子UI的标题中用贴图替换的字符显示，并使用 `&f:offset_数字:替换的字符` 格式，你需要来回调整贴图的位置才能达到满意的效果。

有时，固定使用字符也不是我们需要的效果，就以最开始给的例图来看，我们想要这个按钮在解锁和未解锁时是不同的贴图，这时我们需要自定义一个 **Placeholder**，这种功能在 **TAB** 插件中存在且功能丰富，并且笔者也为该插件翻译了 **Wiki**，感兴趣可以自行查看。

## 菜单内的物品

### 新建空白贴图的物品

首先我们需要了解，用物品来显示菜单内的按钮是不现实、也是非常复杂的，大多数都是直接使用贴图显示。以最上面给的图片为例，我们想要做到玩家碰到背景贴图所绘制的按钮那里后有一个物品 **Tip** 告诉玩家这个按钮具体作用，但我们不想让玩家真正的看到这个物品，这时，我们需要新建空白贴图的物品。

我们可以使用 **ItemsAdder** 的自定义物品（后文提及）制作空白贴图的物品，并在菜单中使用该物品，但在本篇教程中，笔者考虑到部分插件可能并不支持 **CustomModelData** 或者其他情况，只能使用原版自带的物品，因此介绍一个更加简便的方法。

我们通过替换原版资源包下的 **结构空位** 物品的材质，来实现空白贴图的物品。该物品在单机使用较多，服务器下几乎用不到，玩家也无法获取该物品，所以使用它是再合适不过的。

第一步：打开 `ItemsAdder/resource_pack/assets/minecraft/item` 文件夹（如果没有对应的文件夹，依次新建即可）。

v.3.3.0 版本以后为打开 `ItemsAdder/contents/_iainternal/resourcepack/assets/minecraft/item`。

第二步：绘制一个 **16x16** 分辨率的空白贴图，就像这样。

![空白图](/files/55apNbmRBu7l3a6xpalz)

第三步：将这个图片放置到第一步的文件夹，取名为 **structure\_void.png** 文件。

第四步：菜单中的物品 **ID** 填写为 **structure\_void** 即可。

### 新建 ItemsAdder 的物品

我们假设你已了解 **ItemsAdder** 的自定义物品功能，如果你尚未掌握，请跳过这里，在掌握后返回这里继续阅读。

第一步：使用 `/iacustommodeldata 物品id` 获取到该物品的 **CustomModelData** 值。

第二步：在菜单插件内配置对应物品的 **CustomModelData**。主流菜单插件均支持：包括 **DeluxeMenu、TrMenu**，请仔细阅读它们的 Wiki。
