增加Gate网关 的 游戏账号

This commit is contained in:
SnowShow 2025-03-21 18:03:47 +08:00
parent 1d53e5bde7
commit f92349a167
95 changed files with 917 additions and 268 deletions

View File

@ -297,6 +297,7 @@ GameObject:
- component: {fileID: 1152424382386904597}
- component: {fileID: 6543937366562053471}
- component: {fileID: 7496510412544382114}
- component: {fileID: 8566924219933099852}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
@ -422,6 +423,45 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &8566924219933099852
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4218416816966316200}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3}
m_Name:
m_EditorClassIdentifier:
mTerm: ar_TrackImages
mTermSecondary:
PrimaryTermModifier: 0
SecondaryTermModifier: 0
TermPrefix:
TermSuffix:
LocalizeOnAwake: 1
IgnoreRTL: 0
MaxCharactersInRTL: 0
IgnoreNumbersInRTL: 1
CorrectAlignmentForRTL: 1
AddSpacesToJoinedLanguages: 0
AllowLocalizedParameters: 1
AllowParameters: 1
TranslatedObjects: []
LocalizeEvent:
m_PersistentCalls:
m_Calls: []
AlwaysForceLocalize: 0
LocalizeCallBack:
Target: {fileID: 0}
MethodName:
mGUI_ShowReferences: 0
mGUI_ShowTems: 1
mGUI_ShowCallback: 0
mLocalizeTarget: {fileID: 0}
mLocalizeTargetName: TEngine.Localization.LocalizeTarget_TextMeshPro_UGUI
--- !u!1 &4649351181132423131
GameObject:
m_ObjectHideFlags: 0
@ -640,7 +680,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Return
m_text: "\u8FD4\u56DE"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: b2a4cf98a3bf3af45a21517ae28c2f60, type: 2}
m_sharedMaterial: {fileID: -2154976526923410665, guid: b2a4cf98a3bf3af45a21517ae28c2f60, type: 2}

View File

@ -262,6 +262,15 @@ MonoBehaviour:
- "AR\u5BA3\u50B3\u518A"
Flags: 000000
Languages_Touch: []
- Term: ar_TrackImages
TermType: 0
Description:
Languages:
- "\u8BC6\u522B\u56FE\u76F8\u518C"
- Identification photo album
-
Flags: 000000
Languages_Touch: []
CaseInsensitiveTerms: 0
OnMissingTranslation: 1
mTerm_AppName:
@ -280,7 +289,7 @@ MonoBehaviour:
Google_WebServiceURL: https://script.google.com/macros/s/AKfycbyMJIRUEwjOOACTcEVkNzBk2KmimWIpcU2xnwwkNDSGNFVRxWmvfjRxHzB20M3sopiDUA/exec
Google_SpreadsheetKey: 1F3QGlpyEWpkQSP2n-CVC7wL2zr2llKWmT1KpI8dfyEA
Google_SpreadsheetName: I2Loc TEngine Localization
Google_LastUpdatedVersion: 1742454861571
Google_LastUpdatedVersion: 1742521166409
Google_Password: change_this
GoogleUpdateFrequency: 3
GoogleInEditorCheckFrequency: 2

View File

@ -560,10 +560,16 @@ namespace GameLogic
m_previousRotation = m_pointGo.transform.rotation;
m_previousPosition = m_pointGo.transform.position;
m_spawnedObject.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
entityARModel.InitialScale = m_spawnedObject.transform.localScale;
m_spawnedObject.transform.localPosition = m_previousPosition;
//放置物体面向摄像头
m_spawnedObject.transform.LookAt(m_arCamera.transform);
startTime = Time.time;
//rotate = true;
m_wentToScale = true;

View File

@ -14,7 +14,7 @@ namespace GameLogic
public static uint InvalidToken = 6;
public static uint UserNotFoundOrPasswordIsNotCorrect = 7; //用户名不存在 或者 密码 不正确
public static uint UserAlreadyLogin = 8; // 用户已登录
// 无效的身份验证令牌
public static uint AccessDenied = 10; // 访问被拒绝
public static uint ServerError = 11; // 服务器内部错误
@ -22,8 +22,18 @@ namespace GameLogic
public static uint TooManyRequests = 13; // 请求过多(防止刷接口)
public static uint UnauthorizedServer = 14; // 用户不属于该鉴权服务器
// Token验证状态码
public static uint GateTokenValidSuccess = 20; // Gate Token有效
public static uint GateTokenExpired = 21; //Gate Token已过期
public static uint GateTokenInvalidSignature = 22; //Gate Token签名无效
public static uint GateTokenGeneralError = 23; // Gate Token验证一般错误
public static uint GateTokenValidFailed = 24; // Gate Token校验失败 无效
// 获取错误信息
public static string GetErrorMessage(uint errorCode)
{
@ -42,6 +52,11 @@ namespace GameLogic
else if (errorCode == InvalidInput) errorMessage = "输入不合法";
else if (errorCode == TooManyRequests) errorMessage = "请求过多,请稍后再试";
else if (errorCode == UnauthorizedServer) errorMessage = "用户不属于该鉴权服务器";
else if (errorCode == GateTokenValidSuccess) errorMessage = "Gate Token有效";
else if (errorCode == GateTokenExpired) errorMessage = "Gate Token已过期";
else if (errorCode == GateTokenInvalidSignature) errorMessage = "Gate Token签名无效";
else if (errorCode == GateTokenGeneralError) errorMessage = "Gate Token验证一般错误";
else if (errorCode == GateTokenValidFailed) errorMessage = "Gate Token校验失败 无效";
else errorMessage = "未知错误";
return errorMessage;
}

View File

@ -3,8 +3,9 @@ namespace GameLogic.Net
public enum ECommandType
{
None,
Register,
Login,
Register,//注册
Login,//登录
LoginGateToken,//登录GateToken
EnterMap//进入地图
}
}

View File

@ -7,6 +7,8 @@ namespace GameLogic
public long aid ;
// 网关地址
public string gateAddress;
public uint sceneId;
// 创建时间
public long nbf;
// 过期时间

View File

