forked from sin365/AxibugEmuOnline
Compare commits
3 Commits
b07972f66d
...
dd12a88d11
| Author | SHA1 | Date | |
|---|---|---|---|
| dd12a88d11 | |||
| 01da084b5a | |||
| c09085354b |
@ -101,7 +101,7 @@ namespace AxibugEmuOnline.Editors
|
||||
#endif
|
||||
string targetName = $"{Application.productName}_{titleid}.nsp";
|
||||
|
||||
string _locationPathName = $"Output/NSPBuild/{targetName}";
|
||||
string _locationPathName = $"Output/NSPBuild/{DateTime.Now.ToString("yyyyMMddHHmmss")}/{targetName}";
|
||||
var options = new BuildPlayerOptions
|
||||
{
|
||||
scenes = levels.ToArray(),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -25,13 +25,13 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 173080370084988713}
|
||||
serializedVersion: 2
|
||||
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: 7122109429436137579}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1464475178787633862
|
||||
MonoBehaviour:
|
||||
@ -78,6 +78,7 @@ MonoBehaviour:
|
||||
m_DeselectOnBackgroundClick: 1
|
||||
m_PointerBehavior: 0
|
||||
m_CursorLockBehavior: 0
|
||||
m_ScrollDeltaPerTick: 6
|
||||
--- !u!1 &261166211120060501
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -111,7 +112,6 @@ RectTransform:
|
||||
- {fileID: 7813729344275964042}
|
||||
- {fileID: 4804966765082268001}
|
||||
m_Father: {fileID: 5169543666820693527}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
@ -167,7 +167,6 @@ RectTransform:
|
||||
- {fileID: 4140710606298198504}
|
||||
- {fileID: 3574645515793225367}
|
||||
m_Father: {fileID: 7122109429436137579}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
@ -191,6 +190,7 @@ Canvas:
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 0
|
||||
m_AdditionalShaderChannelsFlag: 1
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
@ -268,7 +268,6 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 8545038260809852605}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
@ -346,6 +345,7 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4747871931704546037}
|
||||
serializedVersion: 2
|
||||
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}
|
||||
@ -356,7 +356,6 @@ Transform:
|
||||
- {fileID: 5927909303067165599}
|
||||
- {fileID: 5169543666820693527}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &-5568097984606286463
|
||||
MonoBehaviour:
|
||||
@ -404,7 +403,6 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 8545038260809852605}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
@ -486,13 +484,13 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6868843688838274199}
|
||||
serializedVersion: 2
|
||||
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: 7122109429436137579}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &5322909716643310759
|
||||
MonoBehaviour:
|
||||
@ -537,7 +535,6 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 8545038260809852605}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
@ -607,13 +604,13 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9087746359628224422}
|
||||
serializedVersion: 2
|
||||
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: 7122109429436137579}
|
||||
m_RootOrder: -2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!20 &4468044133909204598
|
||||
Camera:
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 562e8ae4167d26b42b4dd08d3f809531
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3efbb404fd0fa2440b59f2759cb66521
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ab2653139d474e40a1ce8213f36274e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.4 KiB |
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 961aba7b7a39e4d4c832e94350f44d4c
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ab158116cd13094f8aeec03e9c776bd
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
AxibugEmuOnline.Client.Switch/Assets/Resources/Icons/upload.png
Normal file
BIN
AxibugEmuOnline.Client.Switch/Assets/Resources/Icons/upload.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe23eed4ad510ca42885889dbb8aaf06
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -520,6 +520,81 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
gradient: {fileID: 46877084639177849}
|
||||
--- !u!1 &804908692400837359
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8642975113305060610}
|
||||
- component: {fileID: 6956713201433508184}
|
||||
- component: {fileID: 1041409322641615}
|
||||
m_Layer: 5
|
||||
m_Name: download
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8642975113305060610
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 804908692400837359}
|
||||
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: 905458728127029103}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 25, y: 25}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6956713201433508184
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 804908692400837359}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1041409322641615
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 804908692400837359}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 961aba7b7a39e4d4c832e94350f44d4c, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1280900818828460255
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -706,7 +781,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Color: {r: 1, g: 0.80982494, b: 0, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
@ -973,9 +1048,12 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3539783812791358836}
|
||||
- {fileID: 6030618878828304669}
|
||||
- {fileID: 2303902335643923373}
|
||||
- {fileID: 8677023902282266940}
|
||||
- {fileID: 7976727918032113692}
|
||||
- {fileID: 8642975113305060610}
|
||||
- {fileID: 5521327881148589877}
|
||||
- {fileID: 1660924397234324979}
|
||||
m_Father: {fileID: 5970282275929291192}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
@ -1442,97 +1520,6 @@ MonoBehaviour:
|
||||
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||
m_EffectDistance: {x: 1.5, y: -1.5}
|
||||
m_UseGraphicAlpha: 1
|
||||
--- !u!1 &4078965612622303339
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6030618878828304669}
|
||||
- component: {fileID: 6018890508858230420}
|
||||
- component: {fileID: 1865219663044263670}
|
||||
- component: {fileID: 6562970432720184454}
|
||||
m_Layer: 5
|
||||
m_Name: Syncing
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6030618878828304669
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4078965612622303339}
|
||||
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: 905458728127029103}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 25, y: 25}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6018890508858230420
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4078965612622303339}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1865219663044263670
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4078965612622303339}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: c5a9535bb63e1f14f9a1528566864ab2, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &6562970432720184454
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4078965612622303339}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8707b921aaba60d45b4041e96f3542dd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_duration: 2
|
||||
m_ease: 1
|
||||
m_reverseRotation: 1
|
||||
--- !u!1 &4124172888520656882
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -3183,7 +3170,10 @@ MonoBehaviour:
|
||||
UI_Empty: {fileID: 8350228378118296958}
|
||||
UI_SavTime: {fileID: 13043593624240728}
|
||||
UI_Disconnect: {fileID: 6998836277133601669}
|
||||
UI_Syncing: {fileID: 4078965612622303339}
|
||||
UI_DownloadError: {fileID: 8857746597932873861}
|
||||
UI_Downloading: {fileID: 804908692400837359}
|
||||
UI_Uploading: {fileID: 8872483836623718893}
|
||||
UI_Checking: {fileID: 7267609509608397888}
|
||||
UI_Conflict: {fileID: 1601163034082482360}
|
||||
UI_Synced: {fileID: 2637678715180681658}
|
||||
--- !u!1 &7141318786199574664
|
||||
@ -3286,6 +3276,81 @@ MonoBehaviour:
|
||||
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||
m_EffectDistance: {x: 1.5, y: -1.5}
|
||||
m_UseGraphicAlpha: 1
|
||||
--- !u!1 &7267609509608397888
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1660924397234324979}
|
||||
- component: {fileID: 5687683890234766428}
|
||||
- component: {fileID: 6995705272401882157}
|
||||
m_Layer: 5
|
||||
m_Name: checking
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1660924397234324979
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7267609509608397888}
|
||||
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: 905458728127029103}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 25, y: 25}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5687683890234766428
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7267609509608397888}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6995705272401882157
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7267609509608397888}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 3efbb404fd0fa2440b59f2759cb66521, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &7579340952198812870
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -3888,6 +3953,156 @@ MonoBehaviour:
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8857746597932873861
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7976727918032113692}
|
||||
- component: {fileID: 8830922541807882247}
|
||||
- component: {fileID: 74709689621410332}
|
||||
m_Layer: 5
|
||||
m_Name: syncerror
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7976727918032113692
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8857746597932873861}
|
||||
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: 905458728127029103}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 25, y: 25}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8830922541807882247
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8857746597932873861}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &74709689621410332
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8857746597932873861}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 5ab158116cd13094f8aeec03e9c776bd, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8872483836623718893
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5521327881148589877}
|
||||
- component: {fileID: 1453351515137974665}
|
||||
- component: {fileID: 625482330037984562}
|
||||
m_Layer: 5
|
||||
m_Name: upload
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5521327881148589877
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8872483836623718893}
|
||||
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: 905458728127029103}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 25, y: 25}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1453351515137974665
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8872483836623718893}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &625482330037984562
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8872483836623718893}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: fe23eed4ad510ca42885889dbb8aaf06, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8884391103430529053
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -13,7 +13,7 @@ OcclusionCullingSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -38,12 +38,13 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -66,6 +67,9 @@ LightmapSettings:
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
@ -143,13 +147,13 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 408101310}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &408101312
|
||||
MonoBehaviour:
|
||||
@ -164,6 +168,9 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
AllowDebugging: 1
|
||||
OpenHubOnStart: 0
|
||||
AutoShowLastLogLine: 0
|
||||
OnlyShowErrOnStart: 0
|
||||
--- !u!1 &1335662458
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -188,13 +195,13 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335662458}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1335662460
|
||||
MonoBehaviour:
|
||||
@ -266,18 +273,11 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1498586261}
|
||||
serializedVersion: 2
|
||||
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: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1498586263}
|
||||
- {fileID: 1335662459}
|
||||
- {fileID: 408101311}
|
||||
|
||||
@ -90,9 +90,14 @@ namespace AxibugEmuOnline.Client.ClientCore
|
||||
public static void Init(bool isTest = false, bool isUseGUIButton = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "")
|
||||
{
|
||||
log = new LogManager(OnLogOut);
|
||||
|
||||
//其他平台必要的初始化
|
||||
if (UnityEngine.Application.platform == RuntimePlatform.PSP2) PSP2Init();
|
||||
#if UNITY_PSP2
|
||||
PSP2Init();
|
||||
#endif
|
||||
|
||||
#if UNITY_SWITCH
|
||||
SwitchInit();
|
||||
#endif
|
||||
|
||||
input = new InputDevicesManager();
|
||||
FileDownloader = new FileDownloader();
|
||||
@ -153,11 +158,18 @@ namespace AxibugEmuOnline.Client.ClientCore
|
||||
sonyVitaCommonDialog = new GameObject().AddComponent<SonyVitaCommonDialog>();
|
||||
#endif
|
||||
|
||||
#if UNITY_SWITCH
|
||||
//创建创建Switch
|
||||
switchCommon = new GameObject().AddComponent<SwitchCommon>();
|
||||
#endif
|
||||
|
||||
}
|
||||
private static void SwitchInit()
|
||||
{
|
||||
#if UNITY_SWITCH
|
||||
AxiNS.instance.Init();
|
||||
if (!AxiIO.Directory.Exists(App.PersistentDataRootPath()))
|
||||
AxiIO.Directory.CreateDirectory(App.PersistentDataRootPath());
|
||||
switchCommon = new GameObject().AddComponent<SwitchCommon>();
|
||||
switchCommon.gameObject.name = "[SwitchCommon]";
|
||||
GameObject.DontDestroyOnLoad(switchCommon);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -166,20 +166,23 @@ public static class AxiHttp
|
||||
|
||||
public static IPAddress GetDnsIP(string str)
|
||||
{
|
||||
if (!dictIP2Address.ContainsKey(str))
|
||||
lock (dictIP2Address)
|
||||
{
|
||||
IPHostEntry host = Dns.GetHostEntry(str);
|
||||
IPAddress ip = null;
|
||||
foreach (var item in host.AddressList)
|
||||
if (!dictIP2Address.ContainsKey(str))
|
||||
{
|
||||
if (item.AddressFamily == AddressFamily.InterNetwork)
|
||||
IPHostEntry host = Dns.GetHostEntry(str);
|
||||
IPAddress ip = null;
|
||||
foreach (var item in host.AddressList)
|
||||
{
|
||||
ip = item; break;
|
||||
if (item.AddressFamily == AddressFamily.InterNetwork)
|
||||
{
|
||||
ip = item; break;
|
||||
}
|
||||
}
|
||||
dictIP2Address[str] = ip;
|
||||
}
|
||||
dictIP2Address[str] = ip;
|
||||
return dictIP2Address[str];
|
||||
}
|
||||
return dictIP2Address[str];
|
||||
}
|
||||
|
||||
public enum AxiDownLoadMode
|
||||
|
||||
@ -62,11 +62,7 @@ namespace AxiInputSP
|
||||
m_TouckState[AxiPSVBackTouchType.RightBotton] = new AxiPSVBackTouchState(AxiPSVBackTouchType.RightBotton);
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
void OnDestroy()
|
||||
{
|
||||
_instance = null;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ public class DebuggerByGUI : MonoBehaviour
|
||||
private Vector2 _scrollLogView = Vector2.zero;
|
||||
private Vector2 _scrollCurrentLogView = Vector2.zero;
|
||||
private Vector2 _scrollSystemView = Vector2.zero;
|
||||
private bool _expansion = false;
|
||||
private bool _expansion = false;
|
||||
private Rect _windowRect = new Rect(0, 0, 100, 60);
|
||||
|
||||
private int _fps = 0;
|
||||
@ -32,9 +32,26 @@ public class DebuggerByGUI : MonoBehaviour
|
||||
private int _frameNumber = 0;
|
||||
private float _lastShowFPSTime = 0f;
|
||||
|
||||
private void Start()
|
||||
public bool OpenHubOnStart = false;
|
||||
public bool AutoShowLastLogLine = false;
|
||||
public bool OnlyShowErrOnStart = false;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
DontDestroyOnLoad(this.gameObject);
|
||||
if (OpenHubOnStart)
|
||||
{
|
||||
_expansion = true;
|
||||
_windowRect.width = 1000;
|
||||
_windowRect.height = 600;
|
||||
}
|
||||
|
||||
if (OnlyShowErrOnStart)
|
||||
{
|
||||
_showInfoLog = false;
|
||||
_showWarningLog = false;
|
||||
}
|
||||
|
||||
DontDestroyOnLoad(this.gameObject);
|
||||
if (AllowDebugging)
|
||||
{
|
||||
Application.logMessageReceived += LogHandler;
|
||||
@ -237,16 +254,22 @@ public class DebuggerByGUI : MonoBehaviour
|
||||
GUILayout.Label(_logInformations[i].message);
|
||||
GUILayout.FlexibleSpace();
|
||||
GUI.contentColor = Color.white;
|
||||
GUILayout.EndHorizontal();
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
GUILayout.EndScrollView();
|
||||
|
||||
_scrollCurrentLogView = GUILayout.BeginScrollView(_scrollCurrentLogView, "Box", GUILayout.Height(100));
|
||||
if (_currentLogIndex != -1)
|
||||
|
||||
if (AutoShowLastLogLine)
|
||||
{
|
||||
_scrollLogView.y = Mathf.Lerp(_scrollLogView.y, float.MaxValue, 0.1f);
|
||||
}
|
||||
|
||||
if (_currentLogIndex != -1)
|
||||
{
|
||||
GUILayout.Label(_logInformations[_currentLogIndex].message + "\r\n\r\n" + _logInformations[_currentLogIndex].stackTrace);
|
||||
}
|
||||
}
|
||||
GUILayout.EndScrollView();
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -92,3 +92,4 @@ Material:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
||||
@ -147,6 +147,25 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
controller.SetBinding(EssgeeSingleKey.LEFT, device.JOYSTICK.Left, 1);
|
||||
controller.SetBinding(EssgeeSingleKey.RIGHT, device.JOYSTICK.Right, 1);
|
||||
}
|
||||
|
||||
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
|
||||
{
|
||||
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Plus, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Minus, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.BTN_1, device.A, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.BTN_2, device.B, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.BTN_3, device.X, 0);
|
||||
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Y, 0);
|
||||
|
||||
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
|
||||
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
|
||||
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
|
||||
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public class MasterSystemKeyBinding : EssgeeKeyBinding
|
||||
|
||||
@ -158,6 +158,27 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
controller.SetBinding(UMAMEKSingleKey.LEFT, device.JOYSTICK.Left, 1);
|
||||
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.JOYSTICK.Right, 1);
|
||||
}
|
||||
|
||||
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
|
||||
{
|
||||
controller.SetBinding(UMAMEKSingleKey.INSERT_COIN, device.Minus, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.GAMESTART, device.Plus, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.UP, device.Up, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.DOWN, device.Down, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.LEFT, device.Left, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.Right, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_A, device.A, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_B, device.B, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_C, device.X, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_D, device.Y, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_E, device.LeftSL, 0);
|
||||
controller.SetBinding(UMAMEKSingleKey.BTN_F, device.RightSL, 0);
|
||||
|
||||
controller.SetBinding(UMAMEKSingleKey.UP, device.LeftStick.Up, 1);
|
||||
controller.SetBinding(UMAMEKSingleKey.DOWN, device.LeftStick.Down, 1);
|
||||
controller.SetBinding(UMAMEKSingleKey.LEFT, device.LeftStick.Left, 1);
|
||||
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.LeftStick.Right, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public class NEOGEOKeyBinding : MAMEKeyBinding
|
||||
|
||||
@ -16,7 +16,8 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
|
||||
IDeviceBinder<T, DualShockController_D>,
|
||||
IDeviceBinder<T, XboxController_D>,
|
||||
IDeviceBinder<T, PSVController_D>,
|
||||
IDeviceBinder<T, ScreenGamepad_D>
|
||||
IDeviceBinder<T, ScreenGamepad_D>,
|
||||
IDeviceBinder<T, SwitchJoyCon_D>
|
||||
where T : Enum
|
||||
{
|
||||
//每一个实例代表一个对应模拟器平台的控制器索引
|
||||
@ -83,6 +84,7 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
|
||||
else if (device is XboxController_D xbC) Bind(xbC, binding);
|
||||
else if (device is PSVController_D psvC) Bind(psvC, binding);
|
||||
else if (device is ScreenGamepad_D screenGamepad) Bind(screenGamepad, binding);
|
||||
else if (device is SwitchJoyCon_D nsJoyCon) Bind(nsJoyCon, binding);
|
||||
else throw new NotImplementedException($"{device.GetType()}");
|
||||
}
|
||||
|
||||
@ -305,4 +307,5 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
|
||||
public abstract void Bind(XboxController_D device, ControllerBinder controller);
|
||||
public abstract void Bind(PSVController_D device, ControllerBinder controller);
|
||||
public abstract void Bind(ScreenGamepad_D device, ControllerBinder controller);
|
||||
public abstract void Bind(SwitchJoyCon_D device, ControllerBinder controller);
|
||||
}
|
||||
@ -121,5 +121,22 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
controller.SetBinding(EnumButtonType.UP, device.JOYSTICK.Up, 1);
|
||||
controller.SetBinding(EnumButtonType.DOWN, device.JOYSTICK.Down, 1);
|
||||
}
|
||||
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
|
||||
{
|
||||
controller.SetBinding(EnumButtonType.LEFT, device.Left, 0);
|
||||
controller.SetBinding(EnumButtonType.RIGHT, device.Right, 0);
|
||||
controller.SetBinding(EnumButtonType.UP, device.Up, 0);
|
||||
controller.SetBinding(EnumButtonType.DOWN, device.Down, 0);
|
||||
controller.SetBinding(EnumButtonType.A, device.A, 0);
|
||||
controller.SetBinding(EnumButtonType.B, device.B, 0);
|
||||
controller.SetBinding(EnumButtonType.SELECT, device.Minus, 0);
|
||||
controller.SetBinding(EnumButtonType.START, device.Plus, 0);
|
||||
controller.SetBinding(EnumButtonType.MIC, device.RightSL, 0);
|
||||
|
||||
controller.SetBinding(EnumButtonType.LEFT, device.LeftStick.Left, 1);
|
||||
controller.SetBinding(EnumButtonType.RIGHT, device.LeftStick.Right, 1);
|
||||
controller.SetBinding(EnumButtonType.UP, device.LeftStick.Up, 1);
|
||||
controller.SetBinding(EnumButtonType.DOWN, device.LeftStick.Down, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -112,5 +112,20 @@ namespace AxibugEmuOnline.Client
|
||||
controller.SetBinding(EnumCommand.SelectItemRight, device.JOYSTICK.Right, 1);
|
||||
controller.SetBinding(EnumCommand.SelectItemUp, device.JOYSTICK.Up, 1);
|
||||
}
|
||||
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
|
||||
{
|
||||
controller.SetBinding(EnumCommand.Back, device.A, 0);
|
||||
controller.SetBinding(EnumCommand.Enter, device.B, 0);
|
||||
controller.SetBinding(EnumCommand.OptionMenu, device.Plus, 0);
|
||||
controller.SetBinding(EnumCommand.SelectItemDown, device.Down, 0);
|
||||
controller.SetBinding(EnumCommand.SelectItemLeft, device.Left, 0);
|
||||
controller.SetBinding(EnumCommand.SelectItemRight, device.Right, 0);
|
||||
controller.SetBinding(EnumCommand.SelectItemUp, device.Up, 0);
|
||||
|
||||
controller.SetBinding(EnumCommand.SelectItemDown, device.LeftStick.Down, 1);
|
||||
controller.SetBinding(EnumCommand.SelectItemLeft, device.LeftStick.Left, 1);
|
||||
controller.SetBinding(EnumCommand.SelectItemRight, device.LeftStick.Right, 1);
|
||||
controller.SetBinding(EnumCommand.SelectItemUp, device.LeftStick.Up, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
using AxibugProtobuf;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
public class SwitchJoyCon_D : InputDevice_D
|
||||
{
|
||||
public Button_C LeftSL;
|
||||
public Button_C LeftSR;
|
||||
public Button_C RightSL;
|
||||
public Button_C RightSR;
|
||||
|
||||
public Button_C B;
|
||||
public Button_C A;
|
||||
public Button_C Y;
|
||||
public Button_C X;
|
||||
|
||||
public Button_C Up;
|
||||
public Button_C Down;
|
||||
public Button_C Left;
|
||||
public Button_C Right;
|
||||
|
||||
public Button_C Minus;
|
||||
public Button_C Plus;
|
||||
|
||||
public Stick_C LeftStick;
|
||||
public Stick_C RightStick;
|
||||
public Button_C LeftStickPress;
|
||||
public Button_C RightStickPress;
|
||||
|
||||
public SwitchJoyCon_D(InputResolver resolver) : base(resolver) { }
|
||||
|
||||
public override GamePadType PadType => GamePadType.SwitchJoyCon;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28380f06191bd35458b20113fbd2960b
|
||||
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
@ -72,11 +73,48 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
return m_devices.Values;
|
||||
}
|
||||
|
||||
List<string> templog = new List<string>();
|
||||
/// <summary> 由外部驱动的逻辑更新入口 </summary>
|
||||
public void Update()
|
||||
{
|
||||
foreach (var device in m_devices.Values) device.Update();
|
||||
|
||||
//string HadDrive = "";
|
||||
//foreach (var device in InputSystem.devices)
|
||||
//{
|
||||
// if (device is Mouse)
|
||||
// continue;
|
||||
// bool bhadflag = false;
|
||||
|
||||
// templog.Clear();
|
||||
// for (int i = 0; i < device.allControls.Count; i++)
|
||||
// {
|
||||
// if (device.allControls[i].IsPressed(0))
|
||||
// {
|
||||
// if (device.allControls[i].name.ToLower() == "anykey")
|
||||
// continue;
|
||||
// bhadflag = true;
|
||||
// string keyname = $"{device.allControls[i].GetType().FullName}|{device.allControls[i].name},";
|
||||
// templog.Add(keyname);
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (bhadflag)
|
||||
// {
|
||||
// HadDrive += $" D:{device.GetType().FullName}|{device.GetType().BaseType.FullName}|{device.name}, K:";
|
||||
// foreach (var s in templog)
|
||||
// {
|
||||
// HadDrive += s;
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
//if (!string.IsNullOrEmpty(HadDrive))
|
||||
//{
|
||||
// Debug.Log($"Had Drive: {HadDrive}");
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,18 @@
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
|
||||
#if UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_WSA || PACKAGE_DOCS_GENERATION
|
||||
#define DUALSHOCK_SUPPORT
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR || UNITY_SWITCH || PACKAGE_DOCS_GENERATION
|
||||
#define JOYCON_SUPPORT
|
||||
#endif
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.InputSystem.DualShock;
|
||||
using UnityEngine.InputSystem.Switch;
|
||||
using UnityEngine.InputSystem.XInput;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
@ -24,25 +34,25 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
InputDevice_D newDevice = null;
|
||||
if (ipdev is Keyboard) newDevice = new Keyboard_D(this);
|
||||
|
||||
|
||||
#if UNITY_STANDALONE || UNITY_PS5 || UNITY_PS4 || UNITY_PS3 //PC/Mac/Linux/PS345 才能用 DualShock
|
||||
#if DUALSHOCK_SUPPORT
|
||||
else if (ipdev is DualShockGamepad)
|
||||
{
|
||||
if (ipdev is DualShock3GamepadHID) newDevice = new DualShockController_D(this, ps3: true);
|
||||
else if (ipdev is DualShock4GamepadHID) newDevice = new DualShockController_D(this, ps4: true);
|
||||
else if (ipdev is DualSenseGamepadHID) newDevice = new DualShockController_D(this, ps5: true);
|
||||
else newDevice = new DualShockController_D(this);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#if UNITY_STANDALONE_WIN //仅Windows 才能用Xinput
|
||||
else if (ipdev is XInputController)
|
||||
{
|
||||
newDevice = new XboxController_D(this);
|
||||
}
|
||||
#if JOYCON_SUPPORT
|
||||
else if (ipdev is NPad)
|
||||
{
|
||||
newDevice = new SwitchJoyCon_D(this);
|
||||
}
|
||||
#endif
|
||||
|
||||
else if (ipdev is Gamepad) newDevice = new GamePad_D(this); //注意Gamepad的优先级,因为任何手柄,Inputsystem中的基类都是GamePad
|
||||
|
||||
if (newDevice != null)
|
||||
@ -240,6 +250,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
mapper[keyboard_d.Semicolon] = ipKeyboard.semicolonKey;
|
||||
mapper[keyboard_d.Quote] = ipKeyboard.quoteKey;
|
||||
}
|
||||
#if DUALSHOCK_SUPPORT
|
||||
else if (device_d is DualShockController_D ds_d)
|
||||
{
|
||||
var ipDsGamePad = ipdevice as DualShockGamepad;
|
||||
@ -263,6 +274,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
mapper[ds_d.LeftStick] = ipDsGamePad.leftStick;
|
||||
mapper[ds_d.RightStick] = ipDsGamePad.rightStick;
|
||||
}
|
||||
#endif
|
||||
else if (device_d is XboxController_D xbox_d)
|
||||
{
|
||||
var ipXInputGamePad = ipdevice as XInputController;
|
||||
@ -284,53 +296,53 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
mapper[xbox_d.RightStickPress] = ipXInputGamePad.rightStickButton;
|
||||
mapper[xbox_d.LeftStick] = ipXInputGamePad.leftStick;
|
||||
mapper[xbox_d.RightStick] = ipXInputGamePad.rightStick;
|
||||
|
||||
}
|
||||
#if JOYCON_SUPPORT
|
||||
else if (device_d is SwitchJoyCon_D joycon_d)
|
||||
{
|
||||
var ipdevice_joycon = ipdevice as NPad;
|
||||
mapper[joycon_d.LeftSL] = ipdevice_joycon.leftSL;
|
||||
mapper[joycon_d.LeftSR] = ipdevice_joycon.leftSR;
|
||||
mapper[joycon_d.RightSL] = ipdevice_joycon.rightSL;
|
||||
mapper[joycon_d.RightSR] = ipdevice_joycon.rightSR;
|
||||
mapper[joycon_d.B] = ipdevice_joycon.bButton;
|
||||
mapper[joycon_d.A] = ipdevice_joycon.aButton;
|
||||
mapper[joycon_d.Y] = ipdevice_joycon.yButton;
|
||||
mapper[joycon_d.X] = ipdevice_joycon.xButton;
|
||||
mapper[joycon_d.Up] = ipdevice_joycon.dpad.up;
|
||||
mapper[joycon_d.Down] = ipdevice_joycon.dpad.down;
|
||||
mapper[joycon_d.Left] = ipdevice_joycon.dpad.left;
|
||||
mapper[joycon_d.Right] = ipdevice_joycon.dpad.right;
|
||||
mapper[joycon_d.Minus] = ipdevice_joycon.selectButton;
|
||||
mapper[joycon_d.Plus] = ipdevice_joycon.startButton;
|
||||
mapper[joycon_d.LeftStick] = ipdevice_joycon.leftStick;
|
||||
mapper[joycon_d.RightStick] = ipdevice_joycon.rightStick;
|
||||
mapper[joycon_d.RightStickPress] = ipdevice_joycon.rightStickButton;
|
||||
mapper[joycon_d.LeftStickPress] = ipdevice_joycon.leftStickButton;
|
||||
}
|
||||
#endif
|
||||
else if (device_d is GamePad_D gamepad_d)
|
||||
{
|
||||
if (ipdevice is UnityEngine.InputSystem.Switch.NPad ipdevice_ns)
|
||||
{
|
||||
mapper[gamepad_d.Up] = ipdevice_ns.dpad.up;
|
||||
mapper[gamepad_d.Down] = ipdevice_ns.dpad.down;
|
||||
mapper[gamepad_d.Left] = ipdevice_ns.dpad.left;
|
||||
mapper[gamepad_d.Right] = ipdevice_ns.dpad.right;
|
||||
mapper[gamepad_d.Select] = ipdevice_ns.selectButton;
|
||||
mapper[gamepad_d.Start] = ipdevice_ns.startButton;
|
||||
mapper[gamepad_d.North] = ipdevice_ns.xButton;
|
||||
mapper[gamepad_d.South] = ipdevice_ns.bButton;
|
||||
mapper[gamepad_d.West] = ipdevice_ns.yButton;
|
||||
mapper[gamepad_d.East] = ipdevice_ns.aButton;
|
||||
mapper[gamepad_d.LeftShoulder] = ipdevice_ns;
|
||||
mapper[gamepad_d.RightShoulder] = ipdevice_ns.rightShoulder;
|
||||
mapper[gamepad_d.LeftTrigger] = ipdevice_ns.leftTrigger;
|
||||
mapper[gamepad_d.RightTrigger] = ipdevice_ns.rightTrigger;
|
||||
mapper[gamepad_d.LeftStickPress] = ipdevice_ns.leftStickButton;
|
||||
mapper[gamepad_d.RightStickPress] = ipdevice_ns.rightStickButton;
|
||||
mapper[gamepad_d.LeftStick] = ipdevice_ns.leftStick;
|
||||
mapper[gamepad_d.RightStick] = ipdevice_ns.rightStick;
|
||||
}
|
||||
else
|
||||
{
|
||||
var ipGamepad = ipdevice as Gamepad;
|
||||
mapper[gamepad_d.Up] = ipGamepad.dpad.up;
|
||||
mapper[gamepad_d.Down] = ipGamepad.dpad.down;
|
||||
mapper[gamepad_d.Left] = ipGamepad.dpad.left;
|
||||
mapper[gamepad_d.Right] = ipGamepad.dpad.right;
|
||||
mapper[gamepad_d.Select] = ipGamepad.selectButton;
|
||||
mapper[gamepad_d.Start] = ipGamepad.startButton;
|
||||
mapper[gamepad_d.North] = ipGamepad.buttonNorth;
|
||||
mapper[gamepad_d.South] = ipGamepad.buttonSouth;
|
||||
mapper[gamepad_d.West] = ipGamepad.buttonWest;
|
||||
mapper[gamepad_d.East] = ipGamepad.buttonEast;
|
||||
mapper[gamepad_d.LeftShoulder] = ipGamepad.leftShoulder;
|
||||
mapper[gamepad_d.RightShoulder] = ipGamepad.rightShoulder;
|
||||
mapper[gamepad_d.LeftTrigger] = ipGamepad.leftTrigger;
|
||||
mapper[gamepad_d.RightTrigger] = ipGamepad.rightTrigger;
|
||||
mapper[gamepad_d.LeftStickPress] = ipGamepad.leftStickButton;
|
||||
mapper[gamepad_d.RightStickPress] = ipGamepad.rightStickButton;
|
||||
mapper[gamepad_d.LeftStick] = ipGamepad.leftStick;
|
||||
mapper[gamepad_d.RightStick] = ipGamepad.rightStick;
|
||||
}
|
||||
var ipGamepad = ipdevice as Gamepad;
|
||||
mapper[gamepad_d.Up] = ipGamepad.dpad.up;
|
||||
mapper[gamepad_d.Down] = ipGamepad.dpad.down;
|
||||
mapper[gamepad_d.Left] = ipGamepad.dpad.left;
|
||||
mapper[gamepad_d.Right] = ipGamepad.dpad.right;
|
||||
mapper[gamepad_d.Select] = ipGamepad.selectButton;
|
||||
mapper[gamepad_d.Start] = ipGamepad.startButton;
|
||||
mapper[gamepad_d.North] = ipGamepad.buttonNorth;
|
||||
mapper[gamepad_d.South] = ipGamepad.buttonSouth;
|
||||
mapper[gamepad_d.West] = ipGamepad.buttonWest;
|
||||
mapper[gamepad_d.East] = ipGamepad.buttonEast;
|
||||
mapper[gamepad_d.LeftShoulder] = ipGamepad.leftShoulder;
|
||||
mapper[gamepad_d.RightShoulder] = ipGamepad.rightShoulder;
|
||||
mapper[gamepad_d.LeftTrigger] = ipGamepad.leftTrigger;
|
||||
mapper[gamepad_d.RightTrigger] = ipGamepad.rightTrigger;
|
||||
mapper[gamepad_d.LeftStickPress] = ipGamepad.leftStickButton;
|
||||
mapper[gamepad_d.RightStickPress] = ipGamepad.rightStickButton;
|
||||
mapper[gamepad_d.LeftStick] = ipGamepad.leftStick;
|
||||
mapper[gamepad_d.RightStick] = ipGamepad.rightStick;
|
||||
|
||||
}
|
||||
else throw new System.NotImplementedException($"初始化设备失败,未实现的物理按键映射 for {device_d.GetType()}");
|
||||
}
|
||||
@ -339,6 +351,6 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
m_deviceMapper.Remove(keyboard_d);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -52,7 +52,7 @@ namespace AxibugEmuOnline.Client
|
||||
}
|
||||
}
|
||||
|
||||
public SimpleFSM<SaveFile>.State GetState()
|
||||
public SimpleFSM<SaveFile>.State GetCurrentState()
|
||||
{
|
||||
return FSM.CurrentState;
|
||||
}
|
||||
@ -63,7 +63,7 @@ namespace AxibugEmuOnline.Client
|
||||
/// <summary> 存档顺序号,用于判断云存档和本地存档的同步状态,是否存在冲突 </summary>
|
||||
public uint Sequecen { get; private set; }
|
||||
|
||||
SimpleFSM<SaveFile> FSM;
|
||||
public SimpleFSM<SaveFile> FSM { get; private set; }
|
||||
byte[] m_savDataCaches;
|
||||
byte[] m_screenShotCaches;
|
||||
Header m_headerCache;
|
||||
@ -79,8 +79,10 @@ namespace AxibugEmuOnline.Client
|
||||
FSM.AddState<CheckingNetworkState>();//?
|
||||
FSM.AddState<CheckingState>();
|
||||
FSM.AddState<DownloadingState>();
|
||||
FSM.AddState<ConflictState>();
|
||||
FSM.AddState<UploadingState>();
|
||||
FSM.AddState<SyncedState>();
|
||||
FSM.AddState<SyncFailedState>();
|
||||
FSM.OnStateChanged += FSM_OnStateChanged;
|
||||
|
||||
IsEmpty = !AxiIO.File.Exists(FilePath);
|
||||
@ -217,7 +219,7 @@ namespace AxibugEmuOnline.Client
|
||||
/// </summary>
|
||||
public void TrySync()
|
||||
{
|
||||
if (FSM.CurrentState is not IdleState && FSM.CurrentState is not SyncedState) return;
|
||||
if (FSM.CurrentState is not IdleState && FSM.CurrentState is not SyncedState && FSM.CurrentState is not SyncFailedState) return;
|
||||
|
||||
FSM.ChangeState<CheckingNetworkState>();
|
||||
}
|
||||
@ -234,6 +236,11 @@ namespace AxibugEmuOnline.Client
|
||||
SyncingFilesUtility.Remove(this);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{EmuPlatform}|{RomID}|{SlotIndex}";
|
||||
}
|
||||
|
||||
public static class SyncingFilesUtility
|
||||
{
|
||||
static SyncingFileRecord m_syncFiles = new SyncingFileRecord();
|
||||
@ -315,7 +322,6 @@ namespace AxibugEmuOnline.Client
|
||||
var jsonStr = JsonUtility.ToJson(temp);
|
||||
AxiPlayerPrefs.SetString("SYNCING_SAVE", jsonStr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
|
||||
@ -29,7 +29,8 @@ namespace AxibugEmuOnline.Client
|
||||
m_timeOut -= Time.deltaTime;
|
||||
if (m_timeOut < 0) //已超时
|
||||
{
|
||||
FSM.ChangeState<IdleState>();
|
||||
FSM.GetState<SyncFailedState>().Error = "拉取云存档数据超时";
|
||||
FSM.ChangeState<SyncFailedState>();
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +45,15 @@ namespace AxibugEmuOnline.Client
|
||||
}
|
||||
else
|
||||
{
|
||||
FSM.ChangeState<DownloadingState>();
|
||||
if (Host.Sequecen > (uint)NetData.Sequence)//本地序列号大于云存档序列号,视为冲突
|
||||
{
|
||||
FSM.GetState<ConflictState>().NetData = NetData;
|
||||
FSM.ChangeState<ConflictState>();
|
||||
}
|
||||
else
|
||||
{
|
||||
FSM.ChangeState<DownloadingState>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using AxibugEmuOnline.Client.Tools;
|
||||
using AxibugProtobuf;
|
||||
|
||||
namespace AxibugEmuOnline.Client
|
||||
{
|
||||
@ -6,7 +7,7 @@ namespace AxibugEmuOnline.Client
|
||||
{
|
||||
public class ConflictState : SimpleFSM<SaveFile>.State
|
||||
{
|
||||
|
||||
public Protobuf_Mine_GameSavInfo NetData { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using AxibugEmuOnline.Client.ClientCore;
|
||||
using AxibugEmuOnline.Client.Tools;
|
||||
using AxibugProtobuf;
|
||||
using System;
|
||||
|
||||
namespace AxibugEmuOnline.Client
|
||||
@ -14,14 +15,14 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
public override void OnEnter(SimpleFSM<SaveFile>.State preState)
|
||||
{
|
||||
var checkState = preState as CheckingState;
|
||||
|
||||
var netData = checkState.NetData;
|
||||
|
||||
if (Host.Sequecen >= (uint)netData.Sequence)
|
||||
Protobuf_Mine_GameSavInfo netData = null;
|
||||
if (preState is CheckingState checkState)
|
||||
{
|
||||
FSM.ChangeState<ConflictState>();
|
||||
return;
|
||||
netData = checkState.NetData;
|
||||
}
|
||||
else if (preState is ConflictState conflictState) //由冲突状态转换为下载状态,代表使用网络存档覆盖本地
|
||||
{
|
||||
netData = conflictState.NetData;
|
||||
}
|
||||
|
||||
m_sequece = (uint)netData.Sequence;
|
||||
@ -42,7 +43,8 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
if (m_downloadTask.downloadHandler.bHadErr) //下载失败
|
||||
{
|
||||
FSM.ChangeState<IdleState>();
|
||||
FSM.GetState<SyncFailedState>().Error = m_downloadTask.downloadHandler.ErrInfo;
|
||||
FSM.ChangeState<SyncFailedState>();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
using AxibugEmuOnline.Client.ClientCore;
|
||||
using AxibugEmuOnline.Client.Tools;
|
||||
|
||||
namespace AxibugEmuOnline.Client
|
||||
{
|
||||
public partial class SaveFile
|
||||
{
|
||||
public class SyncFailedState : SimpleFSM<SaveFile>.State
|
||||
{
|
||||
public string Error { get; set; }
|
||||
|
||||
public override void OnEnter(SimpleFSM<SaveFile>.State preState)
|
||||
{
|
||||
App.log.Error($"同步失败:{Error}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36be8767f260af04ba9ed88d2d4cd775
|
||||
@ -7,7 +7,10 @@ namespace AxibugEmuOnline.Client.Tools
|
||||
public partial class SimpleFSM<HOST>
|
||||
{
|
||||
public event Action OnStateChanged;
|
||||
|
||||
private Dictionary<Type, State> m_states = new Dictionary<Type, State>();
|
||||
private bool isInTransition = false; // 新增:标识是否处于切换过程中
|
||||
private Queue<Type> pendingStateQueue = new Queue<Type>(); // 新增:延迟请求的队列
|
||||
|
||||
public HOST Host { get; private set; }
|
||||
|
||||
@ -16,15 +19,15 @@ namespace AxibugEmuOnline.Client.Tools
|
||||
Host = host;
|
||||
}
|
||||
|
||||
private State m_current;
|
||||
private State m_currentState;
|
||||
public State CurrentState
|
||||
{
|
||||
get => m_current;
|
||||
get => m_currentState;
|
||||
set
|
||||
{
|
||||
if (m_current == value) return;
|
||||
if (m_currentState == value) return;
|
||||
|
||||
m_current = value;
|
||||
m_currentState = value;
|
||||
OnStateChanged?.Invoke();
|
||||
}
|
||||
}
|
||||
@ -40,44 +43,59 @@ namespace AxibugEmuOnline.Client.Tools
|
||||
return (T)state;
|
||||
}
|
||||
|
||||
public void BackToLast()
|
||||
{
|
||||
if (m_current == null) return;
|
||||
if (m_current.LastState == null) return;
|
||||
|
||||
if (m_states.Values.FirstOrDefault(s => s == m_current.LastState) is State lastState)
|
||||
{
|
||||
m_current.LastState = null;
|
||||
m_current.OnExit(lastState);
|
||||
|
||||
lastState.OnEnter(m_current);
|
||||
m_current = lastState;
|
||||
}
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
if (m_current != null)
|
||||
{
|
||||
m_current.OnExit(null);
|
||||
m_current = null;
|
||||
}
|
||||
|
||||
foreach (var state in m_states.Values)
|
||||
state.LastState = null;
|
||||
}
|
||||
|
||||
|
||||
public void ChangeState<T>() where T : State, new()
|
||||
{
|
||||
var stateType = typeof(T);
|
||||
m_states.TryGetValue(stateType, out State nextState);
|
||||
if (!m_states.ContainsKey(stateType))
|
||||
return;
|
||||
|
||||
// 如果处于切换中,加入队列等待后续处理
|
||||
if (isInTransition)
|
||||
{
|
||||
pendingStateQueue.Enqueue(stateType);
|
||||
return;
|
||||
}
|
||||
|
||||
// 标记开始切换
|
||||
isInTransition = true;
|
||||
InternalChangeState(stateType);
|
||||
isInTransition = false; // 切换结束
|
||||
|
||||
// 处理队列中积累的切换请求
|
||||
ProcessPendingQueue();
|
||||
}
|
||||
|
||||
// 新增:实际执行状态切换的方法
|
||||
private void InternalChangeState(Type stateType)
|
||||
{
|
||||
State nextState = m_states[stateType];
|
||||
if (nextState == null) return;
|
||||
|
||||
if (m_current != null) m_current.OnExit(nextState);
|
||||
nextState.LastState = m_current;
|
||||
nextState.OnEnter(m_current);
|
||||
m_current = nextState;
|
||||
State preState = CurrentState;
|
||||
// 退出当前状态
|
||||
if (preState != null) preState.OnExit(nextState);
|
||||
|
||||
// 更新当前状态
|
||||
CurrentState = nextState;
|
||||
CurrentState.LastState = preState;
|
||||
|
||||
// 进入新状态
|
||||
CurrentState.OnEnter(preState);
|
||||
}
|
||||
|
||||
// 新增:处理队列中的切换请求
|
||||
private void ProcessPendingQueue()
|
||||
{
|
||||
while (pendingStateQueue.Count > 0)
|
||||
{
|
||||
Type nextType = pendingStateQueue.Dequeue();
|
||||
if (!m_states.ContainsKey(nextType)) continue;
|
||||
|
||||
isInTransition = true;
|
||||
InternalChangeState(nextType);
|
||||
isInTransition = false;
|
||||
}
|
||||
}
|
||||
|
||||
public T GetState<T>() where T : State, new()
|
||||
@ -88,11 +106,11 @@ namespace AxibugEmuOnline.Client.Tools
|
||||
|
||||
public void Update()
|
||||
{
|
||||
m_current?.OnUpdate();
|
||||
CurrentState?.OnUpdate();
|
||||
foreach (var state in m_states.Values)
|
||||
{
|
||||
if (state == m_current) continue;
|
||||
state.AnyStateUpdate(m_current);
|
||||
if (state == CurrentState) continue;
|
||||
state.AnyStateUpdate(CurrentState);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
using AxibugEmuOnline.Client;
|
||||
using AxibugEmuOnline.Client.ClientCore;
|
||||
using UnityEngine;
|
||||
public class SwitchCommon : MonoBehaviour
|
||||
{
|
||||
void Start()
|
||||
{
|
||||
Debug.Log("SwitchCommon Start");
|
||||
TickLoop.LoopAction_15s += ApplyCommit;
|
||||
}
|
||||
|
||||
|
||||
@ -33,17 +33,23 @@ namespace AxibugEmuOnline.Client
|
||||
public override Type MenuUITemplateType => typeof(OptionUI_SavSlotItem);
|
||||
public SaveFile SavFile { get; private set; }
|
||||
|
||||
List<InternalOptionMenu> m_subOptions = new List<InternalOptionMenu>();
|
||||
public override string Name => SavFile.AutoSave ? "自动存档" : $"存档{SavFile.SlotIndex}";
|
||||
|
||||
SaveMenuItem saveMENU;
|
||||
LoadMenuItem loadMENU;
|
||||
RetryMenuItem retryMENU;
|
||||
UseLocalSaveMenuItem useLocalMENU;
|
||||
UseRemoteSaveMenuItem useRemoteMENU;
|
||||
|
||||
public SaveSlotMenu(InGameUI inGameui, SaveFile savFile)
|
||||
{
|
||||
SavFile = savFile;
|
||||
|
||||
//非自动存档,增加保存选项
|
||||
if (!savFile.AutoSave) m_subOptions.Add(new SaveMenuItem(inGameui, savFile));
|
||||
//添加读取选项
|
||||
m_subOptions.Add(new LoadMenuItem(inGameui, savFile));
|
||||
saveMENU = new SaveMenuItem(inGameui, savFile);
|
||||
loadMENU = new LoadMenuItem(inGameui, savFile);
|
||||
retryMENU = new RetryMenuItem(inGameui, savFile);
|
||||
useLocalMENU = new UseLocalSaveMenuItem(inGameui, savFile);
|
||||
useRemoteMENU = new UseRemoteSaveMenuItem(inGameui, savFile);
|
||||
}
|
||||
|
||||
public override void OnShow(OptionUI_MenuItem ui)
|
||||
@ -55,7 +61,21 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
protected override List<InternalOptionMenu> GetOptionMenus()
|
||||
{
|
||||
return m_subOptions;
|
||||
var menus = new List<InternalOptionMenu>();
|
||||
|
||||
if (SavFile.GetCurrentState() is SaveFile.ConflictState)
|
||||
{
|
||||
menus.Add(useRemoteMENU);
|
||||
menus.Add(useLocalMENU);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SavFile.GetCurrentState() is SaveFile.SyncFailedState) menus.Add(retryMENU);
|
||||
if (!SavFile.AutoSave) menus.Add(saveMENU);
|
||||
if (!SavFile.IsEmpty) menus.Add(loadMENU);
|
||||
}
|
||||
|
||||
return menus;
|
||||
}
|
||||
|
||||
public class SaveMenuItem : ExecuteMenu
|
||||
@ -111,6 +131,66 @@ namespace AxibugEmuOnline.Client
|
||||
OverlayManager.HideSideBar();
|
||||
}
|
||||
}
|
||||
|
||||
public class RetryMenuItem : ExecuteMenu
|
||||
{
|
||||
SaveFile m_savFile;
|
||||
InGameUI m_ingameUI;
|
||||
public override string Name => "重试";
|
||||
public override bool Visible => m_savFile.GetCurrentState() is SaveFile.SyncFailedState;
|
||||
|
||||
public RetryMenuItem(InGameUI inGameui, SaveFile savFile)
|
||||
{
|
||||
m_ingameUI = inGameui;
|
||||
m_savFile = savFile;
|
||||
}
|
||||
|
||||
public override void OnExcute(OptionUI optionUI, ref bool cancelHide)
|
||||
{
|
||||
cancelHide = true;
|
||||
m_savFile.TrySync();
|
||||
}
|
||||
}
|
||||
|
||||
public class UseRemoteSaveMenuItem : ExecuteMenu
|
||||
{
|
||||
SaveFile m_savFile;
|
||||
InGameUI m_ingameUI;
|
||||
public override string Name => "使用云端存档";
|
||||
|
||||
public UseRemoteSaveMenuItem(InGameUI inGameui, SaveFile savFile)
|
||||
{
|
||||
m_ingameUI = inGameui;
|
||||
m_savFile = savFile;
|
||||
}
|
||||
|
||||
public override void OnExcute(OptionUI optionUI, ref bool cancelHide)
|
||||
{
|
||||
if (m_savFile.GetCurrentState() is not SaveFile.ConflictState) return;
|
||||
cancelHide = true;
|
||||
m_savFile.FSM.ChangeState<SaveFile.DownloadingState>();
|
||||
}
|
||||
}
|
||||
|
||||
public class UseLocalSaveMenuItem : ExecuteMenu
|
||||
{
|
||||
SaveFile m_savFile;
|
||||
InGameUI m_ingameUI;
|
||||
public override string Name => "使用本地存档";
|
||||
|
||||
public UseLocalSaveMenuItem(InGameUI inGameui, SaveFile savFile)
|
||||
{
|
||||
m_ingameUI = inGameui;
|
||||
m_savFile = savFile;
|
||||
}
|
||||
|
||||
public override void OnExcute(OptionUI optionUI, ref bool cancelHide)
|
||||
{
|
||||
if (m_savFile.GetCurrentState() is not SaveFile.ConflictState) return;
|
||||
cancelHide = true;
|
||||
m_savFile.FSM.ChangeState<SaveFile.UploadingState>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -14,7 +14,10 @@ namespace AxibugEmuOnline.Client
|
||||
public Text UI_SavTime;
|
||||
|
||||
public GameObject UI_Disconnect;
|
||||
public GameObject UI_Syncing;
|
||||
public GameObject UI_DownloadError;
|
||||
public GameObject UI_Downloading;
|
||||
public GameObject UI_Uploading;
|
||||
public GameObject UI_Checking;
|
||||
public GameObject UI_Conflict;
|
||||
public GameObject UI_Synced;
|
||||
|
||||
@ -24,12 +27,13 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_stateNodes[typeof(SaveFile.CheckingState)] = UI_Syncing;
|
||||
m_stateNodes[typeof(SaveFile.CheckingState)] = UI_Checking;
|
||||
m_stateNodes[typeof(SaveFile.ConflictState)] = UI_Conflict;
|
||||
m_stateNodes[typeof(SaveFile.DownloadingState)] = UI_Syncing;
|
||||
m_stateNodes[typeof(SaveFile.DownloadingState)] = UI_Downloading;
|
||||
m_stateNodes[typeof(SaveFile.SyncedState)] = UI_Synced;
|
||||
m_stateNodes[typeof(SaveFile.UploadingState)] = UI_Syncing;
|
||||
m_stateNodes[typeof(SaveFile.UploadingState)] = UI_Uploading;
|
||||
m_stateNodes[typeof(SaveFile.CheckingNetworkState)] = UI_Disconnect;
|
||||
m_stateNodes[typeof(SaveFile.SyncFailedState)] = UI_DownloadError;
|
||||
}
|
||||
|
||||
protected override void OnSetData(InternalOptionMenu menuData)
|
||||
@ -80,7 +84,7 @@ namespace AxibugEmuOnline.Client
|
||||
|
||||
private void UpdateStateNode()
|
||||
{
|
||||
var stateType = MenuData.SavFile.GetState().GetType();
|
||||
var stateType = MenuData.SavFile.GetCurrentState().GetType();
|
||||
|
||||
foreach (var item in m_stateNodes)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user