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>
This commit is contained in:
53
tools/sync-reference-from-unity.sh
Executable file
53
tools/sync-reference-from-unity.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/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 预制体刷新地图/主题)"
|
||||
Reference in New Issue
Block a user