@ -16,19 +16,20 @@ namespace GameLogic
}
string username = data[0].ToString();
string password = data[1].ToString();
var request = (A2C_LoginResponse)await session.Call(new C2A_LoginRequest()
var response = (A2C_LoginResponse)await session.Call(new C2A_LoginRequest()
{
Username = username,
Password = password,
Source = "客户端"
});
var jwtPayload = GameNetJwtUtility.DecodeJwtToken(request.Token);
var jwtPayload = GameNetJwtUtility.DecodeJwtToken(response.Token);
var responseData = new object[]
{
jwtPayload
jwtPayload,
response.Token
};
return (request.ErrorCode,responseData);
return (response.ErrorCode,responseData);
}
public override async UniTask<uint> ExecuteCommand(Session session, params object[] data)

View File

@ -0,0 +1,32 @@
using Cysharp.Threading.Tasks;
using Fantasy;
using Fantasy.Network;
using GameLogic.GameCommand;
namespace GameLogic
{
public class Cmd_LoginGateToken : BaseNetGameCommand
{
public override async UniTask<(uint, object[])> ExecuteRequestMultipleDataCommand(Session session, params object[] data)
{
return (0u, data);
}
public override async UniTask<uint> ExecuteCommand(Session session, params object[] data)
{
if (data.Length == 0 || data == null || data.Length <= 1)
{
Log.Warning("Token Incorrect parameters");
}
string token = data[0].ToString();
var request = (G2C_LoginResponse)await session.Call(new C2G_LoginRequest()
{
Token = token
});
return request.ErrorCode;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8a601cd0c1d60c84ba36dba093ca8f40

View File

@ -64,6 +64,7 @@ namespace GameLogic
m_netcommands.Add(ECommandType.EnterMap,new Cmd_EnterMap());
m_netcommands.Add(ECommandType.Register,new Cmd_Register());
m_netcommands.Add(ECommandType.Login,new Cmd_Login());
m_netcommands.Add(ECommandType.LoginGateToken,new Cmd_LoginGateToken());
}
}
@ -148,7 +149,7 @@ namespace GameLogic
private void OnConnectDisconnect()
{
Log.Debug("链接断开");
//Log.Debug("链接断开");
}
private void OnConnectComplete()

View File

@ -87,14 +87,19 @@ namespace GameLogic
Log.Warning($"登录失败,错误码:{errorMessage}");
return;
}
if(result.data!=null && result.data.Length > 0)
if(result.data==null && result.data.Length == 0) return;
var jwtPayload = result.data[0] as JwtPayload;
var gateToken = result.data[1] as string;
//进行网关连接校验
var code = await GameNetSystem.Instance.SendCommand(jwtPayload.gateAddress,ECommandType.LoginGateToken,new object[]{gateToken});
if(code != 1)
{
var jwtPayload = result.data[0] as JwtPayload;
if(jwtPayload!=null)
{
Log.Warning($"登录成功,账号id:{jwtPayload.aid},网关地址:{jwtPayload.gateAddress}");
}
errorMessage = GameErrorCode.GetErrorMessage(code);
Log.Warning($"登录失败,错误码:{errorMessage}");
return;
}
/*username = string.Empty;
password = string.Empty;*/
Log.Warning("登录成功");

View File

