Compare commits

...

2 Commits

59 changed files with 362 additions and 3112 deletions

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 476ad130424ed8749b410a3d4724bccb guid: ede503a0aff83fa498b0c5c84393bfeb
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 26f8f85e69030b345aecb4af5e056af7 guid: 91ccf9d64a1bf0a4ca1b0ac2cbf65334
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ce8ff83ebee0da84485a941613b6b631 guid: 2da7d930a5ab01b458ca7df71f866fac
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 64f43a4994f3be74085543cc6d98f769
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 608b6e972ca2a2b40861782ace608e36
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ebc52063c8fb6a944bd0bfacb2160d12 guid: f2665bcab28e22345a2bf37bbe0f2795
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3c4acbea8f6f8b042962bfc175682e26
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 796f325b7cb744540884908d47ceb739
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 97ebddc478a3cdb478893f3e9b1d1fd0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9e67d9e35de8be342a9ee225cd61421a guid: 81e033af8edb73145bb263061bebe3d8
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 1cf89e6b9731b6c43a891b8d83676498 guid: 49d2c72c83498db418cc7b7999989df3
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 29122fb04c09d96409958efcb2d49e95 guid: 56cb493fa5a4d8f4cb482da5c2ad961e
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 5cc5cc3d1d8b7ec41b8f6abfc9e06d9e guid: 9e1b936f6306a1e4aa6f71ffe665f38a
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 6dd9184f1dae9944797281e36a6e0667 guid: acee3b9096daa234f91ebb3aa546a2ba
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 0e6abf56c8a378e43bb09cd2578fb130 guid: 2a5ef3c252e921a459ed647cde8c6310
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 3a3483b231ee5e64ba96440dc6b88082 guid: e64b57b6cb9372a49a9abff0f55f7521
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2abba007c738fb847ad5434e608f62ae guid: 8eb20925618d17b42867a4a2063d98a7
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -6,6 +6,11 @@
<title>虚拟实验 | {{{ PRODUCT_NAME }}}</title> <title>虚拟实验 | {{{ PRODUCT_NAME }}}</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico"> <link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css"> <link rel="stylesheet" href="TemplateData/style.css">
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/docxtemplater.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/pizzip.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/FileSaver.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/pizzip-utils.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/imagemodule.js"></script>
</head> </head>
<body> <body>
<div id="unity-container" class="unity-desktop"> <div id="unity-container" class="unity-desktop">
@ -21,13 +26,6 @@
<div id="unity-build-title">{{{ PRODUCT_NAME }}}</div> <div id="unity-build-title">{{{ PRODUCT_NAME }}}</div>
</div> </div>
</div> </div>
<script src="./TemplateData/js/jquery-1.10.2.min.js"></script>
<script src="./TemplateData/js/jspdf.min.js"></script>
<script src="./TemplateData/js/jspdf.plugin.autotable.js"></script>
<script src="./TemplateData/js/faker.min.js"></script>
<script src="./TemplateData/font/font.js"></script>
<script> <script>
var container = document.querySelector("#unity-container"); var container = document.querySelector("#unity-container");
var canvas = document.querySelector("#unity-canvas"); var canvas = document.querySelector("#unity-canvas");
@ -102,76 +100,6 @@
canvas.style.height = "720px"; canvas.style.height = "720px";
} }
//添加功能---------
function HtmlDownloadWord(bytes, reportdata) {
var blob = new Blob([bytes]);
var url = window.URL.createObjectURL(blob);
generate(url, reportdata);
}
function LoadTextPDF(name, reportdata) {
reportdata = (reportdata.replace(/<(.|\n)*?>/g, '') || ' ')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>');
reportdata = JSON.parse(reportdata)
/*
console.log("LoadTextPDFJSON:"+reportdata);
for (var i = 0; i < reportdata.length; i++) {
for (var j = 0; j < reportdata[i].length; j++) {
console.log(reportdata[i][j]);
}
}
*/
var rows = reportdata.length-5;
var cols = reportdata[0].length;
var twoDArray = [];
for (var i = 0; i < rows; i++) {
twoDArray[i] = [];
for (var j = 0; j < cols; j++) {
console.log("i"+i+"J"+j+"rows"+rows+"cols"+cols+"reportdata[i+5][j]:"+reportdata[i+5][j]);
twoDArray[i][j] = reportdata[i+5][j];
}
}
var body = twoDArray;
var doc = new jsPDF('p', 'pt');
doc.addFileToVFS('pingfang.ttf', moo);
doc.addFont('pingfang.ttf', 'custom', 'normal');
doc.setFont('custom');
doc.setFontSize(16);
doc.text(reportdata[0][0], 230, 20);
doc.setFontSize(14);
doc.text(reportdata[1][0], 20, 50);
doc.setFontSize(12);
doc.text(reportdata[2][0], 40, 80);
doc.text(reportdata[2][1], 170, 80);
doc.text(reportdata[2][2], 370, 80);
doc.text(reportdata[2][3], 470, 80);
doc.setFontSize(14);
doc.text(reportdata[3][0], 20, 110);
doc.setFontSize(12);
doc.autoTable({
columns: [
{ header: '考核环节', dataKey: 'link' },
{ header: '考核点', dataKey: 'point' },
{ header: '总分', dataKey: 'total' },
{ header: '实际得分', dataKey: 'actualscore' }
],
styles: { font: 'custom' },
startY: 130,
body: body });
doc.save(name);
}
loadingBar.style.display = "block"; loadingBar.style.display = "block";
var script = document.createElement("script"); var script = document.createElement("script");
@ -188,6 +116,246 @@
alert(message); alert(message);
}); });
}; };
var inputObj;
function Test() {
console.log("1");
if (inputObj != null) document.body.removeChild(inputObj);
inputObj = document.createElement('input');
inputObj.setAttribute('id', '_ef');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute("style", 'visibility:hidden');
document.body.appendChild(inputObj);
document.addEventListener('input', imgChange);
var file = document.getElementById("_ef");
file.click();
file.value;
console.log("2");
}
function imgChange(obj) {
console.log("3");
var file = document.getElementById("_ef");
var imgUrl = window.URL.createObjectURL(file.files[0]);
if (instance != null) {
instance.SendMessage("Web", "CallBack", imgUrl);
}
};
//添加功能---------
function HtmlDownloadWord(bytes, reportdata) {
var blob = new Blob([bytes]);
var url = window.URL.createObjectURL(blob);
generate(url, reportdata);
}
function loadFile(url, callback) {
PizZipUtils.getBinaryContent(url, callback);
}
//处理base64数据
const base64Regex =
/^data:image\/(png|jpg|svg|svg\+xml);base64,/;
const validBase64 =
/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
function base64Parser(dataURL) {
if (
typeof dataURL !== "string" ||
!base64Regex.test(dataURL)
) {
return false;
}
const stringBase64 = dataURL.replace(base64Regex, "");
if (!validBase64.test(stringBase64)) {
throw new Error(
"Error parsing base64 data, your data contains invalid characters"
);
}
// For nodejs, return a Buffer
if (typeof Buffer !== "undefined" && Buffer.from) {
return Buffer.from(stringBase64, "base64");
}
// For browsers, return a string (of binary content) :
const binaryString = window.atob(stringBase64);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
const ascii = binaryString.charCodeAt(i);
bytes[i] = ascii;
}
return bytes.buffer;
}
const imageOptions = {
getImage(tag) {
return base64Parser(tag);
},
getSize() {
console.log("大小已被调用");
return [384, 216];
},
};
function generate(url, reportdata) {
loadFile(
url,
function (error, content) {
if (error) {
throw error;
}
//先处理unity传入的数据得到base64
reportdata = (reportdata.replace(/<(.|\n)*?>/g, '') || ' ')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>');
reportdata = JSON.parse(reportdata)
//var imageBytes = reportdata.imageData; // 图片字节数组数据
// 将图片数据转换为 base64 格式
//var imageBase64 = btoa(String.fromCharCode.apply(null, imageBytes));
//imageBase64 = "data:image/png;base64," + imageBase64;
//console.log(imageBase64);
var imageModule = new ImageModule(imageOptions);
var zip = new PizZip(content);
var doc = new window.docxtemplater(zip, {
paragraphLoop: true,
linebreaks: true,
modules: [imageModule]
});
//const image = doc.Media.addImage(doc, imageBytes, 230, 230);
doc.compile();
//const data = {
// eid: reportdata.eid,
// name: reportdata.name,
// scroe: reportdata.scroe,
// image: imageBase64,
//}
//渲染模板
doc.render(reportdata);
var out = doc.getZip().generate({
type: "blob",
mimeType:
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
compression: "DEFLATE",
});
saveAs(out, "实验报告.docx");
});
}
document.body.appendChild(script); document.body.appendChild(script);
</script> </script>
</body> </body>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: a5c73002b04b0c04582c1f5739056528 guid: 1c5560ae5754d7e4ea960b323d4cf91a
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ca7682e17f837a04b8d07ff56caeb717
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 91ccf9d64a1bf0a4ca1b0ac2cbf65334
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2da7d930a5ab01b458ca7df71f866fac
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f2665bcab28e22345a2bf37bbe0f2795
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 81e033af8edb73145bb263061bebe3d8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 49d2c72c83498db418cc7b7999989df3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 B

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 56cb493fa5a4d8f4cb482da5c2ad961e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 B

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 9e1b936f6306a1e4aa6f71ffe665f38a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,16 +0,0 @@
body { padding: 0; margin: 0 }
#unity-container { position: absolute }
#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) }
#unity-container.unity-mobile { width: 100%; height: 100% }
#unity-canvas { background: #231F20 }
.unity-mobile #unity-canvas { width: 100%; height: 100% }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
#unity-logo { width: 154px; height: 130px; background: url('unity-logo-dark.png') no-repeat center }
#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-dark.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center }
#unity-footer { position: relative }
.unity-mobile #unity-footer { display: none }
#unity-webgl-logo { float:left; width: 204px; height: 38px; background: url('webgl-logo.png') no-repeat center }
#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
#unity-fullscreen-button { float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: acee3b9096daa234f91ebb3aa546a2ba
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2a5ef3c252e921a459ed647cde8c6310
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e64b57b6cb9372a49a9abff0f55f7521
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8eb20925618d17b42867a4a2063d98a7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,362 +0,0 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>虚拟实验 | {{{ PRODUCT_NAME }}}</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/docxtemplater.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/pizzip.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/FileSaver.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/pizzip-utils.js"></script>
<script type="text/javascript" src="StreamingAssets/WebGLDownloadWordJS/js/imagemodule.js"></script>
</head>
<body>
<div id="unity-container" class="unity-desktop">
<canvas id="unity-canvas" width=1280 height=720></canvas>
<div id="unity-loading-bar">
<div id="unity-progress-bar-empty">
<div id="unity-progress-bar-full"></div>
</div>
</div>
<div id="unity-warning"> </div>
<div id="unity-footer">
<div id="unity-fullscreen-button"></div>
<div id="unity-build-title">{{{ PRODUCT_NAME }}}</div>
</div>
</div>
<script>
var container = document.querySelector("#unity-container");
var canvas = document.querySelector("#unity-canvas");
var loadingBar = document.querySelector("#unity-loading-bar");
var progressBarFull = document.querySelector("#unity-progress-bar-full");
var fullscreenButton = document.querySelector("#unity-fullscreen-button");
var warningBanner = document.querySelector("#unity-warning");
// Shows a temporary message banner/ribbon for a few seconds, or
// a permanent error message on top of the canvas if type=='error'.
// If type=='warning', a yellow highlight color is used.
// Modify or remove this function to customize the visually presented
// way that non-critical warnings and error messages are presented to the
// user.
function unityShowBanner(msg, type) {
function updateBannerVisibility() {
warningBanner.style.display = warningBanner.children.length ? 'block' : 'none';
}
var div = document.createElement('div');
div.innerHTML = msg;
warningBanner.appendChild(div);
if (type == 'error') div.style = 'background: red; padding: 10px;';
else {
if (type == 'warning') div.style = 'background: yellow; padding: 10px;';
setTimeout(function() {
warningBanner.removeChild(div);
updateBannerVisibility();
}, 5000);
}
updateBannerVisibility();
}
var buildUrl = "Build";
var loaderUrl = buildUrl + "/{{{ LOADER_FILENAME }}}";
var config = {
dataUrl: buildUrl + "/{{{ DATA_FILENAME }}}",
frameworkUrl: buildUrl + "/{{{ FRAMEWORK_FILENAME }}}",
codeUrl: buildUrl + "/{{{ CODE_FILENAME }}}",
streamingAssetsUrl: "StreamingAssets",
companyName: {{{ JSON.stringify(COMPANY_NAME) }}},
productName: {{{ JSON.stringify(PRODUCT_NAME) }}},
productVersion: {{{ JSON.stringify(PRODUCT_VERSION) }}},
showBanner: unityShowBanner,
};
// By default Unity keeps WebGL canvas render target size matched with
// the DOM size of the canvas element (scaled by window.devicePixelRatio)
// Set this to false if you want to decouple this synchronization from
// happening inside the engine, and you would instead like to size up
// the canvas DOM size and WebGL render target sizes yourself.
// config.matchWebGLToCanvasSize = false;
if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
// Mobile device style: fill the whole browser client area with the game canvas:
var meta = document.createElement('meta');
meta.name = 'viewport';
meta.content = 'width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, shrink-to-fit=yes';
document.getElementsByTagName('head')[0].appendChild(meta);
container.className = "unity-mobile";
canvas.className = "unity-mobile";
// To lower canvas resolution on mobile devices to gain some
// performance, uncomment the following line:
// config.devicePixelRatio = 1;
unityShowBanner('WebGL builds are not supported on mobile devices.');
} else {
// Desktop style: Render the game canvas in a window that can be maximized to fullscreen:
canvas.style.width = "1280px";
canvas.style.height = "720px";
}
loadingBar.style.display = "block";
var script = document.createElement("script");
script.src = loaderUrl;
script.onload = () => {
createUnityInstance(canvas, config, (progress) => {
progressBarFull.style.width = 100 * progress + "%";
}).then((unityInstance) => {
loadingBar.style.display = "none";
fullscreenButton.onclick = () => {
unityInstance.SetFullscreen(1);
};
}).catch((message) => {
alert(message);
});
};
var inputObj;
function Test() {
console.log("1");
if (inputObj != null) document.body.removeChild(inputObj);
inputObj = document.createElement('input');
inputObj.setAttribute('id', '_ef');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute("style", 'visibility:hidden');
document.body.appendChild(inputObj);
document.addEventListener('input', imgChange);
var file = document.getElementById("_ef");
file.click();
file.value;
console.log("2");
}
function imgChange(obj) {
console.log("3");
var file = document.getElementById("_ef");
var imgUrl = window.URL.createObjectURL(file.files[0]);
if (instance != null) {
instance.SendMessage("Web", "CallBack", imgUrl);
}
};
//添加功能---------
function HtmlDownloadWord(bytes, reportdata) {
var blob = new Blob([bytes]);
var url = window.URL.createObjectURL(blob);
generate(url, reportdata);
}
function loadFile(url, callback) {
PizZipUtils.getBinaryContent(url, callback);
}
//处理base64数据
const base64Regex =
/^data:image\/(png|jpg|svg|svg\+xml);base64,/;
const validBase64 =
/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
function base64Parser(dataURL) {
if (
typeof dataURL !== "string" ||
!base64Regex.test(dataURL)
) {
return false;
}
const stringBase64 = dataURL.replace(base64Regex, "");
if (!validBase64.test(stringBase64)) {
throw new Error(
"Error parsing base64 data, your data contains invalid characters"
);
}
// For nodejs, return a Buffer
if (typeof Buffer !== "undefined" && Buffer.from) {
return Buffer.from(stringBase64, "base64");
}
// For browsers, return a string (of binary content) :
const binaryString = window.atob(stringBase64);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
const ascii = binaryString.charCodeAt(i);
bytes[i] = ascii;
}
return bytes.buffer;
}
const imageOptions = {
getImage(tag) {
return base64Parser(tag);
},
getSize() {
console.log("大小已被调用");
return [384, 216];
},
};
function generate(url, reportdata) {
loadFile(
url,
function (error, content) {
if (error) {
throw error;
}
//先处理unity传入的数据得到base64
reportdata = (reportdata.replace(/<(.|\n)*?>/g, '') || ' ')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>');
reportdata = JSON.parse(reportdata)
//var imageBytes = reportdata.imageData; // 图片字节数组数据
// 将图片数据转换为 base64 格式
//var imageBase64 = btoa(String.fromCharCode.apply(null, imageBytes));
//imageBase64 = "data:image/png;base64," + imageBase64;
//console.log(imageBase64);
var imageModule = new ImageModule(imageOptions);
var zip = new PizZip(content);
var doc = new window.docxtemplater(zip, {
paragraphLoop: true,
linebreaks: true,
modules: [imageModule]
});
//const image = doc.Media.addImage(doc, imageBytes, 230, 230);
doc.compile();
//const data = {
// eid: reportdata.eid,
// name: reportdata.name,
// scroe: reportdata.scroe,
// image: imageBase64,
//}
//渲染模板
doc.render(reportdata);
var out = doc.getZip().generate({
type: "blob",
mimeType:
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
compression: "DEFLATE",
});
saveAs(out, "实验报告.docx");
});
}
document.body.appendChild(script);
</script>
</body>
</html>

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1c5560ae5754d7e4ea960b323d4cf91a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ab0c3e9e34cc8ac4398cc05b11a3b746 guid: f538532946435d345843369bb394100b
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2060032c49df1b343868fd7a9af514f8 guid: 7e9e1343c9d1b684fb32c4bc470a8ac3
DefaultImporter: TextScriptImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:

View File

@ -135,6 +135,7 @@ namespace ZXK.LouDiXvMuNiu
} }
return scoreFinish; return scoreFinish;
} }
private HashSet<string> _wrongSteps = new HashSet<string>();
/// <summary> /// <summary>
/// 操作正确步骤后得分 /// 操作正确步骤后得分
/// </summary> /// </summary>
@ -142,8 +143,17 @@ namespace ZXK.LouDiXvMuNiu
/// <param name="smallStepName">三级任务名称</param> /// <param name="smallStepName">三级任务名称</param>
/// <param name="score">当前步骤可得分数</param> /// <param name="score">当前步骤可得分数</param>
/// <returns></returns> /// <returns></returns>
/// <param name="score">当前步骤获得的分数</param>
/// <returns></returns>
public float AddScore(string bigStepName, string smallStepName, float score) public float AddScore(string bigStepName, string smallStepName, float score)
{ {
string stepKey = bigStepName + "_" + smallStepName;
// 检查该步骤是否已经获得过分数或者是否是错误步骤
if (_examScore.ContainsKey(bigStepName) && _examScore[bigStepName].ContainsKey(smallStepName) || _wrongSteps.Contains(stepKey))
{
return _examScore.ContainsKey(bigStepName) && _examScore[bigStepName].ContainsKey(smallStepName) ? _examScore[bigStepName][smallStepName] : 0;
}
if (!_examScore.ContainsKey(bigStepName)) if (!_examScore.ContainsKey(bigStepName))
{ {
_examScore.Add(bigStepName, new Dictionary<string, float>()); _examScore.Add(bigStepName, new Dictionary<string, float>());
@ -154,16 +164,34 @@ namespace ZXK.LouDiXvMuNiu
} }
_examScore[bigStepName][smallStepName] += score; _examScore[bigStepName][smallStepName] += score;
if (scoreTime.ContainsKey(bigStepName + smallStepName) == false) if (scoreTime.ContainsKey(stepKey) == false)
{ {
scoreTime.Add(bigStepName + smallStepName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); scoreTime.Add(stepKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
} }
else else
{ {
scoreTime[bigStepName + smallStepName] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); scoreTime[stepKey] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
} }
return _examScore[bigStepName][smallStepName]; return _examScore[bigStepName][smallStepName];
} }
/// <summary>
/// 标记步骤为错误步骤
/// </summary>
/// <param name="bigStepName">模块名称</param>
/// <param name="smallStepName">子步骤名称</param>
public void MarkStepAsWrong(string bigStepName, string smallStepName)
{
string stepKey = bigStepName + "_" + smallStepName;
_wrongSteps.Add(stepKey);
}
} }
} }

