代码拉取完成,页面将自动刷新
同步操作将从 超腾开源/ShadowEditor 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>Shadow Editor Viewer</title>
<link rel="shortcut icon" href="favicon.ico">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link href="assets/Cesium/Widgets/widgets.css" rel="stylesheet" />
<link href="build/ShadowEditor.css" rel="stylesheet" />
<style>
.player {
position: absolute;
left: 0;
top: 0;
right: auto;
bottom: auto;
width: 100%;
height: 100%;
background-color: white;
}
</style>
</head>
<body>
<div id="container" tabindex="10"></div>
<script src="assets/js/libs/react.js"></script>
<script src="assets/js/libs/react-dom.js"></script>
<script src="assets/js/three.js"></script>
<script src="assets/js/libs/ammo.js"></script>
<script src="assets/js/libs/jszip.min.js"></script>
<script src="assets/js/libs/inflate.min.js"></script>
<script src="assets/js/libs/gunzip.min.js"></script>
<script src="assets/js/libs/stats.min.js"></script>
<script src="assets/js/libs/SPE.js"></script>
<script src="assets/js/libs/VolumetricFire.js"></script>
<script src="assets/Cesium/Cesium.js"></script>
<script src="build/ShadowEditor.js"></script>
<script>
let app = null;
const getQueryString = name => {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
};
const start = () => {
app = new Shadow.Player(document.querySelector('#container'), {
server: location.origin,
enableThrowBall: false,
});
let sceneID = getQueryString('sceneID');
let sceneFile = getQueryString('sceneFile');
// 发布场景自动把`<%SceneID%>`替换成真实场景ID,不再需要加`SceneID`或`SceneFile`参数
if (!sceneFile) {
sceneFile = '<%SceneID%>';
}
if (sceneID) { // 通过/api/Scene/Load?ID=sceneID获取场景数据
fetch(`${app.options.server}/api/Scene/Load?ID=${sceneID}`).then(response => {
if (response.ok) {
response.json().then(json => {
if (json.Code === 200) {
app.start(JSON.stringify(json.Data));
}
});
}
});
} else if (sceneFile) { // 通过/Scene/sceneID.txt获取场景数据(导出用)
fetch(`${app.options.server}/Scene/${sceneFile}.txt`).then(response => {
if (response.ok) {
response.json().then(json => {
app.start(JSON.stringify(json));
});
}
});
} else {
alert('Lack sceneID or sceneFile query params, scene load failed.');
}
};
window.onload = function () {
Ammo().then(AmmoLib => {
window.Ammo = AmmoLib;
start();
});
};
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。