@ -119,7 +119,7 @@ MonoBehaviour:
m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 32384, y: 16192}
vertical: 0
controlID: 46
controlID: 15
draggingID: 0
--- !u!114 &6
MonoBehaviour:
@ -140,12 +140,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1595
width: 1460
height: 933
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 1
controlID: 47
controlID: 16
draggingID: 0
--- !u!114 &7
MonoBehaviour:
@ -167,12 +167,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1595
height: 609
width: 1460
height: 565
m_MinSize: {x: 300, y: 50}
m_MaxSize: {x: 24288, y: 8096}
vertical: 0
controlID: 48
controlID: 17
draggingID: 0
--- !u!114 &8
MonoBehaviour:
@ -191,13 +191,13 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 303
height: 609
width: 339
height: 565
m_MinSize: {x: 201, y: 226}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 17}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 17}
- {fileID: 16}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &9
@ -215,15 +215,15 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 303
x: 339
y: 0
width: 603
height: 609
width: 476
height: 565
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 18}
m_ActualView: {fileID: 17}
m_Panes:
- {fileID: 18}
- {fileID: 17}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &10
@ -241,15 +241,15 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 906
x: 815
y: 0
width: 689
height: 609
width: 645
height: 565
m_MinSize: {x: 52, y: 76}
m_MaxSize: {x: 4002, y: 4026}
m_ActualView: {fileID: 16}
m_ActualView: {fileID: 22}
m_Panes:
- {fileID: 16}
- {fileID: 22}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &11
@ -271,13 +271,13 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 609
width: 1595
height: 324
y: 565
width: 1460
height: 368
m_MinSize: {x: 300, y: 50}
m_MaxSize: {x: 24288, y: 8096}
vertical: 0
controlID: 166
controlID: 72
draggingID: 0
--- !u!114 &12
MonoBehaviour:
@ -296,13 +296,13 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 354
height: 324
width: 984
height: 368
m_MinSize: {x: 101, y: 126}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 19}
m_ActualView: {fileID: 18}
m_Panes:
- {fileID: 19}
- {fileID: 18}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &13
@ -320,15 +320,15 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 354
x: 984
y: 0
width: 626
height: 324
width: 192
height: 368
m_MinSize: {x: 232, y: 276}
m_MaxSize: {x: 10002, y: 10026}
m_ActualView: {fileID: 20}
m_ActualView: {fileID: 19}
m_Panes:
- {fileID: 20}
- {fileID: 19}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &14
@ -346,15 +346,15 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 980
x: 1176
y: 0
width: 615
height: 324
width: 284
height: 368
m_MinSize: {x: 232, y: 276}
m_MaxSize: {x: 10002, y: 10026}
m_ActualView: {fileID: 21}
m_ActualView: {fileID: 20}
m_Panes:
- {fileID: 21}
- {fileID: 20}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &15
@ -372,120 +372,18 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1595
x: 1460
y: 0
width: 325
width: 460
height: 933
m_MinSize: {x: 276, y: 76}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 22}
m_ActualView: {fileID: 21}
m_Panes:
- {fileID: 22}
- {fileID: 21}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &16
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: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 50, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
m_Tooltip:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 907
y: 24
width: 687
height: 583
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_ContainerData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- E:\UnityProject\EintooAR\EintooAR\Library\PlayModeViewStates\a297a2320b8d69d4f8953e88f56338a2
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 750, y: 1334}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 2
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 07000000000000002300000012000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -375
m_HBaseRangeMax: 375
m_VBaseRangeMin: -667
m_VBaseRangeMax: 667
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 687
height: 562
m_Scale: {x: 0.42128938, y: 0.42128935}
m_Translation: {x: 343.5, y: 281}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -815.35406
y: -667
width: 1630.7081
height: 1334
m_MinimalGUI: 1
m_defaultScale: 0.42128935
m_LastWindowPixelSize: {x: 687, y: 583}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000101000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -508,8 +406,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 24
width: 302
height: 583
width: 338
height: 539
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -526,7 +424,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: b4f8ffffc4f8ffff06080100400801004a08010052080100
m_ExpandedIDs: 963ef7ff5841f7ff5e41f7ffbaaff8ff702ffaff762ffaff7c2ffaff822ffaff8a2ffaff942ffaffae2ffaffb42ffaffba2ffaffc02ffaffc62ffaffcc2ffaff6a9ffbff66b2fbffaeb2fbfff8bbfbffccbdfbffeed1fbff36d2fbff80dbfbff54ddfbff42c5fcff4cc5fcff5ac5fcff82c5fcffb4c5fcff1a02fdff4602fdff4e02fdff5602fdff340ffdff8076fdff3e77fdff4677fdff4e77fdff9a79fdff04aefdff0eaefdff1eaefdffb8c2fdffd2c2fdfffec2fdff06c3fdff0ec3fdff7ac3fdffbcc3fdffeecefdff28cffdff92dffdffda2dffffc03cffff8a83ffff9683ffffd283ffffde83ffffea83ffff0e84ffff108effff76c9ffff9cd4ffff8cd7ffff94d7ffffa6d9ffffa2f9fffff4ffffffe02f0100fc2f0100343001001eda030078da0300
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -551,7 +449,7 @@ MonoBehaviour:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &18
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -572,10 +470,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Scene\u200B"
m_Pos:
serializedVersion: 2
x: 304
x: 340
y: 24
width: 601
height: 583
width: 474
height: 539
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -646,11 +544,11 @@ MonoBehaviour:
displayed: 0
id: unity-search-toolbar
index: 2
contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":-24.0,"y":25.0},"m_FloatingSnapCorner":1,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":-24.0,"y":0.0},"m_FloatingSnapCorner":1,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: -24, y: 25}
snapOffsetDelta: {x: -24, y: 0}
snapCorner: 1
layout: 1
size: {x: 0, y: 0}
@ -702,11 +600,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Light Settings
index: 1
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -730,11 +628,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Cloth Constraints
index: 2
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -744,11 +642,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Cloth Collisions
index: 3
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -800,11 +698,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Occlusion Culling
index: 4
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -814,11 +712,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Physics Debugger
index: 5
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -828,11 +726,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Scene Visibility
index: 6
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -842,11 +740,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Particles
index: 7
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -884,11 +782,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Open Tile Palette
index: 3
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -898,11 +796,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Tilemap Focus
index: 4
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -912,11 +810,11 @@ MonoBehaviour:
displayed: 0
id: Brush Attributes
index: 2
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 24, y: 0}
snapOffsetDelta: {x: 0, y: 25}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -926,11 +824,11 @@ MonoBehaviour:
displayed: 0
id: Terrain Tools
index: 0
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 24, y: 0}
snapOffsetDelta: {x: 0, y: 25}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -940,11 +838,11 @@ MonoBehaviour:
displayed: 0
id: Brush Masks
index: 1
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 24, y: 0}
snapOffsetDelta: {x: 0, y: 25}
snapOffsetDelta: {x: 0, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -954,11 +852,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Lighting Visualization Colors
index: 0
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -982,11 +880,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Tile Palette Clipboard
index: 0
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -996,11 +894,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/Tile Palette Brush Pick
index: 9
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1010,11 +908,11 @@ MonoBehaviour:
displayed: 0
id: APV Overlay
index: 12
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1024,11 +922,11 @@ MonoBehaviour:
displayed: 0
id: SceneView/CamerasOverlay
index: 8
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1038,11 +936,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/PBR Validation Settings
index: 10
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1052,11 +950,11 @@ MonoBehaviour:
displayed: 0
id: Scene View/TrailRenderer
index: 11
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1066,11 +964,11 @@ MonoBehaviour:
displayed: 0
id: XREnvironmentToolbar
index: 13
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1080,11 +978,11 @@ MonoBehaviour:
displayed: 0
id: XR Building Blocks
index: 14
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":25.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}'
floating: 0
collapsed: 0
snapOffset: {x: 0, y: 0}
snapOffsetDelta: {x: 24, y: 25}
snapOffsetDelta: {x: 24, y: 0}
snapCorner: 0
layout: 4
size: {x: 0, y: 0}
@ -1130,9 +1028,9 @@ MonoBehaviour:
m_AudioPlay: 0
m_DebugDrawModesUseInteractiveLightBakingData: 0
m_Position:
m_Target: {x: 0, y: 0, z: 100}
m_Target: {x: -0.67659813, y: -0.6588277, z: -0.18405618}
speed: 2
m_Value: {x: 0, y: 0, z: 100}
m_Value: {x: -0.67659813, y: -0.6588277, z: -0.18405618}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -1182,9 +1080,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 5.736049
m_Target: 1.3143793
speed: 2
m_Value: 5.736049
m_Value: 1.3143793
m_Ortho:
m_Target: 1
speed: 2
@ -1205,7 +1103,7 @@ MonoBehaviour:
m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_LastSceneViewOrtho: 0
m_Viewpoint:
m_SceneView: {fileID: 18}
m_SceneView: {fileID: 17}
m_CameraOverscanSettings:
m_Opacity: 50
m_Scale: 1
@ -1215,7 +1113,7 @@ MonoBehaviour:
m_LastLockedObject: {fileID: 0}
m_LastDebugDrawMode: 35
m_ViewIsLockedToObject: 0
--- !u!114 &19
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -1238,8 +1136,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 24
width: 353
height: 298
width: 983
height: 342
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1251,7 +1149,7 @@ MonoBehaviour:
m_SaveData: []
m_ContainerData: []
m_OverlaysVisible: 1
--- !u!114 &20
--- !u!114 &19
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -1272,10 +1170,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Project\u200B"
m_Pos:
serializedVersion: 2
x: 355
x: 985
y: 24
width: 624
height: 298
width: 190
height: 342
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1298,7 +1196,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/GameScripts/HotFix/GameLogic/AR Brochure/UI/SelfMain
- Assets/AssetArt/AR/Sprite/AppIcon
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
@ -1308,16 +1206,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 64
m_LastFolders:
- Assets/GameScripts/HotFix/GameLogic/AR Brochure/UI/SelfMain
- Assets/AssetArt/AR/Sprite/AppIcon
m_LastFoldersGridSize: -1
m_LastProjectPath: D:\TecentUGit\EintooAR\EintooAR
m_LockTracker:
m_IsLocked: 1
m_FolderTreeState:
scrollPos: {x: 0, y: 1283}
m_SelectedIDs: 1a060100
m_LastClickedID: 67098
m_ExpandedIDs: 000000008a0501008c0501008e05010090050100920501009405010096050100980501009a0501009c0501009e050100a0050100a2050100a4050100a6050100
scrollPos: {x: 0, y: 58}
m_SelectedIDs: 16060100
m_LastClickedID: 67094
m_ExpandedIDs: 00000000060b0100080b01000a0b01000c0b01000e0b0100100b0100120b0100140b0100160b0100180b01001a0b01001c0b01001e0b0100200b0100220b0100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1346,7 +1244,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000008a0501008c0501008e05010090050100920501009405010096050100980501009a0501009c0501009e050100a0050100a2050100a4050100a6050100
m_ExpandedIDs: 00000000060b0100080b01000a0b01000c0b01000e0b0100100b0100120b0100140b0100160b0100180b01001a0b01001c0b01001e0b0100200b0100220b0100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1374,7 +1272,7 @@ MonoBehaviour:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs: c62300009e44060000000000bc4f0100
m_RenameOverlay:
m_UserAcceptedRename: 0
@ -1400,11 +1298,11 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_NewAssetIndexInList: -1
m_ScrollPosition: {x: 0, y: 0}
m_ScrollPosition: {x: 0, y: 9}
m_GridSize: 64
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 210
--- !u!114 &21
m_DirectoriesAreaWidth: 50
--- !u!114 &20
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -1425,10 +1323,10 @@ MonoBehaviour:
m_TextWithWhitespace: "Project\u200B"
m_Pos:
serializedVersion: 2
x: 981
x: 1177
y: 24
width: 613
height: 298
width: 282
height: 342
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@ -1451,7 +1349,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/AssetRaw/UI/AR/UISelf
- Assets/AssetRaw/UI/AR/Project
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
@ -1461,16 +1359,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets/AssetRaw/UI/AR/UISelf
- Assets/AssetRaw/UI/AR/Project
m_LastFoldersGridSize: -1
m_LastProjectPath: D:\TecentUGit\EintooAR\EintooAR
m_LockTracker:
m_IsLocked: 1
m_FolderTreeState:
scrollPos: {x: 0, y: 960}
m_SelectedIDs: 24070100
m_LastClickedID: 67364
m_ExpandedIDs: 000000008a0501008c0501008e05010090050100920501009405010096050100980501009a0501009c0501009e050100a0050100a2050100a4050100a6050100
scrollPos: {x: 0, y: 270}
m_SelectedIDs: 50060100
m_LastClickedID: 67152
m_ExpandedIDs: 00000000060b0100080b01000a0b01000c0b01000e0b0100100b0100120b0100140b0100160b0100180b01001a0b01001c0b01001e0b0100200b0100220b0100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1499,7 +1397,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000008a0501008c0501008e05010090050100920501009405010096050100980501009a0501009c0501009e050100a0050100a2050100a4050100a6050100
m_ExpandedIDs: 00000000060b0100080b01000a0b01000c0b01000e0b0100100b0100120b0100140b0100160b0100180b01001a0b01001c0b01001e0b0100200b0100220b0100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1527,7 +1425,7 @@ MonoBehaviour:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs:
m_RenameOverlay:
m_UserAcceptedRename: 0
@ -1545,7 +1443,7 @@ MonoBehaviour:
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_TrimLeadingAndTrailingWhitespace: 0
m_ClientGUIView: {fileID: 8}
m_ClientGUIView: {fileID: 14}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
@ -1556,8 +1454,8 @@ MonoBehaviour:
m_ScrollPosition: {x: 0, y: 0}
m_GridSize: 16
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 195
--- !u!114 &22
m_DirectoriesAreaWidth: 232
--- !u!114 &21
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@ -1578,9 +1476,9 @@ MonoBehaviour:
m_TextWithWhitespace: "Inspector\u200B"
m_Pos:
serializedVersion: 2
x: 1596
x: 1461
y: 24
width: 324
width: 459
height: 907
m_SerializedDataModeController:
m_DataMode: 0
@ -1606,3 +1504,105 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_PreviewWindow: {fileID: 0}
--- !u!114 &22
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: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 50, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
m_Tooltip:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 816
y: 24
width: 643
height: 539
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_ContainerData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- D:\TecentUGit\EintooAR\EintooAR\Library\PlayModeViewStates\45c0dd85b22cfd642b069a9a3dffc421
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 750, y: 1334}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 2
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 07000000000000002400000012000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -375
m_HBaseRangeMax: 375
m_VBaseRangeMin: -667
m_VBaseRangeMax: 667
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 643
height: 518
m_Scale: {x: 0.38830584, y: 0.38830584}
m_Translation: {x: 321.5, y: 259}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -827.9556
y: -667
width: 1655.9113
height: 1334
m_MinimalGUI: 1
m_defaultScale: 0.38830584
m_LastWindowPixelSize: {x: 643, y: 539}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000101000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}