View File

@ -867,6 +867,9 @@ namespace ZXK.LouDiXvMuNiu
useBts.Clear(); useBts.Clear();
addScoreTemp = false; addScoreTemp = false;
PopUpMng.PopChoseErrorToast(_CurSceneStep.ExamEvvr, 2.0f, null); PopUpMng.PopChoseErrorToast(_CurSceneStep.ExamEvvr, 2.0f, null);
// 标记步骤为错误步骤
GameManager.Instance._DataNiuHandler.MarkStepAsWrong(_CurSceneStep.ModuleName, _CurSceneStep.ThreeTaskName);
} }
} }

View File

@ -124,7 +124,7 @@ namespace ZXK.LouDiXvMuNiu
case "TrainState": case "TrainState":
case "ExamState": case "ExamState":
PopUpMng.PopConBox("提示", "是否退出当前模块?", "是", "否", () => { PopUpMng.PopConBox("提示", "是否退出当前模块?", "是", "否", () => {
GameManager.Instance._DataNiuHandler._examScore.Clear(); // GameManager.Instance._DataNiuHandler._examScore.Clear();
GameManager.Instance._StateContext.SetState( GameManager.Instance._StateContext.SetState(
new ModelSelectState(GameManager.Instance._StateContext)); new ModelSelectState(GameManager.Instance._StateContext));
}); });

View File

@ -97,6 +97,9 @@ namespace ZXK.LouDiXvMuNiu
toolItemGeo.transform.Find("BeUseImg").gameObject.SetActive(true); toolItemGeo.transform.Find("BeUseImg").gameObject.SetActive(true);
toolItemGeo.transform.Find("BeUseImg/ChoseError").gameObject.SetActive(true); toolItemGeo.transform.Find("BeUseImg/ChoseError").gameObject.SetActive(true);
}); });
// 标记步骤为错误步骤
GameManager.Instance._DataNiuHandler.MarkStepAsWrong(curStep.ModuleName, curStep.ThreeTaskName);
} }
}); });
toolItemGeo.SetActive(true); toolItemGeo.SetActive(true);

View File

@ -79,7 +79,7 @@ PlayerSettings:
androidAutoRotationBehavior: 1 androidAutoRotationBehavior: 1
defaultIsNativeResolution: 1 defaultIsNativeResolution: 1
macRetinaSupport: 1 macRetinaSupport: 1
runInBackground: 0 runInBackground: 1
captureSingleScreen: 0 captureSingleScreen: 0
muteOtherAudioSources: 0 muteOtherAudioSources: 0
Prepare IOS For Recording: 0 Prepare IOS For Recording: 0
@ -137,7 +137,7 @@ PlayerSettings:
vulkanEnableLateAcquireNextImage: 0 vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1 vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0 loadStoreDebugModeEnabled: 0
bundleVersion: 0.1.1 bundleVersion: 0.1.2
preloadedAssets: [] preloadedAssets: []
metroInputSource: 0 metroInputSource: 0
wsaTransparentSwapchain: 0 wsaTransparentSwapchain: 0

