Skip to content

Mod制作教程6 资源加载

inmny edited this page Nov 18, 2023 · 2 revisions

资源加载

在NeoModLoader中, 采用了与NCMS类似的加载方式, 自动加载GameResources文件夹下的所有资源.

但需要注意的是, NeoModLoader取消了GameResourcesReplace的加载. 同时, 不会自动加载"."开头的文件夹和文件(在Linux下这类文件自动视为隐藏文件), 对于这类文件夹和文件, 自行控制其加载.

目前GameResources支持直接加载的资源类型有:

  • .png, .jpg, .jpeg加载为Sprite, 支持以.meta和sprites.json两种配置方式.
  • .ab加载为AssetBundle.
  • 其余除了.meta和sprites.json外的文件, 加载为TextAsset.

下面主要介绍Sprite的.meta和sprites.json两种配置方式.

.meta文件

.meta文件是Unity中描述资源的文件, 用于描述资源的各类信息.

具体的, 推荐使用UnityEditor自动创建.meta文件, 以保证.meta文件的正确性.

.meta是推荐的新配置方式, 因此如果它存在的话, 会优先于sprites.json进行配置.

更详细的手写教程, 待补充.

sprites.json文件

sprites.json文件是NCMS提供的一种资源配置文件, 用于描述Sprite的信息.

sprites.json的配置作用于同目录以及子目录下的所有.png, .jpg, .jpeg文件, 并且覆盖上一级目录的配置.

具体的, sprites.json会被解析为一个NCMSSpritesSettings对象. 如果你熟悉JSON, 并有阅读源码的能力, 可以直接阅读源码来了解其配置方式.

下面以一个例子来说明sprites.json的配置方式.

{
    "Default": {
        "PixelsPerUnit": 1,
        "PivotX": 0.5,
        "PivotY": 0.5
    },
    "Specific": [
        {
            "Path": "example.png",
            "PixelsPerUnit": 1,
            "PivotX": 0,
            "PivotY": 1,
            "RectX": 0,
            "RectY": 0
        }
    ]
}

上面的例子中, "Default"是默认配置, "Specific"是特定配置.

"Default"中的配置会作用于所有的Sprite, 除非被子文件夹中的"Specific"中的配置覆盖.

"Specific"中的配置会作用于"Path"指定的Sprite, 除非被子文件夹中的"Specific"中的配置覆盖.

其中:

  1. "PixelsPerUnit"是Sprite的单位像素数, 默认为1.
  2. "PivotX"和"PivotY"是Sprite的中心点的相对位置, 默认为(0.5, 0.5).
  3. "RectX"和"RectY"是Sprite的左下角, 默认为(0, 0).
  4. "Path"是Sprite的路径, 从sprites.json开始.

对于这样的文件夹结构:

GameResources
├── folderA
│   ├── example.png
│   └── example4.png
├── example.png
├── example2.png
├── example3.png
└── sprites.json

将会对example2.png, example3.png 以及 folderA 中的example.png和example4.png使用"Default"中的配置. 对于根目录下的example.png, 会使用"Specific"中的配置.

上一节

下一节

回到主页

Clone this wiki locally