View File

@ -0,0 +1,34 @@
2025-03-21 11:18:40.0889 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:18:40.3142 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:18:40.7000 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:18:41.0696 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:20:32.1377 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 11:20:33.0250 (C2G_LoginRequestHandler.cs:12) TokeneyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhaWQiOjExNjI5OTI3OTEyNzI4MTY2NSwiZ2F0ZUFkZHJlc3MiOiIxMjcuMC4wLjE6MjEwMTEiLCJuYmYiOjE3NDI1MjcyMzIsImV4cCI6MTc0MjUyNzI0MiwiaXNzIjoiSnVseSIsImF1ZCI6ImdhbWVVc2VyIn0.CB9sCtnFdPXCVzK1Zxp3S62MoWsBh3d_DOw3J5OEJ_2naN4Et0Tu5oVPxrLifTysM8kLKgUq-KtJM4ClXYmqI9EYwnl6BDVuIdmvaq7nmXymqRagTprk-5QZm8bjv8QI4Z2-kjOd0sR1TL1xYoly7d0uD7uKhs-AQkU_Tk7N6IZxNF7BzfDDe7Hlsfay_TUlZpNPDd23vPvrtIzS6ZkOJedtI_A34qXtakw-SSJu-ok7u6alTKvpdEnm3sJyAWRFLyRGe7D3ZL--UsAQKtSUjvALU1BoHrlRbgMEpah7B_nVNXU4D2CAVCkJG_ZxJ7Buvd_1Mk3RU_N7tjaM6Uv0YQ
2025-03-21 11:20:38.1399 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中
2025-03-21 11:24:26.5611 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:24:26.9976 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:24:27.4290 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:24:27.8348 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:26:51.1413 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:26:51.6186 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:26:52.0299 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:26:52.4376 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:27:03.7706 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 11:27:03.9695 (C2G_LoginRequestHandler.cs:14) Gate校验登录令牌
2025-03-21 11:27:09.7724 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中
2025-03-21 11:27:56.7339 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:27:57.1399 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:27:57.5510 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:27:57.9501 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:27:59.5180 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 11:27:59.7340 (C2G_LoginRequestHandler.cs:14) Gate校验登录令牌
2025-03-21 11:27:59.7589 (C2G_LoginRequestHandler.cs:18) Gate校验登录令牌成功
2025-03-21 11:28:05.5202 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中
2025-03-21 11:29:27.8193 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:29:28.2302 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 11:29:28.6359 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:29:29.0305 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 11:29:30.0056 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 11:29:30.2285 (C2G_LoginRequestHandler.cs:14) Gate校验登录令牌
2025-03-21 11:29:30.2619 (C2G_LoginRequestHandler.cs:18) Gate校验登录令牌成功
2025-03-21 11:29:36.0078 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中

View File

@ -0,0 +1,60 @@
2025-03-21 11:18:39.0896 初始化序列化器成功数量为2
2025-03-21 11:18:39.7469 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 11:18:39.9325 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 11:18:40.0889 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:18:40.1377 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 11:18:40.3142 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 11:18:40.3142 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:18:40.5240 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 11:18:40.7000 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 11:18:40.8988 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 11:18:41.0696 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 11:18:41.0696 Process:1 Startup Complete SceneCount:4
2025-03-21 11:24:25.6704 初始化序列化器成功数量为2
2025-03-21 11:24:26.3290 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 11:24:26.5453 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 11:24:26.5611 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:24:26.7744 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 11:24:26.9976 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 11:24:26.9976 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:24:27.2230 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 11:24:27.4290 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 11:24:27.6459 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 11:24:27.8346 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 11:24:27.8348 Process:1 Startup Complete SceneCount:4
2025-03-21 11:26:50.2982 初始化序列化器成功数量为2
2025-03-21 11:26:50.9259 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 11:26:51.1268 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 11:26:51.1413 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:26:51.4070 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 11:26:51.6167 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 11:26:51.6186 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:26:51.8309 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 11:26:52.0299 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 11:26:52.2515 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 11:26:52.4376 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 11:26:52.4376 Process:1 Startup Complete SceneCount:4
2025-03-21 11:27:55.8945 初始化序列化器成功数量为2
2025-03-21 11:27:56.5080 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 11:27:56.7174 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 11:27:56.7339 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:27:56.9388 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 11:27:57.1399 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 11:27:57.1399 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:27:57.3601 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 11:27:57.5510 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 11:27:57.7626 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 11:27:57.9501 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 11:27:57.9501 Process:1 Startup Complete SceneCount:4
2025-03-21 11:29:27.0076 初始化序列化器成功数量为2
2025-03-21 11:29:27.6075 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 11:29:27.8036 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 11:29:27.8185 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:29:28.0286 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 11:29:28.2302 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 11:29:28.2302 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 11:29:28.4384 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 11:29:28.6359 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 11:29:28.8414 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 11:29:29.0305 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 11:29:29.0305 Process:1 Startup Complete SceneCount:4

View File

@ -0,0 +1,3 @@
2025-03-21 11:27:04.0043 (GateJWTComponentSystem.cs:46) Token签名校验成功
2025-03-21 11:27:59.7589 (GateJWTComponentSystem.cs:45) Token签名无效
2025-03-21 11:29:30.2619 (GateJWTComponentSystem.cs:46) Token签名校验成功

View File

@ -0,0 +1,8 @@
2025-03-21 12:00:58.2956 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 12:00:58.7590 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 12:00:59.2597 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 12:00:59.7161 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 12:01:49.0781 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 12:01:49.3050 (GateJWTComponentSystem.cs:49) jwtPayLoadSystem.IdentityModel.Tokens.Jwt.JwtPayload
2025-03-21 12:01:49.3050 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户0
2025-03-21 12:01:55.0800 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中

View File

@ -0,0 +1,12 @@
2025-03-21 12:00:57.3706 初始化序列化器成功数量为2
2025-03-21 12:00:58.0485 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 12:00:58.2791 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 12:00:58.2956 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 12:00:58.5164 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 12:00:58.7590 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 12:00:58.7590 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 12:00:59.0308 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 12:00:59.2597 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 12:00:59.5072 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 12:00:59.7161 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 12:00:59.7161 Process:1 Startup Complete SceneCount:4

View File

@ -0,0 +1 @@
2025-03-21 12:01:49.3050 (GateJWTComponentSystem.cs:47) Token签名校验成功

View File

@ -0,0 +1,8 @@
2025-03-21 13:02:29.0154 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 13:02:29.3978 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件
2025-03-21 13:02:29.7923 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 13:02:30.1861 (OnCreateScene_InitEvent.cs:21) 初始网关Gate服务器组件
2025-03-21 13:03:59.8011 (AuthenticationComponentSystem.cs:129) Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001
2025-03-21 13:04:00.0489 (GateJWTComponentSystem.cs:49) jwtPayLoadSystem.IdentityModel.Tokens.Jwt.JwtPayload
2025-03-21 13:04:00.0489 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665
2025-03-21 13:04:05.8032 (AuthenticationComponentSystem.cs:149) Login:username:wangwei 用户移除成功 从缓存中

View File

@ -0,0 +1,12 @@
2025-03-21 13:02:28.1763 初始化序列化器成功数量为2
2025-03-21 13:02:28.8003 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001
2025-03-21 13:02:28.9994 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001
2025-03-21 13:02:29.0154 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 13:02:29.2117 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002
2025-03-21 13:02:29.3965 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002
2025-03-21 13:02:29.3978 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功
2025-03-21 13:02:29.6078 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010
2025-03-21 13:02:29.7923 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010
2025-03-21 13:02:30.0012 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011
2025-03-21 13:02:30.1861 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011
2025-03-21 13:02:30.1861 Process:1 Startup Complete SceneCount:4

View File

@ -0,0 +1 @@
2025-03-21 13:04:00.0489 (GateJWTComponentSystem.cs:47) Token签名校验成功

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("APlugins")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b8e2d99dd7277d1644029a11bf26cf77e405732f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1d53e5bde716121b86978faf2318ba914be9fa8d")]
[assembly: System.Reflection.AssemblyProductAttribute("APlugins")]
[assembly: System.Reflection.AssemblyTitleAttribute("APlugins")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
dccc97a4d27441ba4cd8c8a996c2caa909b1fc1a5b2e8d359088ed823659d12f
1b3c544616f60c6cd395bba4d2cc521e0572b45bfe773d74cf1f8ee4f16958ff

View File

@ -1 +1 @@
17422854602513829
17424344223953143

View File

@ -12,11 +12,20 @@ public static class GameErrorCode
public static uint UserNotFoundOrPasswordIsNotCorrect = 7; //用户名不存在 或者 密码 不正确
public static uint UserAlreadyLogin = 8; // 用户已登录
// 无效的身份验证令牌
// 无效的身份验证令牌
public static uint AccessDenied = 10; // 访问被拒绝
public static uint ServerError = 11; // 服务器内部错误
public static uint InvalidInput = 12; // 输入不合法
public static uint TooManyRequests = 13; // 请求过多(防止刷接口)
public static uint UnauthorizedServer = 14; // 用户不属于该鉴权服务器
// Token验证状态码
public static uint GateTokenValidSuccess = 20; // Gate Token有效
public static uint GateTokenExpired = 21; //Gate Token已过期
public static uint GateTokenInvalidSignature = 22; //Gate Token签名无效
public static uint GateTokenGeneralError = 23; // Gate Token验证一般错误
public static uint GateTokenValidFailed = 24; // Gate Token校验失败 无效
public static uint GateLoginSuccess = 25;
}

View File

@ -4,4 +4,7 @@ public enum ELockType
{
AuthenticationRegister = 1 ,
AuthenticationLogin = 2,
GateGetGameAccount = 3,
GateLoadGameAccount = 5,
}

View File

@ -0,0 +1,9 @@
using Fantasy.Entitas;
namespace Fantasy;
public class GameAccount : Entity
{
public long CreateTime;
public long LoginTime;
}

View File

@ -0,0 +1,8 @@
using Fantasy.Entitas;
namespace Fantasy;
public class GameAccountManageComponent : Entity
{
public Dictionary<long, GameAccount> Accounts = new Dictionary<long, GameAccount>();
}

View File

@ -0,0 +1,8 @@
using Fantasy.Entitas;
namespace Fantasy;
public class GateComponent : Entity
{
}

View File

@ -0,0 +1,20 @@
using Fantasy.Entitas;
using Microsoft.IdentityModel.Tokens;
namespace Fantasy;
public class GateJWTComponent : Entity
{
public string PublicKey = "-----BEGIN PUBLIC KEY-----" +
"\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArLVBnJ4W3JY+miBIBE4J" +
"\nMKnRatQC7EgtUco+mzDzxSWKiBVe3SjNe7fp2EzoOfhG762nQG8wFjPOamqo+Qd5" +
"\nTToSR7q9B5/kivNzWyeYldAbV4LzT8fRkDmRhTA7/I2UCcRPhBD1Z9byY6ivLR0C" +
"\n3wxVsSF7tYR2/sQXvZKtsfT8myl0W0ts11/y278fCSdTPZR6i+zV1lnUiLRjAIhy" +
"\nOwgROiVUH0YUHX39DJ3D3m03e9n5xuvBFGr57w04d7fSef1OdeFLPwnTK5DxJ79N" +
"\nqJwhmVzNBKHI9tkd/Un6MKHdwdzDiWlLUPsXlhtFs84eMAGU+BaGVdjln2S/OOtm" +
"\nzQIDAQAB" +
"\n-----END PUBLIC KEY-----";
public TokenValidationParameters ValidationParameters;
}

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Entity")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b8e2d99dd7277d1644029a11bf26cf77e405732f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1d53e5bde716121b86978faf2318ba914be9fa8d")]
[assembly: System.Reflection.AssemblyProductAttribute("Entity")]
[assembly: System.Reflection.AssemblyTitleAttribute("Entity")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
9247dc3fa72c73ba70b5576080bf9d70d25928cedefbaad22408f733f5a55b6e
bbd4c79125771ca589bf487974428247095e8abae05566c1f5176ad25105432e

View File

@ -1 +1 @@
ed6ca349080eccb651570726e4d17654f6ee01b6ccc9033f19f552770a1a8913
976bb9f148ac847475b09e140d82a035473338498c42dd58337c735baa440822

View File

@ -1 +1 @@
17422854602513829
17424344223963130

View File

@ -3,6 +3,8 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEntity_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fff8cbe4b3c6c469b86633ea0c41accd783200_003Fba_003F2fb4e56f_003FEntity_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHashSet_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9f36f47319b32af838b2a5d575986ff83918e428931b1ed44ad662b6bc8a_003FHashSet_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AJwtHeader_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F176642ae3c77a37f58482aa52d3c51c44363712ca45861c4661aca6a942f7b_003FJwtHeader_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AJwtSecurityToken_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F3ebffcd2ab98c3abdcb6c2c350fb49783e75ae2d26c32d1ab7d87c9e84e4_003FJwtSecurityToken_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMessageRPC_00602_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fcecd144a08d24f2689bc8ef970d04dae84a00_003Ff7_003F1631cece_003FMessageRPC_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARSA_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fccead27d2093152bd8da21dd18eb5e398966206a6e3a4bff4dac2221dbd3352a_003FRSA_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASceneConfigData_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fcecd144a08d24f2689bc8ef970d04dae84a00_003Fb6_003F76f78bbd_003FSceneConfigData_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScene_002Ecs_002Fl_003AC_0021_003FUsers_003Fqq137_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fcecd144a08d24f2689bc8ef970d04dae84a00_003F5b_003Fc45341b2_003FScene_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

View File

@ -12,7 +12,6 @@
<ItemGroup>
<Folder Include="Inner\" />
<Folder Include="Outter\Gate\" />
</ItemGroup>
</Project>

View File

@ -15,6 +15,11 @@ public class OnCreateScene_InitEvent : AsyncEventSystem<OnCreateScene>
scene.AddComponent<AuthenticationJWTComponent>();
Log.Debug("初始化鉴权服务器组件");
break;
case SceneType.Gate:
scene.AddComponent<GateComponent>();
scene.AddComponent<GateJWTComponent>();
Log.Debug("初始网关Gate服务器组件");
break;
}
await FTask.CompletedTask;

