Files
cocos/tools/sync-reference-from-unity.sh
刘宇飞 d393302388 Complete Cocos Creator port with level bundles, themes, and tooling.
Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 15:30:58 +08:00

54 lines
2.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 【可选 · 仅参考】从 Unity 主站导入 spawns / boundary 到 Cocos levels-database.json
#
# 正常运行包不依赖 Unity。仅在需要对照 Unity Levels*.cs 批量补齐 spawn 时使用。
# 地图与贴图仍以 Cocos 预制体为准;本脚本默认不解析 Unity prefab 瓦片。
#
# bash tools/sync-reference-from-unity.sh
# bash tools/sync-reference-from-unity.sh "/path/to/主站"
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
UNITY_ROOT="${1:-$HOME/tfrh/主站文件/主站}"
TMP="$ROOT/assets/resources/level/.unity-reference-import.json"
OUT="$ROOT/assets/level-data/levels-database.json"
[[ -d "$UNITY_ROOT/Assets/Scripts/Core" ]] || {
echo "错误: Unity 参考目录无效: $UNITY_ROOT" >&2
exit 1
}
echo "==> [参考] 从 Unity 导入 spawns不覆盖 Cocos 预制体地图)"
python3 "$ROOT/tools/export_all_levels.py" \
--unity-root "$UNITY_ROOT" \
--output "$TMP" \
--skip-prefab-maps
python3 << PY
import json
from pathlib import Path
out = Path("$OUT")
ref = Path("$TMP")
db = json.loads(out.read_text(encoding="utf-8")) if out.is_file() else {"levels": {}}
unity = json.loads(ref.read_text(encoding="utf-8"))
merged = 0
for key, u in (unity.get("levels") or {}).items():
cur = db.setdefault("levels", {}).setdefault(key, {})
if u.get("spawns"):
cur["spawns"] = u["spawns"]
merged += 1
if u.get("boundary"):
cur["boundary"] = u["boundary"]
if u.get("unityPrefab"):
cur["unityPrefab"] = u["unityPrefab"]
cur.setdefault("levelID", u.get("levelID", int(key)))
cur.setdefault("cocosPrefab", u.get("cocosPrefab", f"level-prefabs/Level{key}"))
db["source"] = (db.get("source") or "") + " + unity-reference-spawns"
out.write_text(json.dumps(db, ensure_ascii=False, indent=2), encoding="utf-8")
print(f"merged spawns for {merged} levels into {out}")
PY
rm -f "$TMP"
echo "==> 建议再运行: bash tools/sync-level-db.sh (用 Cocos 预制体刷新地图/主题)"