闲来无事在 SimAirport 里创建了一个自定义航空公司 DJI,配置好了机队和各项参数,启动游戏一看——飞机全是默认素体,自定义涂装一张都没有。怎么回事?
症状
自定义航空公司配置文件存在,游戏正常加载,但所有飞机都用的是游戏默认的通用贴图,没有应用任何自定义涂装。看起来游戏就是忽略了我的贴图。
文件结构排查
首先探索一下游戏的资源目录结构。SimAirport 的自定义航空公司配置存放在:
~/Library/Application Support/unity.LVGameDev LLC.SimAirport/airlines/Airline_0/└── config.airline而游戏内置的航空公司贴图在:
[游戏安装目录]/Contents/Resources/Data/StreamingAssets/airlines/├── templates/ # 飞机贴图模板(原始素体)│ ├── A318.png│ ├── A319.png│ └── ... (53个机型)└── 2019 Sprites/ # 内置航空公司涂装 ├── AeroStar/ ├── AeroTime/ └── ... (16个航空公司)打开 AeroStar 文件夹看看内置航空公司的结构:
ls ~/Library/Application\ Support/Steam/steamapps/common/SimAirport/SimAirport.app/Contents/Resources/Data/StreamingAssets/airlines/2019\ Sprites/AeroStar/B707.icon.pngB707.pngB737.icon.pngB737.pngB767.icon.pngB767.png... (每个机型两个文件:.png 和 .icon.png)现在看自定义航空公司的目录:
ls ~/Library/Application\ Support/unity.LVGameDev\ LLC.SimAirport/airlines/Airline_0/config.airline只有配置文件,没有任何贴图。这就是问题所在。
配置文件分析
打开 config.airline 看看内容:
{ "AircraftUsed_SteamIDs": [ 18446744073709551615, // 全是未定义值 ... ], "Name": "DJI", "AircraftInFleet": [ "A318", "A319", "A320", "A321", // 31 种机型 "A32A", "A32N", "A332", "A333", ... "B787", "B788" ], "SpriteSetIndex": 0, // ← 这个字段目前不起作用 "airlineSteamID": 0 // ← 没有绑定 Steam Workshop 资源包}关键发现:
SpriteSetIndex虽然存在,但根据官方文档它目前”未被使用”(Not in use at this time)airlineSteamID为 0,意味着没有从 Steam Workshop 引入任何自定义飞机或贴图AircraftInFleet列了 31 种机型,但游戏在文件系统里找不到对应的 PNG 纹理
根因
游戏的加载机制是这样的:当显示一个航空公司的飞机时,它需要在航空公司目录中找到对应机型的 PNG 文件(如 A320.png、B737.png 等)。如果找不到,就用默认通用贴图。
自定义航空公司 Airline_0 目录里完全没有 PNG 文件,所以游戏只能用默认素体。
解决方案
从 templates/ 目录批量复制模板贴图到自定义航空公司文件夹。这些模板文件就是游戏原有的飞机贴图,直接用它们作为 DJI 的贴图:
TEMPLATES="~/Library/Application Support/Steam/steamapps/common/SimAirport/SimAirport.app/Contents/Resources/Data/StreamingAssets/airlines/templates"DEST="~/Library/Application Support/unity.LVGameDev LLC.SimAirport/airlines/Airline_0"
for ac in A318 A319 A320 A321 A32A A32N A332 A333 A343 A346 A350 A359 A380 A388 B707 B733 B737 B738 B739 B73W B747 B752 B753 B763 B764 B767 B772 B773 B777 B787 B788; do if [ -f "${TEMPLATES}/${ac}.png" ]; then cp "${TEMPLATES}/${ac}.png" "${DEST}/${ac}.png" echo "✓ ${ac}.png" fidone运行后输出:
✓ A318.png✓ A319.png✓ A320.png✓ A321.png✓ A32A.png...✓ B787.png✓ B788.png31 种机型全部复制完毕。现在 Airline_0 目录包含了完整的飞机贴图:
ls ~/Library/Application\ Support/unity.LVGameDev\ LLC.SimAirport/airlines/Airline_0/ | wc -l32 # 31 个 PNG + 1 个配置文件重启游戏,DJI 航空公司的飞机就能正常显示贴图了。

“Aircraft Types” 部分现在显示了完整的飞机贴图,DJI 的机队配置也生效了——该自定义航空公司现在能在游戏里正常运营。
延伸思考
关于 SpriteSetIndex配置文件中的
SpriteSetIndex字段设计用来指向不同的贴图集,但目前游戏代码没有实现这个功能。未来如果这个特性被启用,理论上可以通过修改这个值来在不同贴图包之间切换,而无需复制文件。现在只能按最直接的方式:把所需贴图放在航空公司目录里。
如果想给 DJI 创建专属涂装(而不仅仅用游戏默认贴图),可以:
- 用图像编辑工具(Photoshop、Gimp 等)打开
templates/A320.png等文件 - 设计 DJI 的颜色方案和涂装
- 覆盖原有的 PNG 文件
每种飞机型号可以有不同的涂装,游戏会在显示该航空公司的飞机时自动读取对应 PNG。
Steam Workshop 上有许多航空公司贴图包,也可以从中参考涂装设计。
总结:自定义航空公司的贴图加载需要在航空公司目录里放置对应的 PNG 文件。如果只想快速启用,复制游戏的 templates/ 目录文件即可;如果想要专属涂装,再用图像编辑工具在模板基础上定制即可。