Commit 21c130be authored by hex's avatar hex

增加检查超先行卡更新的逻辑

parent ba1f7611
......@@ -9,6 +9,7 @@ using System.Text;
using System.Threading;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Networking;
public class Menu : WindowServantSP
{
......@@ -16,6 +17,13 @@ public class Menu : WindowServantSP
private bool isClouseupDownloading = false;
private bool _isCancellationRequested = false;
private const string CloseupDirectory = "picture/closeup";
// 超先行卡更新检查相关
private const string SuperPreDownloadUrl = "https://cdntx.moecube.com/ygopro-super-pre/archive/ygopro-super-pre.ypk";
private const string SuperPreLocalPath = "downloads/ygopro-super-pre.ypk";
private GameObject _newBadge = null;
private bool _hasSuperPreUpdate = false;
private bool _isCheckingUpdate = false;
// 用于在协程间传递结果的成员变量
private int _closeupSuccessCount;
......@@ -47,6 +55,12 @@ public class Menu : WindowServantSP
{
base.show();
Program.charge();
// 自动检查超先行卡更新
if (!_isCheckingUpdate && !isPreDownloading)
{
Program.I().StartCoroutine(CheckSuperPreUpdateCoroutine());
}
}
public override void hide()
......@@ -56,6 +70,83 @@ public class Menu : WindowServantSP
static int Version = 0;
string upurl = "";
/// <summary>
/// 检查超先行卡是否有更新的协程
/// </summary>
private IEnumerator CheckSuperPreUpdateCoroutine()
{
_isCheckingUpdate = true;
bool hasUpdate = false;
yield return Program.I().StartCoroutine(UnityFileDownloader.CheckForUpdateAsync(
SuperPreDownloadUrl,
SuperPreLocalPath,
(result) => { hasUpdate = result; }
));
_hasSuperPreUpdate = hasUpdate;
if (_hasSuperPreUpdate)
{
ShowNewBadge();
}
else
{
HideNewBadge();
}
_isCheckingUpdate = false;
}
/// <summary>
/// 显示 "NEW" 标记
/// </summary>
private void ShowNewBadge()
{
if (_newBadge != null)
{
_newBadge.SetActive(true);
return;
}
// 查找 supreCards_ 按钮
Transform buttonTransform = UIHelper.getByName<Transform>(gameObject, "supreCards_");
if (buttonTransform == null) return;
// 获取按钮上的现有 Label 来复用字体
UILabel existingLabel = buttonTransform.GetComponentInChildren<UILabel>();
if (existingLabel == null) return;
// 创建 NEW 标记
_newBadge = new GameObject("NewBadge");
_newBadge.layer = buttonTransform.gameObject.layer;
_newBadge.transform.SetParent(buttonTransform, false);
_newBadge.transform.localPosition = new Vector3(80, 18, 0); // 右上角位置
_newBadge.transform.localScale = Vector3.one;
UILabel label = _newBadge.AddComponent<UILabel>();
label.text = "NEW";
label.color = new Color(1f, 0.2f, 0.2f, 1f); // 醒目的红色
label.fontSize = 18;
label.trueTypeFont = existingLabel.trueTypeFont;
label.overflowMethod = UILabel.Overflow.ResizeFreely;
label.effectStyle = UILabel.Effect.Outline;
label.effectColor = new Color(0.5f, 0f, 0f, 1f); // 深红色描边
label.effectDistance = new Vector2(1, 1);
label.depth = existingLabel.depth + 1;
}
/// <summary>
/// 隐藏 "NEW" 标记
/// </summary>
private void HideNewBadge()
{
if (_newBadge != null)
{
_newBadge.SetActive(false);
}
_hasSuperPreUpdate = false;
}
void up()
{
......@@ -111,9 +202,15 @@ public class Menu : WindowServantSP
}
// 如果没有下载任务,则执行原有的逻辑
string superPreHint = "更新超先行卡";
if (_hasSuperPreUpdate)
{
superPreHint = "[FF3333]更新超先行卡"; // NGUI 富文本颜色标签
}
var options = new List<messageSystemValue>
{
new messageSystemValue { value = "super_pre", hint = "更新超先行卡" },
new messageSystemValue { value = "super_pre", hint = superPreHint },
new messageSystemValue { value = "closeup", hint = "下载/更新立绘" },
new messageSystemValue { value = "cancel", hint = "取消" }
};
......@@ -130,13 +227,24 @@ public class Menu : WindowServantSP
string choice = result[0].value;
if (choice == "super_pre")
{
Program.I().StartCoroutine(DownloadAndApplySuperPrePackCoroutine());
HideNewBadge(); // 用户点击更新时隐藏 NEW 标记
Program.I().StartCoroutine(CheckAndDownloadSuperPreCoroutine());
}
else if (choice == "closeup")
{
Program.I().StartCoroutine(DownloadCloseupsCoroutine());
}
break;
case "CONFIRM_FORCE_DOWNLOAD_SUPER_PRE": // 确认强制重新下载
if (result[0].value == "yes")
{
Program.I().StartCoroutine(ForceDownloadSuperPrePackCoroutine());
}
else
{
Program.PrintToChat("操作已取消。");
}
break;
case "CONFIRM_CLOSEUP_DOWNLOAD": // 用户确认下载N个文件
if (result[0].value == "yes")
{
......@@ -452,6 +560,135 @@ public class Menu : WindowServantSP
Program.I().StartCoroutine(DownloadAndApplySuperPrePackCoroutine());
}
/// <summary>
/// 检查超先行卡是否有更新,如果有则直接下载,如果没有则询问是否强制下载
/// </summary>
private IEnumerator CheckAndDownloadSuperPreCoroutine()
{
if (isPreDownloading)
{
Program.PrintToChat("正在处理中,请稍候...");
yield break;
}
Program.PrintToChat("正在检查超先行卡更新...");
bool hasUpdate = false;
yield return Program.I().StartCoroutine(UnityFileDownloader.CheckForUpdateAsync(
SuperPreDownloadUrl,
SuperPreLocalPath,
(result) => { hasUpdate = result; }
));
if (hasUpdate)
{
// 有更新,直接下载
Program.I().StartCoroutine(DownloadAndApplySuperPrePackCoroutine());
}
else
{
// 没有更新,询问是否强制重新下载
RMSshow_yesOrNo(
"CONFIRM_FORCE_DOWNLOAD_SUPER_PRE",
"您的超先行卡包已是最新版本。\n是否仍然重新下载并安装?",
new messageSystemValue { value = "yes", hint = "重新下载" },
new messageSystemValue { value = "no", hint = "取消" }
);
}
}
/// <summary>
/// 强制下载超先行卡包(跳过版本检查,直接下载)
/// </summary>
private IEnumerator ForceDownloadSuperPrePackCoroutine()
{
if (isPreDownloading)
{
Program.PrintToChat("正在处理中,请稍候...");
yield break;
}
isPreDownloading = true;
string downloadsDir = "downloads";
string expansionsDir = "expansions";
string ypkFileName = "ygopro-super-pre.ypk";
string ypkFilePathInDownloads = Path.Combine(downloadsDir, ypkFileName);
if (!Directory.Exists(downloadsDir)) Directory.CreateDirectory(downloadsDir);
if (!Directory.Exists(expansionsDir)) Directory.CreateDirectory(expansionsDir);
Program.PrintToChat("开始强制重新下载超先行卡包...\n请注意超先行卡更新会清空原来的 expansions 文件夹");
bool downloadCompleted = false;
int lastReportedProgress = -10;
// 直接下载,不检查 ETag
yield return Program.I().StartCoroutine(UnityFileDownloader.DownloadFileAsync(
SuperPreDownloadUrl,
ypkFilePathInDownloads,
(success) => { downloadCompleted = success; },
(progress) =>
{
int currentProgress = Mathf.FloorToInt(progress * 100);
if (currentProgress >= lastReportedProgress + 10)
{
Program.PrintToChat($"下载进度: {currentProgress}%");
lastReportedProgress = currentProgress;
}
}
));
if (!downloadCompleted)
{
Program.PrintToChat("下载失败,请检查网络或稍后再试。");
isPreDownloading = false;
yield break;
}
// 更新本地 ETag 文件
string etagFilePath = ypkFilePathInDownloads + ".etag";
// 发送 HEAD 请求获取最新 ETag 并保存
UnityWebRequest headRequest = UnityWebRequest.Head(SuperPreDownloadUrl);
yield return headRequest.SendWebRequest();
if (!headRequest.isNetworkError && !headRequest.isHttpError)
{
string serverEtag = headRequest.GetResponseHeader("ETag");
if (!string.IsNullOrEmpty(serverEtag))
{
try
{
File.WriteAllText(etagFilePath, serverEtag);
}
catch (Exception) { }
}
}
// 应用更新
Program.PrintToChat("下载完成,开始应用更新...");
yield return null;
Program.PrintToChat("正在清理旧文件...");
ClearDirectory(expansionsDir);
yield return null;
Program.PrintToChat("正在解压新文件...");
try
{
byte[] ypkData = File.ReadAllBytes(ypkFilePathInDownloads);
Program.I().ExtractZipFile(ypkData, expansionsDir);
Program.PrintToChat("更新成功!请【重启游戏】以使改动完全生效。");
}
catch (Exception e)
{
Program.PrintToChat($"解压失败: {e.Message}");
}
isPreDownloading = false;
}
private IEnumerator DownloadAndApplySuperPrePackCoroutine()
{
isPreDownloading = true;
......
......@@ -86,6 +86,60 @@ public class UnityFileDownloader
}
}
/// <summary>
/// 仅检查资源是否有更新,不执行下载。
/// 通过比较本地 ETag 和服务器 ETag 来判断。
/// </summary>
/// <param name="url">资源 URL</param>
/// <param name="localFilePath">本地文件路径(用于定位 .etag 文件)</param>
/// <param name="onComplete">回调:true = 有更新可用,false = 已是最新或检查失败</param>
public static IEnumerator CheckForUpdateAsync(
string url,
string localFilePath,
Action<bool> onComplete)
{
string etagFilePath = localFilePath + ".etag";
string localEtag = null;
bool localFileExists = File.Exists(localFilePath);
// 1. 读取本地ETag(如果存在)
if (File.Exists(etagFilePath))
{
try
{
localEtag = File.ReadAllText(etagFilePath);
}
catch (Exception)
{
localEtag = null; // 读取失败则当做不存在
}
}
// 2. 发送HEAD请求获取服务器ETag
UnityWebRequest headRequest = UnityWebRequest.Head(url);
headRequest.timeout = 10; // 设置较短的超时时间
yield return headRequest.SendWebRequest();
if (headRequest.isNetworkError || headRequest.isHttpError)
{
// 网络错误,无法判断是否有更新
if (onComplete != null) onComplete.Invoke(false);
yield break;
}
string serverEtag = headRequest.GetResponseHeader("ETag");
if (string.IsNullOrEmpty(serverEtag))
{
// 服务器未提供ETag,无法判断
if (onComplete != null) onComplete.Invoke(false);
yield break;
}
// 3. 比较ETag,判断是否有更新
bool hasUpdate = !localFileExists || string.IsNullOrEmpty(localEtag) || !localEtag.Equals(serverEtag);
if (onComplete != null) onComplete.Invoke(hasUpdate);
}
/// <summary>
/// 检查文件版本,如果不是最新则下载。
/// 最终结果统一为成功(true)或失败(false)。
......
......@@ -344,6 +344,124 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &315439888
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 315439892}
- component: {fileID: 315439891}
- component: {fileID: 315439890}
- component: {fileID: 315439889}
m_Layer: 5
m_Name: UI Root
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!54 &315439889
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 315439888}
serializedVersion: 2
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!114 &315439890
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 315439888}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ae942c9068183dc40a9d01f648273726, type: 3}
m_Name:
m_EditorClassIdentifier:
leftAnchor:
target: {fileID: 0}
relative: 0
absolute: 0
rightAnchor:
target: {fileID: 0}
relative: 1
absolute: 0
bottomAnchor:
target: {fileID: 0}
relative: 0
absolute: 0
topAnchor:
target: {fileID: 0}
relative: 1
absolute: 0
updateAnchors: 1
showInPanelTool: 1
generateNormals: 0
widgetsAreStatic: 0
cullWhileDragging: 1
alwaysOnScreen: 0
anchorOffset: 0
softBorderPadding: 1
renderQueue: 0
startingRenderQueue: 3000
mClipTexture: {fileID: 0}
mAlpha: 1
mClipping: 0
mClipRange: {x: 0, y: 0, z: 300, w: 200}
mClipSoftness: {x: 4, y: 4}
mDepth: 0
mSortingOrder: 0
mClipOffset: {x: 0, y: 0}
--- !u!114 &315439891
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 315439888}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2c5ecb5660b11414fb042fb826e03b73, type: 3}
m_Name:
m_EditorClassIdentifier:
scalingStyle: 0
manualWidth: 1280
manualHeight: 720
minimumHeight: 320
maximumHeight: 1536
fitWidth: 0
fitHeight: 1
adjustByDPI: 0
shrinkPortraitUI: 0
--- !u!4 &315439892
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 315439888}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.0015576323, y: 0.0015576323, z: 0.0015576323}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1236511216}
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!850595691 &1086003614
LightingSettings:
m_ObjectHideFlags: 0
......@@ -406,6 +524,124 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
--- !u!1 &1236511215
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1236511216}
- component: {fileID: 1236511218}
- component: {fileID: 1236511217}
m_Layer: 5
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1236511216
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1236511215}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 315439892}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1236511217
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1236511215}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2a92b5d748695fd44aac9feef17ba415, type: 3}
m_Name:
m_EditorClassIdentifier:
eventType: 1
eventsGoToColliders: 0
eventReceiverMask:
serializedVersion: 2
m_Bits: 4294967295
debug: 0
useMouse: 1
useTouch: 1
allowMultiTouch: 1
useKeyboard: 1
useController: 0
stickyTooltip: 1
tooltipDelay: 1
longPressTooltip: 0
mouseDragThreshold: 4
mouseClickThreshold: 10
touchDragThreshold: 40
touchClickThreshold: 40
rangeDistance: -1
horizontalAxisName: Horizontal
verticalAxisName: Vertical
horizontalPanAxisName:
verticalPanAxisName:
scrollAxisName: Mouse ScrollWheel
commandClick: 1
submitKey0: 13
submitKey1: 330
cancelKey0: 27
cancelKey1: 331
autoHideCursor: 1
--- !u!20 &1236511218
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1236511215}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 3
m_BackGroundColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: -10
far clip plane: 10
field of view: 60
orthographic: 1
orthographic size: 1
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 32
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1001 &1237806114
PrefabInstance:
m_ObjectHideFlags: 0
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 0
y: 66
width: 1107
height: 601
m_ShowMode: 0
m_Title: Build Settings
m_RootView: {fileID: 4}
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
m_Maximized: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -19,12 +43,62 @@ MonoBehaviour:
width: 1512
height: 916
m_ShowMode: 4
m_Title: Simulator
m_RootView: {fileID: 2}
m_Title: Hierarchy
m_RootView: {fileID: 5}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
--- !u!114 &2
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: BuildPlayerWindow
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1107
height: 601
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 15}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1107
height: 601
m_MinSize: {x: 640, y: 601}
m_MaxSize: {x: 4000, y: 4021}
vertical: 0
controlID: 6766
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -37,9 +111,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
- {fileID: 5}
- {fileID: 4}
- {fileID: 6}
- {fileID: 8}
- {fileID: 7}
m_Position:
serializedVersion: 2
x: 0
......@@ -52,7 +126,7 @@ MonoBehaviour:
m_TopViewHeight: 30
m_UseBottomView: 1
m_BottomViewHeight: 20
--- !u!114 &3
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -74,7 +148,7 @@ MonoBehaviour:
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
m_LastLoadedLayoutName:
--- !u!114 &4
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -95,7 +169,7 @@ MonoBehaviour:
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
--- !u!114 &5
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -108,8 +182,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 6}
- {fileID: 11}
- {fileID: 9}
- {fileID: 14}
m_Position:
serializedVersion: 2
x: 0
......@@ -119,8 +193,8 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 614
--- !u!114 &6
controlID: 84
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -133,8 +207,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 7}
- {fileID: 10}
- {fileID: 13}
m_Position:
serializedVersion: 2
x: 0
......@@ -144,8 +218,8 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 615
--- !u!114 &7
controlID: 48
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -158,8 +232,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 8}
- {fileID: 9}
- {fileID: 11}
- {fileID: 12}
m_Position:
serializedVersion: 2
x: 0
......@@ -169,8 +243,8 @@ MonoBehaviour:
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 616
--- !u!114 &8
controlID: 43
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -189,14 +263,14 @@ MonoBehaviour:
y: 0
width: 282
height: 424
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 13}
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 17}
m_Panes:
- {fileID: 13}
- {fileID: 17}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &9
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -215,15 +289,15 @@ MonoBehaviour:
y: 0
width: 865
height: 424
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 15}
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 21}
m_Panes:
- {fileID: 14}
- {fileID: 15}
- {fileID: 18}
- {fileID: 21}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &10
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -244,13 +318,13 @@ MonoBehaviour:
height: 442
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 16}
m_ActualView: {fileID: 19}
m_Panes:
- {fileID: 12}
- {fileID: 16}
- {fileID: 19}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &11
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -269,14 +343,65 @@ MonoBehaviour:
y: 0
width: 365
height: 866
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 17}
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 20}
m_Panes:
- {fileID: 17}
- {fileID: 20}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &12
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12043, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 640, y: 580}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Build Settings
m_Image: {fileID: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 66
width: 1107
height: 580
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs:
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 0}
m_SearchString:
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -298,9 +423,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 670
y: 516
width: 1146
height: 267
height: 421
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
......@@ -317,23 +442,23 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/ArtSystem/superButton/toolBars
- Assets/transUI/prefab
m_Globs: []
m_OriginalText:
m_FilterByTypeIntersection: 0
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets/ArtSystem/superButton/toolBars
- Assets/transUI/prefab
m_LastFoldersGridSize: -1
m_LastProjectPath: /Users/hexzhou/Workplace/ygopro2_unity2021
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 185}
m_SelectedIDs: 1eaf0000
m_LastClickedID: 44830
m_ExpandedIDs: 000000000eaf000010af000012af000014af000016af000018af00001aaf00001caf00001eaf000000ca9a3bffffff7f
scrollPos: {x: 0, y: 64.99939}
m_SelectedIDs: 08cd0000
m_LastClickedID: 52488
m_ExpandedIDs: 00000000fcae0000feae000000af000002af000004af000006af00000aaf00000caf00002abc000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -361,7 +486,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000000eaf000010af000012af000014af000016af000018af00001aaf00001caf00001eaf000000ca9a3bffffff7f
m_ExpandedIDs: 00000000fcae0000feae000000af000002af000004af000006af000008af00000aaf00000caf0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -386,9 +511,9 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_SelectedInstanceIDs: 4e72f0ff
m_LastClickedInstanceID: -1019314
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs: c62300000000000096d2000090d20000
m_RenameOverlay:
m_UserAcceptedRename: 0
......@@ -417,7 +542,7 @@ MonoBehaviour:
m_GridSize: 64
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 207
--- !u!114 &13
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -450,25 +575,25 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: fafaffff
m_LastClickedID: -1286
m_ExpandedIDs: 869ffaffb09ffaffda9ffaffe09ffaffe69ffaff7ad5faff5e7efdff667efdff6c39fefffafaffff
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: d8c2e1ff28c3e1fff8c6e1ff3489f0ff848af0ff208cf0ff1e8ff0ff3692f0ff5a92f0ff6092f0ffc060f1ff04fbffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name: Background
m_OriginalName: Background
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: -352308
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 8}
m_ClientGUIView: {fileID: 11}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
......@@ -476,7 +601,7 @@ MonoBehaviour:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &14
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -758,9 +883,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 1.5788889, y: 0.18222223, z: 0}
m_Target: {x: 0.42858666, y: 0.12888889, z: 0}
speed: 2
m_Value: {x: 1.5788889, y: 0.18222223, z: 0}
m_Value: {x: 0.42858666, y: 0.12888889, z: 0}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
......@@ -811,9 +936,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 0.3047038
m_Target: 0.30309302
speed: 2
m_Value: 0.3047038
m_Value: 0.30309302
m_Ortho:
m_Target: 1
speed: 2
......@@ -838,68 +963,7 @@ MonoBehaviour:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 13974, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Simulator
m_Image: {fileID: 3038311277492192215, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 282
y: 92
width: 863
height: 403
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.GameView
m_SerializedViewValues:
- /Users/hexzhou/Workplace/ygopro2_unity2021/Library/PlayModeViewStates/98a7831995b184136a58115ea65e0c82
m_PlayModeViewName: Device Simulator
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 1}
m_TargetSize: {x: 1600, y: 900}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 2
m_UseMipMap: 0
m_SimulatorState:
controlPanelVisible: 0
controlPanelWidth: 0
controlPanelFoldoutKeys:
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
controlPanelFoldoutValues: 00
pluginNames:
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
pluginStates:
- '{}'
scale: 24
fitToScreenEnabled: 0
rotationDegree: 270
highlightSafeAreaEnabled: 0
friendlyName: Apple iPhone 13 Pro Max
networkReachability: 1
systemLanguage: 10
--- !u!114 &16
--- !u!114 &19
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -929,7 +993,7 @@ MonoBehaviour:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &17
--- !u!114 &20
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
......@@ -972,3 +1036,64 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_PreviewWindow: {fileID: 0}
--- !u!114 &21
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 13974, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Simulator
m_Image: {fileID: 3038311277492192215, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 282
y: 92
width: 863
height: 403
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.GameView
m_SerializedViewValues:
- /Users/hexzhou/Workplace/ygopro2_unity2021/Library/PlayModeViewStates/f21cf1f21b3d049b1b5236ea4248473b
m_PlayModeViewName: Device Simulator
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 1}
m_TargetSize: {x: 2778, y: 1284}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 2
m_UseMipMap: 0
m_SimulatorState:
controlPanelVisible: 0
controlPanelWidth: 0
controlPanelFoldoutKeys:
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
controlPanelFoldoutValues: 00
pluginNames:
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
pluginStates:
- '{}'
scale: 24
fitToScreenEnabled: 0
rotationDegree: 270
highlightSafeAreaEnabled: 0
friendlyName: Apple iPhone 13 Pro Max
networkReachability: 1
systemLanguage: 10
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment