-
Notifications
You must be signed in to change notification settings - Fork 4
Mod制作教程6 资源加载
在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文件是Unity中描述资源的文件, 用于描述资源的各类信息.
具体的, 推荐使用UnityEditor自动创建.meta文件, 以保证.meta文件的正确性.
.meta是推荐的新配置方式, 因此如果它存在的话, 会优先于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"中的配置覆盖.
其中:
- "PixelsPerUnit"是Sprite的单位像素数, 默认为1.
- "PivotX"和"PivotY"是Sprite的中心点的相对位置, 默认为(0.5, 0.5).
- "RectX"和"RectY"是Sprite的左下角, 默认为(0, 0).
- "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"中的配置.