feat: WebGL build mai 2026 + GameCanvas update

- Ajout build_mai.{data,framework.js,loader.js,wasm} dans public/unity-build/Build
- GameCanvas.jsx: préfixe build_mai, version 20260517, suppression SetServerURL (hardcodé côté Unity)
- .gitignore: exception pour frontend/public/unity-build/, règle build_mai/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-17 18:46:35 +02:00
parent 5c98f1638a
commit 01d6128209
6 changed files with 74 additions and 14 deletions

5
.gitignore vendored
View File

@@ -22,6 +22,11 @@ frontend/dist/
# WebGL build artifacts (generated by Unity) # WebGL build artifacts (generated by Unity)
build/ build/
nouveau_build/ nouveau_build/
build_mai/
# Exception: frontend unity-build static assets (committed for deployment)
!frontend/public/unity-build/
!frontend/public/unity-build/**
# Dev-only tools (buildgate was used for manual dev deploys, remplacé par Coolify) # Dev-only tools (buildgate was used for manual dev deploys, remplacé par Coolify)
rolld_buildgate/ rolld_buildgate/

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -3,11 +3,10 @@ import { useState, useEffect, useCallback } from 'react'
// Check if Unity build files exist // Check if Unity build files exist
const UNITY_BUILD_PATH = '/unity-build/Build' const UNITY_BUILD_PATH = '/unity-build/Build'
// Cache-busting version — update this after each Unity build // Cache-busting version — update this after each Unity build
const UNITY_BUILD_VERSION = '20260310c' const UNITY_BUILD_VERSION = '20260517'
const LOADER_URL = `${UNITY_BUILD_PATH}/nouveau_build.loader.js?v=${UNITY_BUILD_VERSION}` const BUILD_PREFIX = 'build_mai'
const LOADER_URL = `${UNITY_BUILD_PATH}/${BUILD_PREFIX}.loader.js?v=${UNITY_BUILD_VERSION}`
// Game server URL (Colyseus WebSocket)
const GAME_SERVER_URL = import.meta.env.VITE_GAME_SERVER_URL || 'ws://localhost:2567'
export default function GameCanvas({ onBack }) { export default function GameCanvas({ onBack }) {
const [loadingProgress, setLoadingProgress] = useState(0) const [loadingProgress, setLoadingProgress] = useState(0)
@@ -39,9 +38,9 @@ export default function GameCanvas({ onBack }) {
if (typeof window.createUnityInstance === 'function') { if (typeof window.createUnityInstance === 'function') {
const canvas = document.getElementById('unity-canvas') const canvas = document.getElementById('unity-canvas')
window.createUnityInstance(canvas, { window.createUnityInstance(canvas, {
dataUrl: `${UNITY_BUILD_PATH}/nouveau_build.data?v=${UNITY_BUILD_VERSION}`, dataUrl: `${UNITY_BUILD_PATH}/${BUILD_PREFIX}.data?v=${UNITY_BUILD_VERSION}`,
frameworkUrl: `${UNITY_BUILD_PATH}/nouveau_build.framework.js?v=${UNITY_BUILD_VERSION}`, frameworkUrl: `${UNITY_BUILD_PATH}/${BUILD_PREFIX}.framework.js?v=${UNITY_BUILD_VERSION}`,
codeUrl: `${UNITY_BUILD_PATH}/nouveau_build.wasm?v=${UNITY_BUILD_VERSION}`, codeUrl: `${UNITY_BUILD_PATH}/${BUILD_PREFIX}.wasm?v=${UNITY_BUILD_VERSION}`,
streamingAssetsUrl: '/unity-build/StreamingAssets', streamingAssetsUrl: '/unity-build/StreamingAssets',
companyName: 'ROLLD', companyName: 'ROLLD',
productName: 'ROLLD', productName: 'ROLLD',
@@ -79,9 +78,7 @@ export default function GameCanvas({ onBack }) {
} }
} }
// Pass game server URL to Unity's NetworkManager console.log('[ROLLD] Unity loaded')
instance.SendMessage('NetworkManager', 'SetServerURL', GAME_SERVER_URL)
console.log('[ROLLD] Unity loaded, server URL sent:', GAME_SERVER_URL)
}).catch((err) => { }).catch((err) => {
setError(err.message) setError(err.message)
}) })
@@ -153,10 +150,10 @@ export default function GameCanvas({ onBack }) {
</div> </div>
<div className="glass rounded-xl p-4 text-left text-sm text-rolld-muted font-mono max-w-sm w-full"> <div className="glass rounded-xl p-4 text-left text-sm text-rolld-muted font-mono max-w-sm w-full">
<p className="text-rolld-accent-light mb-2">Fichiers requis :</p> <p className="text-rolld-accent-light mb-2">Fichiers requis :</p>
<p>├── nouveau_build.loader.js</p> <p>├── build_mai.loader.js</p>
<p>├── nouveau_build.data</p> <p>├── build_mai.data</p>
<p>├── nouveau_build.framework.js</p> <p>├── build_mai.framework.js</p>
<p>└── nouveau_build.wasm</p> <p>└── build_mai.wasm</p>
</div> </div>
</div> </div>
)} )}