View File

@ -66,6 +66,7 @@ public static class AuthenticationJWTComponentSystem
{
{"aid",accountId},
{"gateAddress",gateAddress},
{"sceneId",self.Scene.SceneConfigId}
};
var jwt = new JwtSecurityToken(
issuer: "July", // 令牌发行者

View File

@ -0,0 +1,22 @@
using Fantasy;
using Fantasy.Async;
using Fantasy.Entitas;
using Fantasy.Helper;
namespace Hotfix;
public static class GameAccountFactory
{
public static async FTask<GameAccount> Create(Scene scene, long accountId, bool isSaveToDatabase = true)
{
var gameAccount = Entity.Create<GameAccount>(scene,accountId,false,false);
gameAccount.CreateTime = TimeHelper.Now;
if (isSaveToDatabase)
{
await gameAccount.SaveToDatabase(scene);
}
return gameAccount;
}
}

View File

@ -0,0 +1,78 @@
using Fantasy;
using Fantasy.Async;
using Fantasy.Entitas.Interface;
using Hotfix.Helper;
namespace Hotfix;
public static class GameAccountManageComponentSystem
{
public static void Add(this GameAccountManageComponent self,long accountId, GameAccount gameAccount)
{
if (!self.Accounts.ContainsKey(accountId))
{
self.Accounts.Add(accountId, gameAccount);
}
else
{
self.Accounts[accountId] = gameAccount;
}
}
public static GameAccount? Get(this GameAccountManageComponent self,long accountId)
{
return self.Accounts.GetValueOrDefault(accountId);
}
public static GameAccount? TryGet(this GameAccountManageComponent self,long accountId)
{
self.Accounts.TryGetValue(accountId,out var gameAccount);
return gameAccount;
}
public static bool Remove(this GameAccountManageComponent self, long accountId, bool isDispose = true)
{
if (!self.Accounts.Remove(accountId,out var gameAccount))
{
return false;
}
if (isDispose)
{
gameAccount.Dispose();
}
return true;
}
public static async FTask<(uint error,GameAccount gameAccount)> GetAccountGame(this GameAccountManageComponent self, long accountId)
{
var scene = self.Scene;
GameAccount gameAccount = null;
using (await scene.CoroutineLockComponent.Wait((int)ELockType.GateGetGameAccount,accountId))
{
gameAccount = self.Get(accountId);
if (gameAccount != null) return (GameErrorCode.GateLoginSuccess,gameAccount);;
gameAccount = await GameAccountHelper.LoadGameAccountFromDatabase(scene,accountId);
if (gameAccount != null)
{
gameAccount = await GameAccountFactory.Create(scene, accountId);
}
self.Add(accountId, gameAccount);
return (GameErrorCode.GateLoginSuccess,gameAccount);
}
}
}
public class GameAccountManageComponentDestroySystem : DestroySystem<GameAccountManageComponent>
{
protected override void Destroy(GameAccountManageComponent self)
{
foreach (var (_,account) in self.Accounts.ToArray())
{
account.Dispose();
}
self.Accounts.Clear();
}
}

View File

@ -0,0 +1,23 @@
using Fantasy;
using Fantasy.Async;
using Fantasy.Entitas.Interface;
namespace Hotfix;
public static class GameAccountSystem
{
public static async FTask SaveToDatabase(this GameAccount self,Scene scene)
{
await scene.World.DataBase.Save(self);
}
}
public class GameAccountDestroy : DestroySystem<GameAccount>
{
protected override void Destroy(GameAccount self)
{
self.CreateTime = 0;
self.LoginTime = 0;
}
}

View File

@ -0,0 +1,20 @@
using Fantasy;
using Fantasy.Async;
namespace Hotfix.Helper;
public static class GameAccountHelper
{
public static async FTask<GameAccount> LoadGameAccountFromDatabase(Scene scene,long accountId)
{
var gameCount = await scene.World.DataBase.First<GameAccount>(x=> x.Id == accountId);
if (gameCount == null) return null;
gameCount.Deserialize(scene);
return gameCount;
}
}

View File

@ -0,0 +1,19 @@
using Fantasy;
using Fantasy.Entitas;
using Fantasy.Entitas.Interface;
namespace Hotfix;
public class GateComponentAwakeSystem : AwakeSystem<GateComponent>
{
protected override void Awake(GateComponent self)
{
self.AddComponent<GameAccountManageComponent>();
}
}
public static class GateComponentSystem
{
}

View File

@ -0,0 +1,42 @@
using Fantasy.Async;
using Fantasy.Network;
using Fantasy.Network.Interface;
using Hotfix;
namespace Fantasy;
public class C2G_LoginRequestHandler : MessageRPC<C2G_LoginRequest, G2C_LoginResponse>
{
protected override async FTask Run(Session session, C2G_LoginRequest request, G2C_LoginResponse response, Action reply)
{
var token = request.Token;
var scene = session.Scene;
if (string.IsNullOrEmpty(token))
{
Log.Debug("令牌为空,恶意攻击");
session.Dispose();
response.ErrorCode = GameErrorCode.GateTokenValidFailed;
return;
}
if (!GateJwtComponentHelper.ValidateToken(scene,token,out var accountId) )
{
Log.Debug("Token校验失败恶意攻击");
response.ErrorCode = GameErrorCode.GateTokenValidFailed;
session.Dispose();
return;
}
response.ErrorCode = GameErrorCode.GateTokenValidSuccess;
Log.Debug($"Gate校验登录成功用户{accountId}");
// var result = GateJwtComponentHelper.ValidateToken(scene, token);
// response.ErrorCode = result;
// if (result != GameErrorCode.GateTokenValidSuccess) return;
// Log.Debug("Gate校验登录令牌成功");
await FTask.CompletedTask;
}
}

View File

@ -0,0 +1,18 @@
using Fantasy;
using Fantasy.Async;
namespace Hotfix;
public static class GateComponentHelper
{
public static FTask<(uint error, GameAccount gameAccount)> GetAccountGame(GateComponent gate,long accountId)
{
var gameAccountManage = gate.GetComponent<GameAccountManageComponent>();
if (gameAccountManage == null)
{
gameAccountManage.AddComponent<GameAccountManageComponent>();
}
return gameAccountManage.GetAccountGame(accountId);
}
}

View File

@ -0,0 +1,73 @@
using System.IdentityModel.Tokens.Jwt;
using System.Security.Cryptography;
using Fantasy;
using Fantasy.Async;
using Fantasy.Entitas.Interface;
using Microsoft.IdentityModel.Tokens;
namespace Hotfix;
public class GateJWTComponentAwakeSystem : AwakeSystem<GateJWTComponent>
{
protected override void Awake(GateJWTComponent self)
{
RSA rsa = RSA.Create(2048);
string publicKeyData = self.PublicKey
.Replace("-----BEGIN PUBLIC KEY-----", "")
.Replace("-----END PUBLIC KEY-----", "")
.Replace("\n", "")
.Trim();
var publicKeyBytes = Convert.FromBase64String(publicKeyData);
rsa.ImportSubjectPublicKeyInfo(publicKeyBytes,out _);
RsaSecurityKey securityKey = new RsaSecurityKey(rsa);
// 创建验证参数
self.ValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false, // 是否验证发行者
ValidateAudience = false, // 是否验证接收者
ValidateLifetime = true, // 是否验证过期时间
ValidateIssuerSigningKey = true, // 是否验证签名密钥
IssuerSigningKey = new RsaSecurityKey(rsa)
};
}
}
public static class GateJWTComponentSystem
{
public static bool ValidateToken(this GateJWTComponent self,string token,out JwtPayload payload )
{
var tokenHandler = new JwtSecurityTokenHandler();
payload = null;
try
{
tokenHandler.ValidateToken(token,self.ValidationParameters, out SecurityToken validatedToken);
Log.Warning($"Token签名校验成功");
payload = tokenHandler.ReadJwtToken(token).Payload;
Log.Debug("jwtPayLoad"+ payload);
//return GameErrorCode.GateTokenValidSuccess;
return true;
}
catch (SecurityTokenExpiredException)
{
Log.Warning($"Token已过期");
return false;
//return GameErrorCode.GateTokenExpired;
}
catch (SecurityTokenInvalidSignatureException)
{
Log.Warning($"Token签名无效");
return false;
//return GameErrorCode.GateTokenInvalidSignature;
}
catch (Exception e)
{
Log.Error($"Token验证失败: {e.Message}");
return false;
//return GameErrorCode.GateTokenGeneralError;
}
}
}

