虚拟摇杆支持(包括XMB时)
This commit is contained in:
parent
6f9d77704e
commit
b3b72440f5
AxibugEmuOnline.Client/Assets
Resources
Script/AppMain
App.cs
AxiInputSP.Settings
ColecoVisionMultiKeysSetting.csGameBoyColorMultiKeysSetting.csGameBoyMultiKeysSetting.csGameGearMultiKeysSetting.csMasterSystemMultiKeysSetting.csNESMultiKeysSetting.csSC3000MultiKeysSetting.csSG1000MultiKeysSetting.csUMAMEMultiKeysSetting.csXMBMultiKeysSetting.cs
AxiInputSP
Emulator/NesEmulator
Initer.csUI
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0a5208f1ea0c95b4fba6c793b1f7f3f7
|
guid: bd58e2a95e584a349912ae71b67764d9
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
Binary file not shown.
After ![]() (image error) Size: 4.3 KiB |
@ -0,0 +1,108 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: edbd78fa6a0e1644ab34a5382e5bef52
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
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
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 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
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
After ![]() (image error) Size: 29 KiB |
@ -0,0 +1,108 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b48676b7de98674194a8862f1962680
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
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
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 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
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 128
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 128
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
After ![]() (image error) Size: 21 KiB |
@ -0,0 +1,108 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 96804c13c4960eb4e83ecb34ea269f4a
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
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
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 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
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -31,6 +31,7 @@ RectTransform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3531919738411886375}
|
- {fileID: 3531919738411886375}
|
||||||
- {fileID: 3531919739979819162}
|
- {fileID: 3531919739979819162}
|
||||||
|
- {fileID: 1479421568449666778}
|
||||||
- {fileID: 8368317206160511790}
|
- {fileID: 8368317206160511790}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@ -53,6 +54,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_InputUI: {fileID: 3531919739979819165}
|
m_InputUI: {fileID: 3531919739979819165}
|
||||||
m_OptionUI: {fileID: 3531919738411886374}
|
m_OptionUI: {fileID: 3531919738411886374}
|
||||||
|
m_Joystick: {fileID: 1479421568449666778}
|
||||||
m_popTipsUI: {fileID: 5244143219655022973}
|
m_popTipsUI: {fileID: 5244143219655022973}
|
||||||
--- !u!1001 &286598211728911619
|
--- !u!1001 &286598211728911619
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
@ -62,6 +64,38 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 3531919739338806919}
|
m_TransformParent: {fileID: 3531919739338806919}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5931284345598511, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3567888507220032771, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
- target: {fileID: 3567888507220032771, guid: 838819c4b387d384c8f75f1919261c58, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
@ -784,6 +818,112 @@ RectTransform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
m_PrefabInstance: {fileID: 1091051462859282637}
|
m_PrefabInstance: {fileID: 1091051462859282637}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1001 &2731323643586367206
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransformParent: {fileID: 3531919739338806919}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_Pivot.x
|
||||||
|
value: 0.5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_Pivot.y
|
||||||
|
value: 0.5
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.x
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: -0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: -0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: -0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770047, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: ScreenKeyPad
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3557960760441770047, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_RemovedGameObjects: []
|
||||||
|
m_AddedGameObjects: []
|
||||||
|
m_AddedComponents: []
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
--- !u!224 &1479421568449666778 stripped
|
||||||
|
RectTransform:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3557960760441770044, guid: bb828a9e324f62649b40038f8cd3620a, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 2731323643586367206}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1001 &6972157500961473863
|
--- !u!1001 &6972157500961473863
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bb828a9e324f62649b40038f8cd3620a
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -34,6 +34,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
public static FileDownloader FileDownloader;
|
public static FileDownloader FileDownloader;
|
||||||
static bool bTest;
|
static bool bTest;
|
||||||
static string mTestSrvIP;
|
static string mTestSrvIP;
|
||||||
|
public static bool bUseGUIButton;
|
||||||
|
|
||||||
|
|
||||||
/// <summary> 收藏 Rom库 </summary>
|
/// <summary> 收藏 Rom库 </summary>
|
||||||
@ -69,7 +70,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
return s_romLibs[platform];
|
return s_romLibs[platform];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Init(bool isTest = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "")
|
public static void Init(bool isTest = false,bool isUseGUIButton = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "")
|
||||||
{
|
{
|
||||||
log = new LogManager(OnLogOut);
|
log = new LogManager(OnLogOut);
|
||||||
//其他平台必要的初始化
|
//其他平台必要的初始化
|
||||||
@ -105,6 +106,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
|
|
||||||
|
|
||||||
bTest = isTest;
|
bTest = isTest;
|
||||||
|
bUseGUIButton = isUseGUIButton;
|
||||||
mTestSrvIP = testSrvIP;
|
mTestSrvIP = testSrvIP;
|
||||||
var go = new GameObject("[AppAxibugEmuOnline]");
|
var go = new GameObject("[AppAxibugEmuOnline]");
|
||||||
GameObject.DontDestroyOnLoad(go);
|
GameObject.DontDestroyOnLoad(go);
|
||||||
|
@ -56,10 +56,10 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -53,8 +53,8 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
|
|
||||||
controllers[0].ColletAllKey();
|
controllers[0].ColletAllKey();
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -53,8 +53,8 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
|
|
||||||
controllers[0].ColletAllKey();
|
controllers[0].ColletAllKey();
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -56,10 +56,10 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -73,10 +73,10 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -55,9 +55,9 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -56,10 +56,10 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -56,10 +56,10 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
|
|
||||||
//P2 键盘
|
//P2 键盘
|
||||||
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0));
|
||||||
|
@ -80,12 +80,12 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_A, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_A, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_B, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_B, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_C, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_C, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_C));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_D, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_D, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_D));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_E, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_5));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_E, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_E));
|
||||||
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_F, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_6));
|
controllers[0].SetKey((ulong)UMAMEKSingleKey.BTN_F, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_F));
|
||||||
|
|
||||||
controllers[0].ColletAllKey();
|
controllers[0].ColletAllKey();
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -51,8 +51,8 @@ namespace AxiInputSP.Setting
|
|||||||
controllers[0].SetKey((ulong)EnumCommand.SelectItemDown, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
controllers[0].SetKey((ulong)EnumCommand.SelectItemDown, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN));
|
||||||
controllers[0].SetKey((ulong)EnumCommand.SelectItemLeft, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
controllers[0].SetKey((ulong)EnumCommand.SelectItemLeft, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT));
|
||||||
controllers[0].SetKey((ulong)EnumCommand.SelectItemRight, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
controllers[0].SetKey((ulong)EnumCommand.SelectItemRight, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT));
|
||||||
controllers[0].SetKey((ulong)EnumCommand.Enter, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1));
|
controllers[0].SetKey((ulong)EnumCommand.Enter, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_A));
|
||||||
controllers[0].SetKey((ulong)EnumCommand.Back, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2));
|
controllers[0].SetKey((ulong)EnumCommand.Back, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_B));
|
||||||
controllers[0].SetKey((ulong)EnumCommand.OptionMenu, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.HOME));
|
controllers[0].SetKey((ulong)EnumCommand.OptionMenu, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.HOME));
|
||||||
|
|
||||||
//PC XBOX
|
//PC XBOX
|
||||||
|
@ -40,12 +40,12 @@ namespace AxiInputSP
|
|||||||
DOWN,
|
DOWN,
|
||||||
LEFT,
|
LEFT,
|
||||||
RIGHT,
|
RIGHT,
|
||||||
BTN_1,
|
BTN_A,
|
||||||
BTN_2,
|
BTN_B,
|
||||||
BTN_3,
|
BTN_C,
|
||||||
BTN_4,
|
BTN_D,
|
||||||
BTN_5,
|
BTN_E,
|
||||||
BTN_6,
|
BTN_F,
|
||||||
POTION_1,
|
POTION_1,
|
||||||
POTION_2,
|
POTION_2,
|
||||||
POTION_3,
|
POTION_3,
|
||||||
|
@ -16,7 +16,7 @@ namespace AxiInputSP.UGUI
|
|||||||
{
|
{
|
||||||
dictHandle2AxiUgui[uiHandle.Handle] = uiHandle;
|
dictHandle2AxiUgui[uiHandle.Handle] = uiHandle;
|
||||||
List<AxiInputUGUIHandle> list;
|
List<AxiInputUGUIHandle> list;
|
||||||
if (dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
|
if (!dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
|
||||||
list = dictBtnType2BtnList[uiHandle.UguiBtnType] = new List<AxiInputUGUIHandle>();
|
list = dictBtnType2BtnList[uiHandle.UguiBtnType] = new List<AxiInputUGUIHandle>();
|
||||||
|
|
||||||
if (!list.Contains(uiHandle))
|
if (!list.Contains(uiHandle))
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using UnityEngine.EventSystems;
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
namespace AxiInputSP.UGUI
|
namespace AxiInputSP.UGUI
|
||||||
{
|
{
|
||||||
@ -17,6 +18,7 @@ namespace AxiInputSP.UGUI
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 键值(支持组合键)
|
/// 键值(支持组合键)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SerializeField]
|
||||||
public AxiInputUGuiBtnType[] axiBtnTypeList;
|
public AxiInputUGuiBtnType[] axiBtnTypeList;
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,68 @@
|
|||||||
|
using AxiInputSP.UGUI;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditorInternal;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Editors
|
||||||
|
{
|
||||||
|
[CustomEditor(typeof(AxiIptButton))]
|
||||||
|
public class AxiIptButtonEditor : Editor
|
||||||
|
{
|
||||||
|
private ReorderableList _itemList;
|
||||||
|
private SerializedProperty _axiBtnTypeListProp;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
// 获取序列化属性
|
||||||
|
_axiBtnTypeListProp = serializedObject.FindProperty("axiBtnTypeList");
|
||||||
|
|
||||||
|
// 初始化 ReorderableList
|
||||||
|
_itemList = new ReorderableList(
|
||||||
|
serializedObject,
|
||||||
|
_axiBtnTypeListProp,
|
||||||
|
true, true, true, true
|
||||||
|
);
|
||||||
|
|
||||||
|
// 自定义列表绘制(保持原有逻辑)
|
||||||
|
_itemList.drawHeaderCallback = rect => GUI.Label(rect, "键位数组");
|
||||||
|
_itemList.drawElementCallback = (rect, index, active, focused) => {
|
||||||
|
var element = _axiBtnTypeListProp.GetArrayElementAtIndex(index);
|
||||||
|
EditorGUI.PropertyField(rect, element, GUIContent.none);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
serializedObject.Update();
|
||||||
|
|
||||||
|
// 1. 优先绘制自定义的键位数组
|
||||||
|
EditorGUILayout.LabelField("自定义键位配置", EditorStyles.boldLabel);
|
||||||
|
_itemList.DoLayoutList();
|
||||||
|
|
||||||
|
// 2. 添加分割线
|
||||||
|
EditorGUILayout.Space(10);
|
||||||
|
GUILayout.Box("", GUILayout.Height(1), GUILayout.ExpandWidth(true));
|
||||||
|
EditorGUILayout.Space(5);
|
||||||
|
|
||||||
|
// 3. 绘制原生 Button 属性(排除已处理的 axiBtnTypeList)
|
||||||
|
EditorGUILayout.LabelField("原生按钮属性", EditorStyles.boldLabel);
|
||||||
|
DrawDefaultInspectorExcluding("axiBtnTypeList");
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 辅助方法:绘制排除指定字段的默认 Inspector
|
||||||
|
private void DrawDefaultInspectorExcluding(params string[] excludePaths)
|
||||||
|
{
|
||||||
|
var prop = serializedObject.GetIterator();
|
||||||
|
bool enterChildren = true;
|
||||||
|
|
||||||
|
while (prop.NextVisible(enterChildren))
|
||||||
|
{
|
||||||
|
enterChildren = false;
|
||||||
|
if (System.Array.IndexOf(excludePaths, prop.name) >= 0) continue;
|
||||||
|
EditorGUILayout.PropertyField(prop, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3d87eebb7dc59674db1165b853d18333
|
@ -0,0 +1,121 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxiInputSP.UGUI
|
||||||
|
{
|
||||||
|
public class AxiIptJoystick : IDisposable
|
||||||
|
{
|
||||||
|
enum AxiIptJoystickState
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
KeyUp,
|
||||||
|
KeyDown,
|
||||||
|
KeyHold
|
||||||
|
}
|
||||||
|
static long LastCheckFrame = -1;
|
||||||
|
static Func<Vector2Int> RawJoy;
|
||||||
|
AxiInputUGUIHandle[] handles = new AxiInputUGUIHandle[4];
|
||||||
|
static Dictionary<AxiInputUGuiBtnType, AxiIptJoystickState> mAxis2State = new Dictionary<AxiInputUGuiBtnType, AxiIptJoystickState>();
|
||||||
|
|
||||||
|
public AxiIptJoystick(Func<Vector2Int> getRawJoy)
|
||||||
|
{
|
||||||
|
RawJoy = getRawJoy;
|
||||||
|
handles[0] = new AxiInputUGUIHandle(AxiInputUGuiBtnType.UP);
|
||||||
|
handles[0].GetKeyHandle = (() => { return GetKey(AxiInputUGuiBtnType.UP); });
|
||||||
|
handles[0].GetKeyUpHandle = (() => { return GetKeyUp(AxiInputUGuiBtnType.UP); });
|
||||||
|
handles[0].GetKeyDownHandle = (() => { return GetKeyDown(AxiInputUGuiBtnType.UP); });
|
||||||
|
mAxis2State[AxiInputUGuiBtnType.UP] = AxiIptJoystickState.None;
|
||||||
|
|
||||||
|
handles[1] = new AxiInputUGUIHandle(AxiInputUGuiBtnType.DOWN);
|
||||||
|
handles[1].GetKeyHandle = (() => { return GetKey(AxiInputUGuiBtnType.DOWN); });
|
||||||
|
handles[1].GetKeyUpHandle = (() => { return GetKeyUp(AxiInputUGuiBtnType.DOWN); });
|
||||||
|
handles[1].GetKeyDownHandle = (() => { return GetKeyDown(AxiInputUGuiBtnType.DOWN); });
|
||||||
|
mAxis2State[AxiInputUGuiBtnType.DOWN] = AxiIptJoystickState.None;
|
||||||
|
|
||||||
|
handles[2] = new AxiInputUGUIHandle(AxiInputUGuiBtnType.LEFT);
|
||||||
|
handles[2].GetKeyHandle = (() => { return GetKey(AxiInputUGuiBtnType.LEFT); });
|
||||||
|
handles[2].GetKeyUpHandle = (() => { return GetKeyUp(AxiInputUGuiBtnType.LEFT); });
|
||||||
|
handles[2].GetKeyDownHandle = (() => { return GetKeyDown(AxiInputUGuiBtnType.LEFT); });
|
||||||
|
mAxis2State[AxiInputUGuiBtnType.LEFT] = AxiIptJoystickState.None;
|
||||||
|
|
||||||
|
handles[3] = new AxiInputUGUIHandle(AxiInputUGuiBtnType.RIGHT);
|
||||||
|
handles[3].GetKeyHandle = (() => { return GetKey(AxiInputUGuiBtnType.RIGHT); });
|
||||||
|
handles[3].GetKeyUpHandle = (() => { return GetKeyUp(AxiInputUGuiBtnType.RIGHT); });
|
||||||
|
handles[3].GetKeyDownHandle = (() => { return GetKeyDown(AxiInputUGuiBtnType.RIGHT); });
|
||||||
|
mAxis2State[AxiInputUGuiBtnType.RIGHT] = AxiIptJoystickState.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < handles.Length; i++)
|
||||||
|
{
|
||||||
|
handles[i].Dispose();
|
||||||
|
handles[i] = null;
|
||||||
|
}
|
||||||
|
mAxis2State.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateState()
|
||||||
|
{
|
||||||
|
if (LastCheckFrame == Time.frameCount)
|
||||||
|
return;
|
||||||
|
LastCheckFrame = Time.frameCount;
|
||||||
|
RecheckSingleState(AxiInputUGuiBtnType.RIGHT);
|
||||||
|
RecheckSingleState(AxiInputUGuiBtnType.LEFT);
|
||||||
|
RecheckSingleState(AxiInputUGuiBtnType.UP);
|
||||||
|
RecheckSingleState(AxiInputUGuiBtnType.DOWN);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void RecheckSingleState(AxiInputUGuiBtnType axisType)
|
||||||
|
{
|
||||||
|
bool bKey = false;
|
||||||
|
|
||||||
|
Vector2Int inputV2 = RawJoy.Invoke();
|
||||||
|
|
||||||
|
switch (axisType)
|
||||||
|
{
|
||||||
|
case AxiInputUGuiBtnType.RIGHT: bKey = inputV2.x > 0; break;
|
||||||
|
case AxiInputUGuiBtnType.LEFT: bKey = inputV2.x < 0; break;
|
||||||
|
case AxiInputUGuiBtnType.UP: bKey = inputV2.y > 0; break;
|
||||||
|
case AxiInputUGuiBtnType.DOWN: bKey = inputV2.y < 0; break;
|
||||||
|
}
|
||||||
|
//按下
|
||||||
|
if (bKey)
|
||||||
|
{
|
||||||
|
//如果之前帧是KeyUp或None,则为KeyDown|KeyHold
|
||||||
|
if (mAxis2State[axisType] <= AxiIptJoystickState.KeyUp)
|
||||||
|
mAxis2State[axisType] = AxiIptJoystickState.KeyDown;
|
||||||
|
//如果之前帧是KeyDown,则为KeyHold
|
||||||
|
else if (mAxis2State[axisType] == AxiIptJoystickState.KeyDown)
|
||||||
|
mAxis2State[axisType] = AxiIptJoystickState.KeyHold;
|
||||||
|
}
|
||||||
|
//未按下
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//如果之前帧是KeyDown|KeyHold,则为KeyUp|None
|
||||||
|
if (mAxis2State[axisType] >= AxiIptJoystickState.KeyDown)
|
||||||
|
mAxis2State[axisType] = AxiIptJoystickState.KeyUp;
|
||||||
|
//如果之前帧是KeyUp,则为None
|
||||||
|
else if (mAxis2State[axisType] == AxiIptJoystickState.KeyUp)
|
||||||
|
mAxis2State[axisType] = AxiIptJoystickState.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool GetKey(AxiInputUGuiBtnType key)
|
||||||
|
{
|
||||||
|
UpdateState();
|
||||||
|
return mAxis2State[key] >= AxiIptJoystickState.KeyDown;
|
||||||
|
}
|
||||||
|
bool GetKeyUp(AxiInputUGuiBtnType key)
|
||||||
|
{
|
||||||
|
UpdateState();
|
||||||
|
return mAxis2State[key] == AxiIptJoystickState.KeyUp;
|
||||||
|
}
|
||||||
|
bool GetKeyDown(AxiInputUGuiBtnType key)
|
||||||
|
{
|
||||||
|
UpdateState();
|
||||||
|
return mAxis2State[key] == AxiIptJoystickState.KeyDown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7194bc2da3bcaa747b87428fb3175009
|
@ -23,12 +23,12 @@ namespace AxibugEmuOnline.Client
|
|||||||
//config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
|
//config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
|
||||||
//config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
|
//config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
|
||||||
//config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声(2 声道)
|
//config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声(2 声道)
|
||||||
App.audioMgr.SetAudioConfig(new AudioConfiguration());
|
//App.audioMgr.SetAudioConfig(new AudioConfiguration());
|
||||||
|
|
||||||
//TODO 采样率需要更准确,而且和clip并没有关系
|
//TODO 采样率需要更准确,而且和clip并没有关系
|
||||||
//var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
|
var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
|
||||||
//dummy.SetData(new float[] { 1 }, 0);
|
dummy.SetData(new float[] { 1 }, 0);
|
||||||
//m_as.clip = dummy; //just to let unity play the audiosource
|
m_as.clip = dummy; //just to let unity play the audiosource
|
||||||
m_as.loop = true;
|
m_as.loop = true;
|
||||||
m_as.spatialBlend = 1;
|
m_as.spatialBlend = 1;
|
||||||
m_as.Play();
|
m_as.Play();
|
||||||
|
@ -22,19 +22,29 @@ namespace AxibugEmuOnline.Client
|
|||||||
public bool bUseLocalWebApi = false;
|
public bool bUseLocalWebApi = false;
|
||||||
public string mLocalWebApi = "http://localhost:5051";
|
public string mLocalWebApi = "http://localhost:5051";
|
||||||
public bool bEditorUUID = false;
|
public bool bEditorUUID = false;
|
||||||
|
public bool bEditorOpenGUIJoyStick = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
bool UseJoyStack = false;
|
||||||
|
|
||||||
|
if (Application.platform == RuntimePlatform.Android)
|
||||||
|
{
|
||||||
|
UseJoyStack = true;
|
||||||
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
App.Init(bTestSkipWebApiToConServer, mTestSrvIP, bUseLocalWebApi, mLocalWebApi);
|
if (bEditorOpenGUIJoyStick)
|
||||||
|
UseJoyStack = true;
|
||||||
|
App.Init(bTestSkipWebApiToConServer, UseJoyStack, mTestSrvIP, bUseLocalWebApi, mLocalWebApi);
|
||||||
dev_UUID = SystemInfo.deviceUniqueIdentifier;
|
dev_UUID = SystemInfo.deviceUniqueIdentifier;
|
||||||
if (bEditorUUID)
|
if (bEditorUUID)
|
||||||
{
|
{
|
||||||
dev_UUID += "_Editor";
|
dev_UUID += "_Editor";
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
App.Init(this);
|
App.Init(false,UseJoyStack);
|
||||||
dev_UUID = SystemInfo.deviceUniqueIdentifier;
|
dev_UUID = SystemInfo.deviceUniqueIdentifier;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8f97c5606f773e4081e096d54eabe98
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,89 @@
|
|||||||
|
using AxiInputSP.UGUI;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class FloatingJoystick : Joystick
|
||||||
|
{
|
||||||
|
public Image mImgBg;
|
||||||
|
public Image mImgHandle;
|
||||||
|
public Image mImgArrow;
|
||||||
|
|
||||||
|
public bool mIsMounseDown = false;
|
||||||
|
|
||||||
|
readonly static Color ShowColor = new Color(1F, 1f, 1F, 0.7f);
|
||||||
|
readonly static Color HideColor = new Color(1F, 1f, 1F, 0.3f);
|
||||||
|
AxiIptJoystick mAxiIptJoystick;
|
||||||
|
//一次新的摇杆移动
|
||||||
|
public static bool bNewTouchWithSkill = false;
|
||||||
|
|
||||||
|
protected override void Start()
|
||||||
|
{
|
||||||
|
base.Start();
|
||||||
|
mImgBg = background.transform.GetComponent<Image>();
|
||||||
|
mImgHandle = background.transform.Find("Handle").GetComponent<Image>();
|
||||||
|
mArrow = transform.Find("Background/Arrow").GetComponent<RectTransform>();
|
||||||
|
mImgArrow = transform.Find("Background/Arrow/imgArrow").GetComponent<Image>();
|
||||||
|
mArrow.gameObject.SetActive(false);
|
||||||
|
//background.gameObject.SetActive(false);
|
||||||
|
background.gameObject.SetActive(true);
|
||||||
|
background.transform.localPosition = new Vector3(256f, 256f, 0);
|
||||||
|
mImgBg.color = HideColor;
|
||||||
|
mImgHandle.color = HideColor;
|
||||||
|
mImgArrow.color = HideColor;
|
||||||
|
mIsMounseDown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnEnable()
|
||||||
|
{
|
||||||
|
if (mAxiIptJoystick == null)
|
||||||
|
{
|
||||||
|
mAxiIptJoystick = new AxiIptJoystick(GetJoyRaw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
if (mAxiIptJoystick != null)
|
||||||
|
{
|
||||||
|
mAxiIptJoystick.Dispose();
|
||||||
|
mAxiIptJoystick = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector2Int GetJoyRaw()
|
||||||
|
{
|
||||||
|
return this.RawInputV2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnPointerDown(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
//background.anchoredPosition = ScreenPointToAnchoredPosition(eventData.position);
|
||||||
|
//background.gameObject.SetActive(true);
|
||||||
|
mImgBg.color = ShowColor;
|
||||||
|
mImgHandle.color = ShowColor;
|
||||||
|
mImgArrow.color = ShowColor;
|
||||||
|
mIsMounseDown = true;
|
||||||
|
base.OnPointerDown(eventData);
|
||||||
|
bNewTouchWithSkill = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnPointerUp(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
//background.gameObject.SetActive(false);
|
||||||
|
PointerUp();
|
||||||
|
bNewTouchWithSkill = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void PointerUp()
|
||||||
|
{
|
||||||
|
if (background == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
background.transform.localPosition = new Vector3(256f, 256f, 0);
|
||||||
|
mImgBg.color = HideColor;
|
||||||
|
mImgHandle.color = HideColor;
|
||||||
|
mIsMounseDown = false;
|
||||||
|
base.PointerUp();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7a47f546fc70ec8428172694e78e4288
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,167 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
public class Joystick : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public Vector2Int RawInputV2
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return InputForEmu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public float HandleRange
|
||||||
|
{
|
||||||
|
get { return handleRange; }
|
||||||
|
set { handleRange = Mathf.Abs(value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public float DeadZone
|
||||||
|
{
|
||||||
|
get { return deadZone; }
|
||||||
|
set { deadZone = Mathf.Abs(value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public AxisOptions AxisOptions { get { return AxisOptions; } set { axisOptions = value; } }
|
||||||
|
|
||||||
|
[SerializeField] private float handleRange = 1;
|
||||||
|
[SerializeField] private float deadZone = 0f;
|
||||||
|
[SerializeField] private AxisOptions axisOptions = AxisOptions.Both;
|
||||||
|
[SerializeField] private bool snapX = false;
|
||||||
|
[SerializeField] private bool snapY = false;
|
||||||
|
|
||||||
|
[SerializeField] protected RectTransform background = null;
|
||||||
|
[SerializeField] private RectTransform handle = null;
|
||||||
|
[SerializeField] protected RectTransform mArrow;
|
||||||
|
private RectTransform baseRect = null;
|
||||||
|
|
||||||
|
private Canvas canvas;
|
||||||
|
private Camera cam;
|
||||||
|
|
||||||
|
private Vector2 input = Vector2.zero;
|
||||||
|
public Vector2Int InputForEmu = Vector2Int.zero;
|
||||||
|
|
||||||
|
public static Joystick joystickInstance;
|
||||||
|
|
||||||
|
|
||||||
|
protected virtual void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
HandleRange = handleRange;
|
||||||
|
DeadZone = deadZone;
|
||||||
|
baseRect = GetComponent<RectTransform>();
|
||||||
|
canvas = GetComponentInParent<Canvas>();
|
||||||
|
if (canvas == null)
|
||||||
|
Debug.LogError("The Joystick is not placed inside a canvas");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cam == null)
|
||||||
|
{
|
||||||
|
if (canvas.renderMode == RenderMode.ScreenSpaceCamera)
|
||||||
|
cam = canvas.worldCamera;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 center = new Vector2(0.5f, 0.5f);
|
||||||
|
background.pivot = center;
|
||||||
|
handle.anchorMin = center;
|
||||||
|
handle.anchorMax = center;
|
||||||
|
handle.pivot = center;
|
||||||
|
handle.anchoredPosition = Vector2.zero;
|
||||||
|
|
||||||
|
joystickInstance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnPointerDown(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
OnDrag(eventData);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 mArrowTop = new Vector2(0,1);
|
||||||
|
public void OnDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
if (cam == null)
|
||||||
|
{
|
||||||
|
if (canvas.renderMode == RenderMode.ScreenSpaceCamera)
|
||||||
|
cam = canvas.worldCamera;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 position = RectTransformUtility.WorldToScreenPoint(cam, background.position);
|
||||||
|
Vector2 radius = background.sizeDelta / 2;
|
||||||
|
input = (eventData.position - position) / (radius * canvas.scaleFactor);
|
||||||
|
//FormatInput();
|
||||||
|
HandleInput(input.magnitude, input.normalized, radius, cam);
|
||||||
|
handle.anchoredPosition = input * radius * handleRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void HandleInput(float magnitude, Vector2 normalised, Vector2 radius, Camera cam)
|
||||||
|
{
|
||||||
|
if (magnitude > deadZone)
|
||||||
|
{
|
||||||
|
if (magnitude > 1)
|
||||||
|
{
|
||||||
|
input = normalised;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
input = Vector2.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (magnitude > deadZone && input != Vector2.zero)
|
||||||
|
{
|
||||||
|
if (!mArrow.gameObject.activeSelf) mArrow.gameObject.SetActive(true);
|
||||||
|
float angle = Vector2.Angle(mArrowTop, input.normalized);
|
||||||
|
|
||||||
|
if (input.x > 0)
|
||||||
|
angle *= -1;
|
||||||
|
mArrow.rotation = Quaternion.Euler(0, 0, angle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (mArrow.gameObject.activeSelf) mArrow.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
|
||||||
|
if (input.x < -1 * deadZone)
|
||||||
|
InputForEmu.x = -1;
|
||||||
|
else if (input.x > deadZone)
|
||||||
|
InputForEmu.x = 1;
|
||||||
|
else
|
||||||
|
InputForEmu.x = 0;
|
||||||
|
|
||||||
|
if (input.y < -1 * deadZone)
|
||||||
|
InputForEmu.y = -1;
|
||||||
|
else if (input.y > deadZone)
|
||||||
|
InputForEmu.y = 1;
|
||||||
|
else
|
||||||
|
InputForEmu.y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnPointerUp(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
PointerUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void PointerUp()
|
||||||
|
{
|
||||||
|
input = Vector2.zero;
|
||||||
|
InputForEmu = Vector2Int.zero;
|
||||||
|
handle.anchoredPosition = Vector2.zero;
|
||||||
|
mArrow.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Vector2 ScreenPointToAnchoredPosition(Vector2 screenPosition)
|
||||||
|
{
|
||||||
|
Vector2 localPoint = Vector2.zero;
|
||||||
|
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(baseRect, screenPosition, cam, out localPoint))
|
||||||
|
{
|
||||||
|
Vector2 pivotOffset = baseRect.pivot * baseRect.sizeDelta;
|
||||||
|
return localPoint - (background.anchorMax * baseRect.sizeDelta) + pivotOffset;
|
||||||
|
}
|
||||||
|
return Vector2.zero;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum AxisOptions { Both, Horizontal, Vertical }
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b9fca4100a7477741b3973b4ff2c405f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
[SerializeField] InputUI m_InputUI;
|
[SerializeField] InputUI m_InputUI;
|
||||||
[SerializeField] OptionUI m_OptionUI;
|
[SerializeField] OptionUI m_OptionUI;
|
||||||
|
[SerializeField] Transform m_Joystick;
|
||||||
[SerializeField] PopTipsUI m_popTipsUI;
|
[SerializeField] PopTipsUI m_popTipsUI;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
@ -18,6 +20,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
s_ins = this;
|
s_ins = this;
|
||||||
|
|
||||||
m_InputUI.gameObject.SetActive(false);
|
m_InputUI.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
m_Joystick.gameObject.SetActive(App.bUseGUIButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Input(Action<string> callback, string placeHolder, string defaultText)
|
public static void Input(Action<string> callback, string placeHolder, string defaultText)
|
||||||
|
Loading…
Reference in New Issue
Block a user