Initial Cocos Creator port of main-site Unity WebGL game.
Includes core gameplay, 600 exported levels, visual assets, web bridge, and bootstrap scene. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
92
tools/deploy-to-main.sh
Normal file
92
tools/deploy-to-main.sh
Normal file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
# 将 Cocos Web 构建产物 + cocos-bridge 合并到主站静态目录
|
||||
#
|
||||
# 用法:
|
||||
# ./tools/deploy-to-main.sh \
|
||||
# --build build/web-desktop \
|
||||
# --target "/path/to/主站静态目录/cocos"
|
||||
#
|
||||
# 示例(部署到 Unity 项目 Template 旁,便于本地对比):
|
||||
# ./tools/deploy-to-main.sh \
|
||||
# --build build/web-desktop \
|
||||
# --target "/Users/liuyufei/tfrh/主站文件/主站/Template/cocos"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
BUILD_DIR=""
|
||||
TARGET_DIR=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--build) BUILD_DIR="$2"; shift 2 ;;
|
||||
--target) TARGET_DIR="$2"; shift 2 ;;
|
||||
-h|--help)
|
||||
echo "Usage: $0 --build <build/web-desktop> --target <主站/cocos目录>"
|
||||
exit 0
|
||||
;;
|
||||
*) echo "Unknown arg: $1"; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$BUILD_DIR" || -z "$TARGET_DIR" ]]; then
|
||||
echo "Error: 需要 --build 和 --target"
|
||||
echo "Example:"
|
||||
echo " $0 --build build/web-desktop --target /path/to/main-site/cocos"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUILD_DIR="$(cd "$BUILD_DIR" 2>/dev/null && pwd || true)"
|
||||
if [[ -z "$BUILD_DIR" || ! -f "$BUILD_DIR/index.html" ]]; then
|
||||
echo "Error: 构建目录无效或缺少 index.html: $BUILD_DIR"
|
||||
echo "请先在 Cocos Creator 中执行: 项目 → 构建发布 → Web Desktop"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$TARGET_DIR"
|
||||
echo ">>> 复制构建产物: $BUILD_DIR -> $TARGET_DIR"
|
||||
rsync -a --delete \
|
||||
--exclude '.DS_Store' \
|
||||
"$BUILD_DIR/" "$TARGET_DIR/"
|
||||
|
||||
echo ">>> 复制 cocos-bridge.js"
|
||||
cp "$PROJECT_DIR/web-template/cocos-bridge.js" "$TARGET_DIR/../cocos-bridge.js" 2>/dev/null || \
|
||||
cp "$PROJECT_DIR/web-template/cocos-bridge.js" "$TARGET_DIR/cocos-bridge.js"
|
||||
|
||||
# 若 target 是 .../cocos,bridge 放在上一级(与 index 同级)
|
||||
if [[ -f "$TARGET_DIR/cocos-bridge.js" ]]; then
|
||||
BRIDGE_PATH="$TARGET_DIR/cocos-bridge.js"
|
||||
else
|
||||
BRIDGE_PATH="$(dirname "$TARGET_DIR")/cocos-bridge.js"
|
||||
cp "$PROJECT_DIR/web-template/cocos-bridge.js" "$BRIDGE_PATH"
|
||||
fi
|
||||
|
||||
echo ">>> 生成联调页 cocos-demo.html"
|
||||
DEMO="$PROJECT_DIR/web-template/main-site.html"
|
||||
if [[ -f "$DEMO" ]]; then
|
||||
cp "$DEMO" "$(dirname "$TARGET_DIR")/cocos-demo.html" 2>/dev/null || \
|
||||
cp "$DEMO" "$TARGET_DIR/cocos-demo.html"
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
|
||||
部署完成。
|
||||
|
||||
目录结构建议:
|
||||
$(dirname "$TARGET_DIR")/
|
||||
cocos-bridge.js ← JS 回调 + unityInstance 兼容
|
||||
cocos/ ← 构建产物(本脚本输出)
|
||||
index.html
|
||||
src/ ...
|
||||
cocos-demo.html ← 可选联调页
|
||||
|
||||
主站 index.html 需:
|
||||
1. 在 <head> 或游戏脚本前引入: <script src="cocos-bridge.js"></script>
|
||||
2. 用 cocos/index.html 中的 script 标签替换原 Unity Build/*.js 段
|
||||
3. 保留 processData / externalResult 等全局函数
|
||||
|
||||
本地预览(需先 cd 到含 cocos 的目录):
|
||||
npx --yes serve "$(dirname "$TARGET_DIR")" -p 8080
|
||||
|
||||
EOF
|
||||
Reference in New Issue
Block a user