View File

@ -26,7 +26,7 @@ MonoBehaviour:
m_MinSize: {x: 400, y: 100} m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 32384, y: 16192} m_MaxSize: {x: 32384, y: 16192}
vertical: 0 vertical: 0
controlID: 8713 controlID: 1085
--- !u!114 &2 --- !u!114 &2
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -49,9 +49,9 @@ MonoBehaviour:
m_Pos: m_Pos:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 287 y: 475
width: 753 width: 712
height: 712 height: 524
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0
m_PreferredDataMode: 0 m_PreferredDataMode: 0
@ -104,10 +104,10 @@ MonoBehaviour:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 21 y: 21
width: 753 width: 712
height: 691 height: 503
m_Scale: {x: 0.3921875, y: 0.3921875} m_Scale: {x: 0.37083334, y: 0.37083337}
m_Translation: {x: 376.5, y: 345.5} m_Translation: {x: 356, y: 251.50002}
m_MarginLeft: 0 m_MarginLeft: 0
m_MarginRight: 0 m_MarginRight: 0
m_MarginTop: 0 m_MarginTop: 0
@ -115,12 +115,12 @@ MonoBehaviour:
m_LastShownAreaInsideMargins: m_LastShownAreaInsideMargins:
serializedVersion: 2 serializedVersion: 2
x: -960 x: -960
y: -880.9562 y: -678.2022
width: 1920 width: 1920
height: 1761.9124 height: 1356.4044
m_MinimalGUI: 1 m_MinimalGUI: 1
m_defaultScale: 0.3921875 m_defaultScale: 0.37083334
m_LastWindowPixelSize: {x: 753, y: 712} m_LastWindowPixelSize: {x: 712, y: 524}
m_ClearInEditMode: 1 m_ClearInEditMode: 1
m_NoCameraWarning: 1 m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000 m_LowResolutionForAspectRatios: 00000000000000000000
@ -145,12 +145,12 @@ MonoBehaviour:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 754 width: 713
height: 947 height: 947
m_MinSize: {x: 100, y: 100} m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 8096, y: 16192} m_MaxSize: {x: 8096, y: 16192}
vertical: 1 vertical: 1
controlID: 8714 controlID: 1086
--- !u!114 &4 --- !u!114 &4
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -168,8 +168,8 @@ MonoBehaviour:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 754 width: 713
height: 214 height: 402
m_MinSize: {x: 200, y: 200} m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000} m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 5} m_ActualView: {fileID: 5}
@ -201,8 +201,8 @@ MonoBehaviour:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 73 y: 73
width: 753 width: 712
height: 193 height: 381
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0
m_PreferredDataMode: 0 m_PreferredDataMode: 0
@ -561,9 +561,9 @@ MonoBehaviour:
m_PlayAudio: 0 m_PlayAudio: 0
m_AudioPlay: 0 m_AudioPlay: 0
m_Position: m_Position:
m_Target: {x: 1439, y: 307, z: 0} m_Target: {x: 0.9102906, y: 0.028324064, z: 0.020564094}
speed: 2 speed: 2
m_Value: {x: 1439, y: 307, z: 0} m_Value: {x: 0.9102906, y: 0.028324064, z: 0.020564094}
m_RenderMode: 0 m_RenderMode: 0
m_CameraMode: m_CameraMode:
drawMode: 0 drawMode: 0
@ -613,9 +613,9 @@ MonoBehaviour:
speed: 2 speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1} m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size: m_Size:
m_Target: 312.9015 m_Target: 7.9435906
speed: 2 speed: 2
m_Value: 312.9015 m_Value: 7.9435906
m_Ortho: m_Ortho:
m_Target: 1 m_Target: 1
speed: 2 speed: 2
@ -729,11 +729,11 @@ MonoBehaviour:
m_Position: m_Position:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 214 y: 402
width: 754 width: 713
height: 733 height: 545
m_MinSize: {x: 100, y: 100} m_MinSize: {x: 101, y: 121}
m_MaxSize: {x: 4000, y: 4000} m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 2} m_ActualView: {fileID: 2}
m_Panes: m_Panes:
- {fileID: 2} - {fileID: 2}
@ -754,12 +754,12 @@ MonoBehaviour:
m_Children: [] m_Children: []
m_Position: m_Position:
serializedVersion: 2 serializedVersion: 2
x: 754 x: 713
y: 0 y: 0
width: 564 width: 266
height: 947 height: 947
m_MinSize: {x: 200, y: 200} m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4000, y: 4000} m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 9} m_ActualView: {fileID: 9}
m_Panes: m_Panes:
- {fileID: 9} - {fileID: 9}
@ -787,9 +787,9 @@ MonoBehaviour:
m_Tooltip: m_Tooltip:
m_Pos: m_Pos:
serializedVersion: 2 serializedVersion: 2
x: 754 x: 713
y: 73 y: 73
width: 562 width: 264
height: 926 height: 926
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0
@ -804,9 +804,9 @@ MonoBehaviour:
m_SceneHierarchy: m_SceneHierarchy:
m_TreeViewState: m_TreeViewState:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs: f6290000
m_LastClickedID: 0 m_LastClickedID: 0
m_ExpandedIDs: fe12d2ffe0ebd2ff5a2bd4ff8e64d4ff9464d4fff296d4fff866d6ffd896dfffdab8dfff5220edff2c21edff6081edffa681edff0c44f7ff46adf7fffec6f7ff02c7f7ff2efbfffff4ffffff007b00001c7b0000227b0000367b00003c7b0000467b0000906d0100b86d010092750100e47501003a420200564202005c420200704202007642020080420200924c0300dc4c0300c05303006c540300be540300c4600300b46703008a740300527d0300541304002e1b0400801b040058310400083f0400 m_ExpandedIDs: 22fbffff
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -851,9 +851,9 @@ MonoBehaviour:
m_Tooltip: m_Tooltip:
m_Pos: m_Pos:
serializedVersion: 2 serializedVersion: 2
x: 754 x: 1111
y: 73 y: 73
width: 562 width: 223
height: 926 height: 926
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0
@ -880,9 +880,9 @@ MonoBehaviour:
m_Children: [] m_Children: []
m_Position: m_Position:
serializedVersion: 2 serializedVersion: 2
x: 1318 x: 979
y: 0 y: 0
width: 238 width: 330
height: 947 height: 947
m_MinSize: {x: 232, y: 271} m_MinSize: {x: 232, y: 271}
m_MaxSize: {x: 10002, y: 10021} m_MaxSize: {x: 10002, y: 10021}
@ -912,9 +912,9 @@ MonoBehaviour:
m_Tooltip: m_Tooltip:
m_Pos: m_Pos:
serializedVersion: 2 serializedVersion: 2
x: 1318 x: 979
y: 73 y: 73
width: 236 width: 328
height: 926 height: 926
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0
@ -927,7 +927,7 @@ MonoBehaviour:
m_SaveData: [] m_SaveData: []
m_OverlaysVisible: 1 m_OverlaysVisible: 1
m_SearchFilter: m_SearchFilter:
m_NameFilter: m_NameFilter: Sele
m_ClassNames: [] m_ClassNames: []
m_AssetLabels: [] m_AssetLabels: []
m_AssetBundleNames: [] m_AssetBundleNames: []
@ -937,9 +937,9 @@ MonoBehaviour:
m_SkipHidden: 0 m_SkipHidden: 0
m_SearchArea: 1 m_SearchArea: 1
m_Folders: m_Folders:
- Assets/_Scripts/Application/States - Assets/_Scripts
m_Globs: [] m_Globs: []
m_OriginalText: m_OriginalText: Sele
m_ImportLogFlags: 0 m_ImportLogFlags: 0
m_FilterByTypeIntersection: 0 m_FilterByTypeIntersection: 0
m_ViewMode: 0 m_ViewMode: 0
@ -953,7 +953,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: 10690000 m_SelectedIDs: 10690000
m_LastClickedID: 26896 m_LastClickedID: 26896
m_ExpandedIDs: ffffffff000000009a7b00009c7b00009e7b0000a07b0000a27b0000a47b0000a67b0000a87b0000aa7b0000ac7b0000ae7b0000b07b0000b27b0000b47b0000b67b0000b87b0000ba7b0000bc7b0000be7b0000c07b0000c27b0000c47b0000c67b0000c87b0000ca7b0000cc7b0000ce7b0000d07b0000d27b0000d47b0000d67b0000d87b0000da7b0000dc7b0000de7b0000e07b0000e27b0000e47b0000ee7e0000f07e0000087f0000f4490100fa490100 m_ExpandedIDs: ffffffff00000000a27b0000a47b0000a67b0000a87b0000aa7b0000ac7b0000ae7b0000b07b0000b27b0000b47b0000b67b0000b87b0000ba7b0000bc7b0000be7b0000c07b0000c27b0000c47b0000c67b0000c87b0000ca7b0000cc7b0000ce7b0000d07b0000d27b0000d47b0000d67b0000d87b0000da7b0000dc7b0000de7b0000e07b0000e27b0000e47b0000e67b0000e87b0000ea7b0000ec7b0000ee7b0000f07b0000f27b0000f47b0000f67b0000f87b0000fa7b0000fc7b0000fe7b0000007c0000027c0000047c0000067c0000087c00000a7c0000167f000020820000
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -978,10 +978,10 @@ MonoBehaviour:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_ResourceFile: m_ResourceFile:
m_AssetTreeState: m_AssetTreeState:
scrollPos: {x: 0, y: 564} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs: f6290000
m_LastClickedID: 0 m_LastClickedID: 10742
m_ExpandedIDs: ffffffff000000009a7b00009c7b00009e7b0000a07b0000a27b0000a47b0000a67b0000a87b0000aa7b0000ac7b0000ae7b0000b07b0000b27b0000b47b0000b67b0000b87b0000ba7b0000bc7b0000be7b0000c07b0000c27b0000c47b0000c67b0000c87b0000ca7b0000cc7b0000ce7b0000d07b0000d27b0000d47b0000d67b0000d87b0000da7b0000dc7b0000de7b0000e07b0000e27b0000e47b0000ee7e0000f07e0000007f0000087f0000f4490100fa490100fc490100fe49010024280400 m_ExpandedIDs: ffffffff00000000a27b0000a47b0000a67b0000a87b0000aa7b0000ac7b0000ae7b0000b07b0000b27b0000b47b0000b67b0000b87b0000ba7b0000bc7b0000be7b0000c07b0000c27b0000c47b0000c67b0000c87b0000ca7b0000cc7b0000ce7b0000d07b0000d27b0000d47b0000d67b0000d87b0000da7b0000dc7b0000de7b0000e07b0000e27b0000e47b0000e67b0000e87b0000ea7b0000ec7b0000ee7b0000f07b0000f27b0000f47b0000f67b0000f87b0000fa7b0000fc7b0000fe7b0000007c0000027c0000047c0000067c0000087c00000a7c0000167f000020820000
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1006,24 +1006,24 @@ MonoBehaviour:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_ResourceFile: m_ResourceFile:
m_ListAreaState: m_ListAreaState:
m_SelectedInstanceIDs: m_SelectedInstanceIDs: f6290000
m_LastClickedInstanceID: 0 m_LastClickedInstanceID: 10742
m_HadKeyboardFocusLastEvent: 1 m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs: f46c0000 m_ExpandedInstanceIDs: f46c0000
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: NiuSceneMng m_Name:
m_OriginalName: NiuSceneMng m_OriginalName:
m_EditFieldRect: m_EditFieldRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 0 width: 0
height: 0 height: 0
m_UserData: 3096 m_UserData: 0
m_IsWaitingForDelay: 0 m_IsWaitingForDelay: 0
m_IsRenaming: 0 m_IsRenaming: 0
m_OriginalEventType: 0 m_OriginalEventType: 11
m_IsRenamingFilename: 1 m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 11} m_ClientGUIView: {fileID: 11}
m_CreateAssetUtility: m_CreateAssetUtility:
@ -1052,12 +1052,12 @@ MonoBehaviour:
m_Children: [] m_Children: []
m_Position: m_Position:
serializedVersion: 2 serializedVersion: 2
x: 1556 x: 1309
y: 0 y: 0
width: 364 width: 611
height: 947 height: 947
m_MinSize: {x: 275, y: 50} m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4000, y: 4000} m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 14} m_ActualView: {fileID: 14}
m_Panes: m_Panes:
- {fileID: 14} - {fileID: 14}
@ -1084,9 +1084,9 @@ MonoBehaviour:
m_Tooltip: m_Tooltip:
m_Pos: m_Pos:
serializedVersion: 2 serializedVersion: 2
x: 1556 x: 1309
y: 73 y: 73
width: 363 width: 610
height: 926 height: 926
m_SerializedDataModeController: m_SerializedDataModeController:
m_DataMode: 0 m_DataMode: 0