View File

@ -0,0 +1,37 @@
using System.IdentityModel.Tokens.Jwt;
using Fantasy;
namespace Hotfix;
public static class GateJwtComponentHelper
{
private static bool ValidateToken(Scene scene, string token,out JwtPayload payload)
{
return scene.GetComponent<GateJWTComponent>().ValidateToken(token, out payload);
}
public static bool ValidateToken(Scene scene, string token, out long accountId)
{
accountId = 0;
if (!ValidateToken(scene, token, out JwtPayload payload))
{
return false;
}
try
{
var sceneConfigId = Convert.ToInt64(payload["sceneId"]);
accountId = Convert.ToInt64(payload["aid"]);
if (sceneConfigId == scene.SceneConfigId)
{
return false;
}
return true;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Hotfix")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b8e2d99dd7277d1644029a11bf26cf77e405732f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1d53e5bde716121b86978faf2318ba914be9fa8d")]
[assembly: System.Reflection.AssemblyProductAttribute("Hotfix")]
[assembly: System.Reflection.AssemblyTitleAttribute("Hotfix")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
f14bc22b25299e42434abfbb031fd5b9f32037852bfcdbc5877e911fdae0cb91
6d22532ef8221829db85c6f532bb39fde43ea841df3ca158b1dd708176e7813f

View File

@ -1 +1 @@
5d678d1cbddfd7c268d4e1529446271ea35c895105c096ee28b0d0fe119dc067
a8657f56abba7debf2e048cafaec85ea4fc9d394f50b0e262e911d6ffc9bb704

View File

@ -1 +1 @@
17422854602523915
17424344223963130

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Main")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b8e2d99dd7277d1644029a11bf26cf77e405732f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1d53e5bde716121b86978faf2318ba914be9fa8d")]
[assembly: System.Reflection.AssemblyProductAttribute("Main")]
[assembly: System.Reflection.AssemblyTitleAttribute("Main")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
b443c05cb73e5f7a98af3340db379b1c6e179a2ba8c84feb6ed47de1da163d93
2170dd305c20070296257cb4e6c602a9bf4049cd6f74f69d078a9ccc0d704afc

View File

@ -1 +1 @@
17422854602559002
17424344223963130