适配c2;新版设计稿;对战切换手势;主逻辑接通;使用think的阻力值,修改影子模式船位置
@ -33,9 +33,10 @@ public class CountDownAnimation : PFUIPanel
|
||||
return;
|
||||
}
|
||||
var flag = int.TryParse(s,out int a);
|
||||
Debug.Log(a);
|
||||
if (flag)
|
||||
{
|
||||
if (a == 1 && action2 != null)
|
||||
if (a == 1 && action2 != null)
|
||||
{
|
||||
action2.Invoke();
|
||||
}
|
||||
|
||||
8
Assets/Resources/Images/RowerNew.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e60c99c058610ef419848357f78abe45
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_back_44.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
128
Assets/Resources/Images/RowerNew/ICON_back_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2744000b2b7ad61468b0e2f742ffaac1
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_bluetooth_44.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
128
Assets/Resources/Images/RowerNew/ICON_bluetooth_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 393269ec9bc5a6a44975b6ddd78c6242
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_bluetooth_44_on.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
128
Assets/Resources/Images/RowerNew/ICON_bluetooth_44_on.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7c16f6bc5542c544b4bbdb31248a619
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_continue_44.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
128
Assets/Resources/Images/RowerNew/ICON_continue_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e81aa35f615e7847823cccea39d9ed6
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_create_44.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
128
Assets/Resources/Images/RowerNew/ICON_create_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3e3539d6832d4f94d9beca3331aa7b99
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_mode_44.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
128
Assets/Resources/Images/RowerNew/ICON_mode_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de2adfb3784ff694f8cd0284171b54e7
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/ICON_pause_44.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
128
Assets/Resources/Images/RowerNew/ICON_pause_44.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: daa649db54d755d4c9855bf9c303e027
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/bg_huachuanji.jpg
Normal file
|
After Width: | Height: | Size: 133 KiB |
128
Assets/Resources/Images/RowerNew/bg_huachuanji.jpg.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 121ea3b1130e31d41900ea4b3da2eb01
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/bg_zulibar_APP.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
128
Assets/Resources/Images/RowerNew/bg_zulibar_APP.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe1cfcf534d1ea94894d2194a18ac687
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/bg_弹窗.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
128
Assets/Resources/Images/RowerNew/bg_弹窗.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2ce53b418e1782d479cac7369d606f44
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/distance Mode_APP.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
128
Assets/Resources/Images/RowerNew/distance Mode_APP.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b0c853a585826240b234bb3117dadc7
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/icon_boat_connected.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
128
Assets/Resources/Images/RowerNew/icon_boat_connected.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee4865a1e3174c14697d14bc7d8a4e68
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/icon_boat_unconnect.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
128
Assets/Resources/Images/RowerNew/icon_boat_unconnect.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7ee0ec56dddf1d4198a4ca4a82f1f09
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/icon_down.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
128
Assets/Resources/Images/RowerNew/icon_down.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6230e2074cdc77d4898af1e1ff53d56f
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/icon_up.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
128
Assets/Resources/Images/RowerNew/icon_up.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 487459ceb092b794d891e9116e8a1332
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/img_finalline.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
128
Assets/Resources/Images/RowerNew/img_finalline.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fff964e18846daf45bb9ba6f4a105043
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/pause_ready_Eng.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
128
Assets/Resources/Images/RowerNew/pause_ready_Eng.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e7bee31c24e2b74c91c2e413aa7add3
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/time Mode_APP.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
128
Assets/Resources/Images/RowerNew/time Mode_APP.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2546193b37adb0d49bc176644bb810bd
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
BIN
Assets/Resources/Images/RowerNew/滑块.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
128
Assets/Resources/Images/RowerNew/滑块.png.meta
Normal file
@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2947d89475f332e47bad45f9428da0fb
|
||||
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
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
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:
|
||||
@ -145,6 +145,7 @@ RectTransform:
|
||||
- {fileID: 5976554196684205079}
|
||||
- {fileID: 4027836304468151454}
|
||||
- {fileID: 8382612560249065530}
|
||||
- {fileID: 5235423208383503620}
|
||||
- {fileID: 4204578097682859198}
|
||||
- {fileID: 8763288661036287962}
|
||||
m_Father: {fileID: 0}
|
||||
@ -425,7 +426,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -665,7 +666,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -752,7 +753,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 11
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -862,7 +863,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1047,7 +1048,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1228,7 +1229,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1439,7 +1440,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1535,7 +1536,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 12
|
||||
value: 13
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1650,7 +1651,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -1836,7 +1837,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -2207,7 +2208,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -2232,6 +2233,191 @@ RectTransform:
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 6911904517895256730}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &7142414989662828452
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2638424933752433027}
|
||||
m_Modifications:
|
||||
- target: {fileID: 545917028276686471, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 545917028276686471, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1123028309966834811, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Material
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2665063159965378333, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Type
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2665063159965378333, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 11
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 44
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 44
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312289, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Custom3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3150550772099312289, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8688565590564084001, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: mType
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8688565590564084001, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: Tooltips
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 6b94e789d6585a04dbdc04c8a7cf97b2, type: 3}
|
||||
--- !u!224 &5235423208383503620 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 3150550772099312288, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 7142414989662828452}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8380025607514746353
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -2388,7 +2574,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -2569,7 +2755,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
@ -2775,7 +2961,7 @@ PrefabInstance:
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5329299856310536127, guid: 6b94e789d6585a04dbdc04c8a7cf97b2,
|
||||
type: 3}
|
||||
|
||||
@ -65,10 +65,10 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_Left: 4
|
||||
m_Right: 4
|
||||
m_Top: 4
|
||||
m_Bottom: 4
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_ChildForceExpandWidth: 1
|
||||
@ -487,7 +487,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: -28, y: -28}
|
||||
m_SizeDelta: {x: -20, y: -20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5632244676682049327
|
||||
CanvasRenderer:
|
||||
@ -744,7 +744,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 236, y: 0}
|
||||
m_AnchoredPosition: {x: 240, y: 0}
|
||||
m_SizeDelta: {x: 472, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 1}
|
||||
--- !u!222 &8458141832532476108
|
||||
|
||||
1734
Assets/Resources/UI/Prefab/Panel/Mobile/RowerDevicePanel.prefab
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20c06259467430b42bf828436c62444b
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3562
Assets/Resources/UI/Prefab/Panel/Mobile/RowerTaskPanel.prefab
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57e518290b955e24a96d3195c4f916ad
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -121,92 +121,80 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!21 &775412367
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
--- !u!1 &160893775
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RoundedCornersTextureMaterial(Clone)
|
||||
m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _ColorMask: 15
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Height: 50
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _Radius: 15
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UVSec: 0
|
||||
- _UseUIAlphaClip: 0
|
||||
- _Width: 50
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _WidthHeightRadius: {r: 670, g: 241, b: 40, a: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 160893776}
|
||||
- component: {fileID: 160893778}
|
||||
- component: {fileID: 160893777}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &160893776
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 160893775}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 1678571401}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -6.4, y: 18.1}
|
||||
m_SizeDelta: {x: 88, y: 88}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &160893777
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 160893775}
|
||||
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: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 91c8ef9c118049f418b1a7012153242c, type: 3}
|
||||
m_Type: 2
|
||||
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!222 &160893778
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 160893775}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!1 &845512357
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -521,7 +509,7 @@ MonoBehaviour:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1600, y: 900}
|
||||
m_ReferenceResolution: {x: 844, y: 390}
|
||||
m_ScreenMatchMode: 1
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
@ -560,7 +548,7 @@ RectTransform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 4271835356048641966}
|
||||
- {fileID: 160893776}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@ -672,269 +660,3 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 48.593002, y: -4.8190002, z: -6.4140005}
|
||||
--- !u!21 &2111124794
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RoundedCornersTextureMaterial(Clone)
|
||||
m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _ColorMask: 15
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Height: 50
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _Radius: 15
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _UVSec: 0
|
||||
- _UseUIAlphaClip: 0
|
||||
- _Width: 50
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _WidthHeightRadius: {r: 710, g: 444, b: 60, a: 0}
|
||||
--- !u!224 &4271835356048641966 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 8458141831227192887}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8458141831227192887
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 1678571401}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4365152239144168006, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4365152239144168006, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4365152239144168006, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 20
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244675512679154, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244675679726694, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_Material
|
||||
value:
|
||||
objectReference: {fileID: 775412367}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906969, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676083906974, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MailListPanel
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5632244676926553096, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_Material
|
||||
value:
|
||||
objectReference: {fileID: 2111124794}
|
||||
- target: {fileID: 8282726145512350590, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8458141832532476110, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8458141832532476110, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8458141832532476110, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8458141832532476110, guid: 66a8d587db3c0104b934f8231a683bd3,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 315
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 66a8d587db3c0104b934f8231a683bd3, type: 3}
|
||||
|
||||
@ -191,7 +191,7 @@ namespace Assets.Scripts.Apis
|
||||
private async Task<T> ParseJsonAsync<T>(HttpResponseMessage response)
|
||||
{
|
||||
var result = await response.Content.ReadAsStringAsync();
|
||||
Console.WriteLine(result);
|
||||
//Console.WriteLine(result);
|
||||
return JsonConvert.DeserializeObject<T>(result, new JsonSerializerSettings {
|
||||
DateTimeZoneHandling = DateTimeZoneHandling.Local
|
||||
});
|
||||
|
||||
@ -29,6 +29,8 @@ namespace Assets.Scripts.Apis.Models
|
||||
public ushort StrokeCount { get; set; }
|
||||
public uint TotalDistance { get; set; }
|
||||
public int TotalTime { get; set; }
|
||||
public int? Type { get; set; }
|
||||
public double? TypeValue { get; set; }
|
||||
}
|
||||
public class RowerChartModel
|
||||
{
|
||||
@ -36,6 +38,8 @@ namespace Assets.Scripts.Apis.Models
|
||||
public ushort Pace { get; set; }
|
||||
public uint Rate { get; set; }
|
||||
public int HeartRate { get; set; }
|
||||
public int Distance { get; set; }
|
||||
public int StrokeCount { get; set; }
|
||||
}
|
||||
public class RowerResultModel
|
||||
{
|
||||
@ -61,4 +65,45 @@ namespace Assets.Scripts.Apis.Models
|
||||
public List<RowerChartModel> ChartList { get; set; }
|
||||
public string Cover { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class SegmentList
|
||||
{
|
||||
public int Ticks { get; set; }
|
||||
public int Distance { get; set; }
|
||||
public int Speed { get; set; }
|
||||
public int Power { get; set; }
|
||||
public int HeartRate { get; set; }
|
||||
public int StrokeCount { get; set; }
|
||||
public int Energy { get; set; }
|
||||
}
|
||||
|
||||
public class RowerRank
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public int Time { get; set; }
|
||||
public int TotalDistance { get; set; }
|
||||
public string NickName { get; set; }
|
||||
public string WxHeadImg { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
public bool isFinished { get; set; }
|
||||
public List<RowerChartModel> list { get; set; }
|
||||
public string Country { get; set; }
|
||||
}
|
||||
|
||||
public class Info
|
||||
{
|
||||
public string CreateTime { get; set; }
|
||||
public string MyRank { get; set; }
|
||||
public int? Type { get; set; }
|
||||
}
|
||||
|
||||
public class RowerSegmentData
|
||||
{
|
||||
public List<SegmentList> segmentList { get; set; }
|
||||
public List<RowerRank> ranks { get; set; }
|
||||
public Info info { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -32,9 +32,19 @@ namespace Assets.Scripts.Apis
|
||||
return await GetAsync<JsonResult<RowerResultModel>>($"Rower/GetDetail?Id={id}");
|
||||
}
|
||||
|
||||
public async Task<JsonResult<RowerSegmentData>> GetSegmentDataAndRanking(string id)
|
||||
{
|
||||
return await GetAsync<JsonResult<RowerSegmentData>>($"Rower/GetSegmentDataAndRanking?Id={id}");
|
||||
}
|
||||
|
||||
public async Task<JsonResult<object>> Delete(string Id)
|
||||
{
|
||||
return await PostAsync<JsonResult<object>>($"Rower/Delete",new { Id});
|
||||
}
|
||||
|
||||
public async Task<JsonResult<List<RowerRank>>> GetShadowList(RowerTaskPanel.RowerType rowerType)
|
||||
{
|
||||
return await GetAsync<JsonResult<List<RowerRank>>>($"Rower/GetShadowList?type={rowerType.type}&typeValue={rowerType.value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,12 +15,13 @@ using System.Timers;
|
||||
using Newtonsoft.Json;
|
||||
using Facebook.Unity;
|
||||
using Assets.Scenes.Ride.Scripts;
|
||||
using System.Linq;
|
||||
|
||||
public delegate void ChangeLanguageDelegate();
|
||||
|
||||
public static class App
|
||||
{
|
||||
public static string Host = "http://192.168.0.101:5083/";
|
||||
public static string Host = "http://192.168.0.101:5087/";
|
||||
|
||||
public static string AppVersion = Application.version;
|
||||
|
||||
@ -212,8 +213,10 @@ public static class App
|
||||
public static Dictionary<string, string> websiteDict = new Dictionary<string, string>()
|
||||
{
|
||||
{"https://wx.powerfun.com.cn/","http://www.powerfun.com/" },
|
||||
{"http://pf.juze.pro/","http://pfweb.juze.pro/" }
|
||||
{"http://pf.juze.pro/","http://pfweb.juze.pro/" },
|
||||
{"http://192.168.0.101:5087/","http://192.168.0.101:3081/" }
|
||||
};
|
||||
|
||||
static App()
|
||||
{
|
||||
InitLanguage();
|
||||
@ -227,10 +230,10 @@ public static class App
|
||||
//UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
|
||||
//TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
|
||||
//本地
|
||||
//Host = "http://192.168.0.101:5085/";
|
||||
//Host = "http://192.168.0.101:5087/";
|
||||
//UdpAddress = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
|
||||
//TcpAddress = new IPEndPoint(IPAddress.Parse("192.168.0.102"), 21001);
|
||||
Debug.unityLogger.logEnabled = false;
|
||||
//Debug.unityLogger.logEnabled = false;
|
||||
#else
|
||||
//Host = "http://pf.juze.pro/";
|
||||
//Host = "http://192.168.0.101:5087/";
|
||||
|
||||
@ -9,6 +9,7 @@ namespace Assets.Scripts.Devices.Ant.Interfaces
|
||||
{
|
||||
interface IRowerDevice
|
||||
{
|
||||
C2RowerData c2RowerData { get; }
|
||||
FtmsRowerData rowerData { get; }
|
||||
void Reset();
|
||||
void SetResistanceLevel(ushort v);
|
||||
|
||||
82
Assets/Scripts/Devices/Ble/Characteristic/C2RowerData.cs
Normal file
@ -0,0 +1,82 @@
|
||||
using Assets.Scripts.Ble;
|
||||
using Assets.Scripts.Devices.Ble.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
{
|
||||
public class C2RowerData : ICharacteristic, IRowerCommonData
|
||||
{
|
||||
public Guid Uuid => ServiceUuids.Characteristics.C2RowerData;
|
||||
|
||||
public Guid ServiceUuid => ServiceUuids.Characteristics.C2Service;
|
||||
|
||||
public bool IsOptional => false;
|
||||
|
||||
public static event EventHandler EnableChanged;
|
||||
private static bool? _isEnabled;
|
||||
public static bool? IsEnabled
|
||||
{
|
||||
get => _isEnabled;
|
||||
set
|
||||
{
|
||||
_isEnabled = value;
|
||||
if (EnableChanged != null)
|
||||
{
|
||||
EnableChanged(_isEnabled, new EventArgs());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//0.1 lbs of force, max=6553.5m 单位0.1磅
|
||||
public double PeakDriveForce { get; set; }
|
||||
public double AverageDriveForce { get; set; }
|
||||
|
||||
public event EventHandler PullChanged;
|
||||
private ushort _pullValue;
|
||||
public ushort PullValue
|
||||
{
|
||||
get { return _pullValue; }
|
||||
set
|
||||
{
|
||||
_pullValue = value;
|
||||
if (this.PullChanged != null)
|
||||
{
|
||||
this.PullChanged(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
}
|
||||
public void HandleAttributeReceived(byte[] data)
|
||||
{
|
||||
Debug.Log("数据" + string.Join(",", data));
|
||||
if (data[0] == 53)
|
||||
{
|
||||
PeakDriveForce = LbsToNewton(Convert.ToDouble(BitConvertHelper.ToUInt16(data, 13)) / 10);
|
||||
AverageDriveForce = LbsToNewton(Convert.ToDouble(BitConvertHelper.ToUInt16(data, 15)) / 10);
|
||||
Debug.Log($"峰力值:{PeakDriveForce} 均力值{AverageDriveForce}");
|
||||
}
|
||||
else if (data[0] == 61)
|
||||
{
|
||||
List<ushort> r = new List<ushort>();
|
||||
for (int i = 3; i < data.Length; i += 2)
|
||||
{
|
||||
ushort pull = data[i] < 10 ? (ushort)0 : Convert.ToUInt16(Math.Round(LbsToNewton(data[i])));
|
||||
r.Add(pull);
|
||||
PullValue = pull;
|
||||
}
|
||||
|
||||
Debug.Log("拉力曲线:"+ string.Join(",",r));
|
||||
}
|
||||
}
|
||||
private double LbsToNewton(double lbs) => 4.4482216 * lbs;
|
||||
public void SetUnavailable()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64ae3a6d26480b04c8fed17cc833d179
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,5 @@
|
||||
using Assets.Scripts.Ble;
|
||||
using Assets.Scripts.Devices.Ant;
|
||||
using Assets.Scripts.Devices.Ble.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -9,7 +10,7 @@ using UnityEngine;
|
||||
|
||||
namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
{
|
||||
public class FtmsRowerData : ICharacteristic
|
||||
public class FtmsRowerData : ICharacteristic, IRowerCommonData
|
||||
{
|
||||
/// <summary>
|
||||
/// 划桨频率
|
||||
@ -37,8 +38,26 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
public int InstantaneousPower { get; private set; } = 0;
|
||||
|
||||
public int AveragePower { get; private set; } = 0;
|
||||
|
||||
public int ResistanceLevel { get; private set; } = 0;
|
||||
public static event EventHandler RowerResChanged;
|
||||
private int commonRes = 50;
|
||||
private int thinkRes = 50;
|
||||
|
||||
public int ResistanceLevel
|
||||
{
|
||||
get
|
||||
{
|
||||
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected) && d.Sensor == SensorType.Rower);
|
||||
if (device == null) return 0;
|
||||
if (device.Name.Contains("Think"))
|
||||
{
|
||||
return thinkRes;
|
||||
}
|
||||
else
|
||||
{
|
||||
return commonRes;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 运行时间
|
||||
/// </summary>
|
||||
@ -49,6 +68,8 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
public int EnergyPerHour { get; private set; } = 0;
|
||||
|
||||
public int EnergyPerMinute { get; private set; } = 0;
|
||||
public double PeakDriveForce { get; set; } = 0;
|
||||
public double AverageDriveForce { get; set; } = 0;
|
||||
|
||||
public Guid Uuid => ServiceUuids.Characteristics.RowerData;
|
||||
|
||||
@ -152,7 +173,12 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
}
|
||||
if (this.Flags.HasFlag(RowerDataFlag.ResistanceLevel))
|
||||
{
|
||||
this.ResistanceLevel = BitConvertHelper.ToInt16(data, b);
|
||||
this.commonRes = BitConvertHelper.ToInt16(data, b);
|
||||
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected) && d.Sensor == SensorType.Rower);
|
||||
if (device != null && !device.Name.Contains("Think") && RowerResChanged != null)
|
||||
{
|
||||
RowerResChanged.Invoke(this.commonRes, null);
|
||||
}
|
||||
b += this.SizeOfDataForFlag(RowerDataFlag.ResistanceLevel);
|
||||
}
|
||||
if (this.Flags.HasFlag(RowerDataFlag.ExpendedEnergy))
|
||||
@ -184,6 +210,16 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
{
|
||||
b += this.SizeOfDataForFlag(RowerDataFlag.RemainingTime);
|
||||
}
|
||||
if (this.Flags.HasFlag(RowerDataFlag.ThinkDragFactor))
|
||||
{
|
||||
this.thinkRes = BitConvertHelper.ToInt16(data, b + 1);
|
||||
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected) && d.Sensor == SensorType.Rower);
|
||||
if (device != null && device.Name.Contains("Think") && RowerResChanged != null)
|
||||
{
|
||||
RowerResChanged.Invoke(this.thinkRes, null);
|
||||
}
|
||||
b += this.SizeOfDataForFlag(RowerDataFlag.ThinkDragFactor);
|
||||
}
|
||||
if (this.Flags.HasFlag(RowerDataFlag.Pull))
|
||||
{
|
||||
List<ushort> list = new List<ushort>();
|
||||
@ -194,10 +230,24 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
PullValue = val;
|
||||
|
||||
}
|
||||
if (pullList == null) pullList = new List<ushort>();
|
||||
foreach (var pull in list)
|
||||
{
|
||||
if (pull == 0)
|
||||
{
|
||||
if (pullList.Count != 0)
|
||||
{
|
||||
PeakDriveForce = pullList.Max();
|
||||
AverageDriveForce = (double)pullList.Average(x=>x);
|
||||
}
|
||||
pullList.Clear();
|
||||
}
|
||||
pullList.Add(pull);
|
||||
}
|
||||
Debug.Log("拉力:" + string.Join(",",list));
|
||||
}
|
||||
//Debug.Log("原始数据:" + string.Join(",", data));
|
||||
}
|
||||
List<ushort> pullList;
|
||||
public void Reset()
|
||||
{
|
||||
this.StrokeRate = 0;
|
||||
@ -208,7 +258,9 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
this.AveragePace = 0;
|
||||
this.InstantaneousPower = 0;
|
||||
this.AveragePower = 0;
|
||||
this.ResistanceLevel = 0;
|
||||
this.commonRes = 50;
|
||||
this.thinkRes = 50;
|
||||
//this.ResistanceLevel = 0;
|
||||
this.TotalEnergy = 0;
|
||||
this.EnergyPerHour = 0;
|
||||
this.EnergyPerMinute = 0;
|
||||
@ -258,6 +310,9 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
case RowerDataFlag.RemainingTime:
|
||||
num = 2;
|
||||
break;
|
||||
case RowerDataFlag.ThinkDragFactor:
|
||||
num = 5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -288,7 +343,9 @@ namespace Assets.Scripts.Devices.Ble.Characteristic
|
||||
//单周期能耗
|
||||
SingleEnergy = 8192,
|
||||
//拉力曲綫
|
||||
Pull = 16384
|
||||
Pull = 16384,
|
||||
//Think 阻力
|
||||
ThinkDragFactor = 32768
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
@ -16,9 +17,12 @@ namespace Assets.Scripts.Devices.Ble.Devices
|
||||
private FtmsRowerData _rowerData;
|
||||
public FtmsRowerData rowerData { get => _rowerData; }
|
||||
|
||||
|
||||
C2RowerData _c2RowerData;
|
||||
public C2RowerData c2RowerData { get => _c2RowerData; }
|
||||
private List<BleServiceInfo> Services;
|
||||
private BleCharacteristicInfo controlPointCharacteristic;
|
||||
private BleCharacteristicInfo c2Control;
|
||||
|
||||
public FtmsRower(BlePeripheralInfo peripheralInfo, IBleWinHwInterface bleWinHwInterface) :base(peripheralInfo, bleWinHwInterface, Ant.SensorType.Rower)
|
||||
{
|
||||
Debug.Log(24);
|
||||
@ -26,34 +30,50 @@ namespace Assets.Scripts.Devices.Ble.Devices
|
||||
//划船机
|
||||
this._rowerData = new FtmsRowerData();
|
||||
base.Characteristics.Add(rowerData);
|
||||
this._c2RowerData = new C2RowerData();
|
||||
base.Characteristics.Add(c2RowerData);
|
||||
bleWinHwInterface.CharacteristicReadEvent -= CharacteristicReadMainCallback;
|
||||
bleWinHwInterface.CharacteristicReadEvent += CharacteristicReadMainCallback;
|
||||
}
|
||||
|
||||
protected override void CreateServices(List<BleServiceInfo> discoveredServices)
|
||||
{
|
||||
this.Services = discoveredServices;
|
||||
|
||||
Debug.Log("服务+" + string.Join(",", Services.Select(x => x.Id.ToString())));
|
||||
foreach (var service in this.Services)
|
||||
{
|
||||
hwInterface.DiscoverCharacteristic(service, (hwInterface, service1, response) =>
|
||||
{
|
||||
|
||||
foreach (var character in response.Data)
|
||||
{
|
||||
//Debug.Log(character.Id.ToString());
|
||||
if (character.MatchGuid(ServiceUuids.Characteristics.FitnessMachineControlPoint))
|
||||
{
|
||||
Debug.Log("中控台获取");
|
||||
this.controlPointCharacteristic = character;
|
||||
}
|
||||
}
|
||||
else if (character.MatchGuid(ServiceUuids.Characteristics.RowerData))
|
||||
{
|
||||
Debug.Log("划船机");
|
||||
this.hwInterface.SubscribeCharacteristic(character, (hw, cha, res) =>
|
||||
{
|
||||
//Debug.Log("1111111111111111111111");
|
||||
//Debug.WriteLine(res.ToString());
|
||||
var res1 = (res as BleResponse<byte[]>);
|
||||
Debug.Log("收到消息划船机:" + string.Join(",", res1));
|
||||
});
|
||||
Debug.Log("ftms划船机" + service.Id);
|
||||
this.hwInterface.SubscribeCharacteristic(character, null);
|
||||
}
|
||||
else if (character.MatchGuid(ServiceUuids.Characteristics.C2RowerData))
|
||||
{
|
||||
Debug.Log("c2划船机基本数据" + service.Id);
|
||||
//C2RowerData.IsEnabled = true;
|
||||
this.hwInterface.SubscribeCharacteristic(character, null);
|
||||
}
|
||||
else if (character.MatchGuid(ServiceUuids.Characteristics.C2RowerData1))
|
||||
{
|
||||
Debug.Log("c2划船机拉力数据" + service.Id);
|
||||
//C2RowerData.IsEnabled = true;
|
||||
this.hwInterface.SubscribeCharacteristic(character, null);
|
||||
}
|
||||
else if (character.MatchGuid(ServiceUuids.Characteristics.C2RowerControl))
|
||||
{
|
||||
Debug.Log("c2划船机控制台");
|
||||
this.c2Control = character;
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -62,26 +82,87 @@ namespace Assets.Scripts.Devices.Ble.Devices
|
||||
|
||||
private void CharacteristicReadMainCallback(IBleWinHwInterface hwInterface, BleCharacteristicInfo characteristic, BleResponse<byte[]> response)
|
||||
{
|
||||
foreach (var item in base.Characteristics)
|
||||
|
||||
//var tc = base.Characteristics.SingleOrDefault(x => x.Uuid == ServiceUuids.Characteristics.C2RowerData);
|
||||
//tc.HandleAttributeReceived(new byte[] { 61, 89, 0, 0, 0, 33, 0, 33, 0, 46, 0, 46, 0, 53, 0, 60, 0, 60, 0, 68, 0, 68, 0, 0, 0 });
|
||||
//tc.HandleAttributeReceived(new byte[] { 53, 223, 211, 0, 162, 57, 0, 82, 62, 96, 0, 94, 2, 183, 3, 125, 2, 208, 7, 203, 0 });
|
||||
if (characteristic.MatchGuid(ServiceUuids.Characteristics.RowerData))
|
||||
{
|
||||
if (characteristic.MatchGuid(item.Uuid))
|
||||
{
|
||||
//Debug.Log(string.Join(",", response.Data));
|
||||
item.HandleAttributeReceived(response.Data);
|
||||
}
|
||||
var c = base.Characteristics.SingleOrDefault(x => x.Uuid == ServiceUuids.Characteristics.RowerData);
|
||||
c.HandleAttributeReceived(response.Data);
|
||||
}
|
||||
else
|
||||
{
|
||||
var c = base.Characteristics.SingleOrDefault(x => x.Uuid == ServiceUuids.Characteristics.C2RowerData);
|
||||
var data = new byte[] { characteristic.Id.ToByteArray()[0] }.Concat(response.Data).ToArray();
|
||||
c.HandleAttributeReceived(data);
|
||||
}
|
||||
//foreach (var item in base.Characteristics)
|
||||
//{
|
||||
// if (characteristic.MatchGuid(item.Uuid) || characteristic.Id == ServiceUuids.Characteristics.C2RowerData1)
|
||||
// {
|
||||
// if (item.Uuid == ServiceUuids.Characteristics.C2RowerData1)
|
||||
// {
|
||||
// Debug.Log("c2");
|
||||
// var data = new byte[] { item.Uuid.ToByteArray()[0] }.Concat(response.Data).ToArray();
|
||||
// item.HandleAttributeReceived(data);
|
||||
// }
|
||||
// else if (item.Uuid == ServiceUuids.Characteristics.RowerData)
|
||||
// {
|
||||
// Debug.Log("ftms");
|
||||
// item.HandleAttributeReceived(response.Data);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
Debug.Log("发送重置命令"+this.controlPointCharacteristic.ToString());
|
||||
hwInterface.WriteCharacteristic(this.controlPointCharacteristic, new byte[] { 0x01 });
|
||||
if (C2RowerData.IsEnabled == true)
|
||||
{
|
||||
//等对csafe协议研究透彻后写
|
||||
//if (this.c2Control != null)
|
||||
//{
|
||||
// Debug.Log("发送重置命令" + this.c2Control.ToString());
|
||||
// hwInterface.WriteCharacteristic(this.c2Control, new byte[] { 0xF1, 0x86, 0x87, 0x01, 0xF2 });
|
||||
// //hwInterface.WriteCharacteristic(this.c2Control, new byte[] { 0xF1, 0x81, 0x81, 0xF2 });
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.controlPointCharacteristic != null)
|
||||
{
|
||||
Debug.Log("发送重置命令" + this.controlPointCharacteristic.ToString());
|
||||
hwInterface.WriteCharacteristic(this.controlPointCharacteristic, new byte[] { 0x01 });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public void SetResistanceLevel(ushort v)
|
||||
{
|
||||
var r = new byte[] { 0x04 }.Concat(BitConverter.GetBytes(v)).ToArray();
|
||||
Debug.Log($"设置阻力{v}, {string.Join(",", r)}");
|
||||
hwInterface.WriteCharacteristic(this.controlPointCharacteristic, r);
|
||||
if (C2RowerData.IsEnabled == true)
|
||||
{
|
||||
//等对csafe协议研究透彻后写
|
||||
//if (this.c2Control != null)
|
||||
//{
|
||||
// var data = new byte[] { 0x29 }.Concat(BitConverter.GetBytes(v)).ToArray();
|
||||
// byte checksum = (byte)((byte)(data[0] ^ data[1]) ^ data[2]);
|
||||
// var r = new byte[] { 0xF1 }.Concat(data).Concat(new byte[] { checksum, 0xf2 }) .ToArray();
|
||||
// Debug.Log($"设置阻力{v}, {string.Join(",", r)}");
|
||||
// hwInterface.WriteCharacteristic(this.c2Control, r);
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.controlPointCharacteristic != null)
|
||||
{
|
||||
//特注:81是think专有指令,后期可能需要兼容其他设备
|
||||
var r = new byte[] { 0x81 }.Concat(BitConverter.GetBytes((ushort)(50 + v))).ToArray();
|
||||
Debug.Log($"设置阻力{v}, {string.Join(",", r)}");
|
||||
hwInterface.WriteCharacteristic(this.controlPointCharacteristic, r);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
16
Assets/Scripts/Devices/Ble/Interfaces/IRowerCommonData.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Assets.Scripts.Devices.Ble.Interfaces
|
||||
{
|
||||
interface IRowerCommonData
|
||||
{
|
||||
event EventHandler PullChanged;
|
||||
ushort PullValue { get; set; }
|
||||
double PeakDriveForce { get; set; }
|
||||
double AverageDriveForce { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b9b93075aa03cf4587d75a49b2bfaa8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -367,6 +367,15 @@ namespace Assets.Scripts.Ble
|
||||
public static Guid WahooFitnessSensorMeasurementInput = new Guid("A026E016-0A7D-4AB3-97FA-F1500F9FEB8B");
|
||||
|
||||
public static Guid RowerData = new Guid("00002AD1-0000-1000-8000-00805F9B34FB");
|
||||
|
||||
|
||||
public static Guid C2RowerControl = new Guid("ce060021-43e5-11e4-916c-0800200c9a66");
|
||||
//0x35 有峰力值和均力值
|
||||
public static Guid C2RowerData = new Guid("ce060035-43e5-11e4-916c-0800200c9a66");
|
||||
//拉力曲线
|
||||
public static Guid C2RowerData1 = new Guid("ce06003D-43e5-11e4-916c-0800200c9a66");
|
||||
public static Guid C2Service = new Guid("CE060030-43E5-11E4-916C-0800200C9A66");
|
||||
//ce060030-43e5-11e4-916c-0800200c9a66
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -230,7 +230,8 @@ namespace Assets.Scripts.Ble
|
||||
{
|
||||
callback?.Invoke(self, info, s);
|
||||
this.callbacks.Remove(info);
|
||||
Debug.Log("连接成功!");
|
||||
Debug.Log("连接成功!"+info.Name);
|
||||
Devices.Ble.Characteristic.C2RowerData.IsEnabled = info.Name.Contains("PM");
|
||||
if (this.callbacks.Any())
|
||||
{
|
||||
this.ConnectPeripheral(this.callbacks.First().Key, this.callbacks.First().Value);
|
||||
@ -373,8 +374,11 @@ namespace Assets.Scripts.Ble
|
||||
{
|
||||
this.characteristicNotificationCallbacks.Add(characteristic.Peripheral, callback);
|
||||
}
|
||||
BluetoothLEHardwareInterface.Log("SubscribeCharacteristic" + characteristic.Peripheral.Name + characteristic.Service.ToString() + characteristic.Service.ToString());
|
||||
BluetoothLEHardwareInterface.SubscribeCharacteristicWithDeviceAddress(characteristic.Peripheral.Address, characteristic.Service.ToString(), characteristic.Id.ToString(), null, (deviceAddress, characteristric, bytes) =>
|
||||
Debug.Log("SubscribeCharacteristic" + characteristic.Peripheral.Name + characteristic.Service.ToString() + characteristic.Service.ToString());
|
||||
BluetoothLEHardwareInterface.SubscribeCharacteristicWithDeviceAddress(characteristic.Peripheral.Address, characteristic.Service.ToString(), characteristic.Id.ToString(), (a,b)=>
|
||||
{
|
||||
Debug.Log("返回特征值," + a + "," + b);
|
||||
}, (deviceAddress, characteristric, bytes) =>
|
||||
{
|
||||
if (characteristicReadEvent != null)
|
||||
{
|
||||
|
||||
@ -297,13 +297,16 @@ public class MainController : BaseScene
|
||||
// UIManager.ShowHomePanel();
|
||||
//});
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
|
||||
if (!App.IsRowerMode.HasValue)
|
||||
{
|
||||
UIManager.ShowHomePanel();
|
||||
UIManager.ShowRowerSelector();
|
||||
return;
|
||||
}
|
||||
if (App.IsRowerMode == true)
|
||||
{
|
||||
UIManager.ShowHomePanel();
|
||||
UIManager.ShowRowerPanel();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
//超过一秒没有收到消息
|
||||
Console.WriteLine($"Heartbeat_Elapsed{(now - LastActiveTime).TotalSeconds}");
|
||||
//Console.WriteLine($"Heartbeat_Elapsed{(now - LastActiveTime).TotalSeconds}");
|
||||
if ((now - LastActiveTime).TotalSeconds > 1)
|
||||
{
|
||||
onlineUserHelper.SetOnlineUser(new List<ReceiveMsgModel>());
|
||||
|
||||
@ -118,7 +118,7 @@ namespace Assets.Scenes.Ride.Scripts.Network
|
||||
protected override void OnDisconnected()
|
||||
{
|
||||
//base.OnDisconnected();
|
||||
Console.WriteLine("tcp断线,3秒后重连");
|
||||
//Console.WriteLine("tcp断线,3秒后重连");
|
||||
Thread.Sleep(3000);
|
||||
|
||||
if (!_stop)
|
||||
|
||||
@ -30,13 +30,17 @@ namespace Assets.Scripts.UI.Control
|
||||
}
|
||||
|
||||
string placeHolderText;
|
||||
public Action CustomSelect = null, CustomDeSelect = null,CustomEnter = null;
|
||||
public void OnSelect(BaseEventData eventData)
|
||||
{
|
||||
if (this.gameObject.activeInHierarchy == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (CustomSelect != null)
|
||||
{
|
||||
CustomSelect.Invoke();
|
||||
}
|
||||
isSelected = true;
|
||||
//throw new NotImplementedException();
|
||||
this.mInnerInputField.OnSelect(eventData);
|
||||
@ -63,7 +67,10 @@ namespace Assets.Scripts.UI.Control
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (CustomDeSelect != null)
|
||||
{
|
||||
CustomDeSelect.Invoke();
|
||||
}
|
||||
isSelected = false;
|
||||
this.mInnerInputField.OnDeselect(eventData);
|
||||
transform.Find("Placeholder").GetComponent<Text>().text = App.GetLocalString(placeHolderText);
|
||||
@ -72,7 +79,33 @@ namespace Assets.Scripts.UI.Control
|
||||
//image.sprite = png1;
|
||||
outline.enabled = false;
|
||||
}
|
||||
|
||||
void OnEnter(BaseEventData eventData)
|
||||
{
|
||||
if (isSelected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (CustomEnter != null)
|
||||
{
|
||||
CustomEnter.Invoke();
|
||||
}
|
||||
outline.enabled = true;
|
||||
ColorUtility.TryParseHtmlString("#6E6E7D", out Color color);
|
||||
outline.effectColor = color;
|
||||
}
|
||||
private void OnExit(BaseEventData eventData)
|
||||
{
|
||||
if (isSelected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (CustomDeSelect != null)
|
||||
{
|
||||
CustomDeSelect.Invoke();
|
||||
}
|
||||
//outline = this.gameObject.AddComponent<Outline>();
|
||||
outline.enabled = false;
|
||||
}
|
||||
void Awake()
|
||||
{
|
||||
Material material = null;
|
||||
@ -95,26 +128,8 @@ namespace Assets.Scripts.UI.Control
|
||||
//UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerClick, new UnityAction<BaseEventData>(this.OnSelect));
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.Select, new UnityAction<BaseEventData>(this.OnSelect));
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.Deselect, new UnityAction<BaseEventData>(this.OnDeselect));
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerEnter, new UnityAction<BaseEventData>((e) =>
|
||||
{
|
||||
if (isSelected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
outline.enabled = true;
|
||||
ColorUtility.TryParseHtmlString("#6E6E7D", out Color color);
|
||||
outline.effectColor = color;
|
||||
}));
|
||||
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerExit, new UnityAction<BaseEventData>(e =>
|
||||
{
|
||||
if (isSelected)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//outline = this.gameObject.AddComponent<Outline>();
|
||||
outline.enabled = false;
|
||||
}));
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerEnter, new UnityAction<BaseEventData>(this.OnEnter));
|
||||
UIManager.AddEvent(this.mInnerInputField.gameObject, EventTriggerType.PointerExit, new UnityAction<BaseEventData>(OnExit));
|
||||
placeHolderText = transform.Find("Placeholder").GetComponent<Text>().text;
|
||||
}
|
||||
|
||||
|
||||
@ -1,32 +1,90 @@
|
||||
using System.Collections;
|
||||
using Assets.Scripts;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
public class PFUISlider : MonoBehaviour
|
||||
{
|
||||
private Text text;
|
||||
private Slider slider;
|
||||
public System.Func<float, float> valueHandler = (a) => a * 100;
|
||||
private List<Color> colorGradientList;
|
||||
private void Awake()
|
||||
{
|
||||
text = transform.Find("Text").GetComponent<Text>();
|
||||
slider = transform.GetComponent<Slider>();
|
||||
text.text = $"{(slider.value * 100).ToString("#0")}%";
|
||||
slider.onValueChanged.AddListener((f) =>
|
||||
//text.text = $"{(slider.value * 100).ToString("#0")}";
|
||||
//slider.onValueChanged.AddListener((f) =>
|
||||
//{
|
||||
// text.text = $"{valueHandler(f).ToString("#0")}";
|
||||
//});
|
||||
colorGradientList = SetColorGradient(new List<Color>
|
||||
{
|
||||
text.text = $"{(f * 100).ToString("#0")}%";
|
||||
Utils.HexToColorHtml("#ffffff"),
|
||||
Utils.HexToColorHtml("#27DFE3"),
|
||||
Utils.HexToColorHtml("#27E363"),
|
||||
Utils.HexToColorHtml("#E3D427"),
|
||||
Utils.HexToColorHtml("#E33B27"),
|
||||
},
|
||||
new List<int>
|
||||
{
|
||||
50,50,100,100
|
||||
});
|
||||
}
|
||||
public bool runCallback = false;
|
||||
public void SetValueChanged(System.Action<float> a)
|
||||
{
|
||||
slider = transform.GetComponent<Slider>();
|
||||
slider.onValueChanged.RemoveAllListeners();
|
||||
slider.onValueChanged.AddListener((f) =>
|
||||
{
|
||||
text.text = $"{(f * 100).ToString("#0")}%";
|
||||
var step = 1f / (colorGradientList.Count-1);
|
||||
var index = (int)Math.Round(f / step, 0);
|
||||
slider.targetGraphic.color = colorGradientList[index];
|
||||
text.text = $"{valueHandler(f).ToString("#0")}";
|
||||
a.Invoke(f);
|
||||
});
|
||||
}
|
||||
public void SetValue(float a)
|
||||
{
|
||||
print("slider值" + a);
|
||||
slider.value = a;
|
||||
}
|
||||
|
||||
public List<Color> SetColorGradient(List<Color> list, int divideCount)
|
||||
{
|
||||
var res = new List<Color>();
|
||||
for (int i = 0; i < list.Count - 1; i++)
|
||||
{
|
||||
Color c = list[i], nc = list[i + 1];
|
||||
var diff = new Tuple<float, float, float>((nc.r - c.r) / divideCount, (nc.g - c.g) / divideCount, (nc.b - c.b) / divideCount);
|
||||
for (int j = 0; j < divideCount; j++)
|
||||
{
|
||||
res.Add(new Color(c.r + diff.Item1 * j, c.g + diff.Item2 * j, c.b + diff.Item3 * j));
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public List<Color> SetColorGradient(List<Color> list, List<int> divideList)
|
||||
{
|
||||
if (list.Count != divideList.Count+1) return null;
|
||||
var res = new List<Color>();
|
||||
for (int i = 0; i < list.Count - 1; i++)
|
||||
{
|
||||
Color c = list[i], nc = list[i + 1];
|
||||
var divideCount = divideList[i];
|
||||
var diff = new Tuple<float, float, float>((nc.r - c.r) / divideCount, (nc.g - c.g) / divideCount, (nc.b - c.b) / divideCount);
|
||||
for (int j = 0; j < divideCount; j++)
|
||||
{
|
||||
res.Add(new Color(c.r + diff.Item1 * j, c.g + diff.Item2 * j, c.b + diff.Item3 * j));
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
@ -124,7 +124,7 @@ public class ActivityController : PFUIPanel
|
||||
Application.OpenURL(System.Net.WebUtility.UrlDecode(url));
|
||||
}
|
||||
|
||||
private void Share(int type,int id)
|
||||
private void Share(int type, int id)
|
||||
{
|
||||
string url = $"http://pfweb.juze.pro/Activity/LightUpChina/Share?userId={App.CurrentUser.Id}";
|
||||
if (type < 2)
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using Assets.Scripts;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@ -31,7 +32,8 @@ public class MailListController : PFUIPanel
|
||||
|
||||
private void DisplayMails(List<MailModel> list)
|
||||
{
|
||||
scroll.content.DetachChildren();
|
||||
if (list == null) return;
|
||||
scroll.content.DestroyChildren();
|
||||
if (mail != null)
|
||||
{
|
||||
foreach (var item in list)
|
||||
|
||||
@ -16,10 +16,19 @@ public class NewMainNav : MonoBehaviour
|
||||
{
|
||||
public Sprite image;
|
||||
public UnityAction action;
|
||||
public bool isAlways;
|
||||
public CustomButton(Sprite image, UnityAction action)
|
||||
{
|
||||
this.image = image;
|
||||
this.action = action;
|
||||
isAlways = true;
|
||||
}
|
||||
|
||||
public CustomButton(Sprite image, UnityAction action,bool isAlways)
|
||||
{
|
||||
this.image = image;
|
||||
this.action = action;
|
||||
isAlways = false;
|
||||
}
|
||||
}
|
||||
private GameObject exit;
|
||||
@ -28,18 +37,18 @@ public class NewMainNav : MonoBehaviour
|
||||
float delayTime = 0;
|
||||
private List<string> typeArray = new List<string>()
|
||||
{
|
||||
"Back","Exit","Home","Device","Delay","Setting","Support","Avatar","Custom","Custom2","Mail"
|
||||
"Back","Exit","Home","Device","Delay","Setting","Support","Avatar","Custom","Custom2","Mail","Custom3"
|
||||
};
|
||||
private List<int> indexs = new List<int>();
|
||||
private int? shrinkIndex = null;
|
||||
private CustomButton custom = null,custom2 = null;
|
||||
private CustomButton custom = null,custom2 = null, custom3 = null;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="indexs">仅展开显示的按钮:1:"Exit",3:"Device",4:"Delay",5:"Setting",6:"Support",7:"Avatar"</param>
|
||||
/// <param name="shrinkIndex">合上后仍显示的按钮:0:"Back",2:"Home",null:仅PF</param>
|
||||
/// <param name="custom">自定义按钮 8:c1 9:c2</param>
|
||||
public void SetButtonActive(List<int> indexs,int? shrinkIndex = null, CustomButton custom = null, CustomButton custom2 = null)
|
||||
/// <param name="custom">自定义按钮 8:c1 9:c2 11:c3</param>
|
||||
public void SetButtonActive(List<int> indexs,int? shrinkIndex = null, CustomButton custom = null, CustomButton custom2 = null,CustomButton custom3 = null)
|
||||
{
|
||||
this.indexs = indexs;
|
||||
//邮箱常驻
|
||||
@ -47,6 +56,7 @@ public class NewMainNav : MonoBehaviour
|
||||
this.shrinkIndex = shrinkIndex;
|
||||
this.custom = custom;
|
||||
this.custom2 = custom2;
|
||||
this.custom3 = custom3;
|
||||
if (custom != null)
|
||||
{
|
||||
transform.Find("Custom").GetComponent<Button>().onClick.RemoveAllListeners();
|
||||
@ -61,6 +71,13 @@ public class NewMainNav : MonoBehaviour
|
||||
transform.Find("Custom2").GetComponent<Image>().sprite = custom2.image;
|
||||
indexs.Add(9);
|
||||
}
|
||||
if (custom3 != null)
|
||||
{
|
||||
transform.Find("Custom3").GetComponent<Button>().onClick.RemoveAllListeners();
|
||||
transform.Find("Custom3").GetComponent<Button>().onClick.AddListener(custom3.action);
|
||||
transform.Find("Custom3").GetComponent<Image>().sprite = custom3.image;
|
||||
indexs.Add(11);
|
||||
}
|
||||
SetExpand(false);
|
||||
}
|
||||
|
||||
@ -98,18 +115,27 @@ public class NewMainNav : MonoBehaviour
|
||||
item.gameObject.SetActive(types.Contains(item.name));
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
item.gameObject.SetActive(item.name == "PF"|| item.name == shrinkName);
|
||||
item.gameObject.SetActive(item.name == "PF" || item.name == shrinkName);
|
||||
}
|
||||
//自定义按钮出来
|
||||
if (item.name == "Custom")
|
||||
if (item.name == "Custom" || item.name == "Custom2" || item.name == "Custom3")
|
||||
{
|
||||
item.gameObject.SetActive(custom != null && types.Contains(item.name));
|
||||
}
|
||||
else if (item.name == "Custom2")
|
||||
{
|
||||
item.gameObject.SetActive(custom2 != null && types.Contains(item.name));
|
||||
//自定义按钮出来
|
||||
CustomButton c = null;
|
||||
if (item.name == "Custom")
|
||||
{
|
||||
c = custom;
|
||||
}
|
||||
else if (item.name == "Custom2")
|
||||
{
|
||||
c = custom2;
|
||||
}
|
||||
else if (item.name == "Custom3")
|
||||
{
|
||||
c = custom3;
|
||||
}
|
||||
item.gameObject.SetActive(c != null && types.Contains(item.name) && (flag || !flag && c.isAlways));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -162,7 +188,15 @@ public class NewMainNav : MonoBehaviour
|
||||
UIManager.AddEvent(device.gameObject, EventTriggerType.PointerClick, x =>
|
||||
{
|
||||
//Debug.Log("click device");
|
||||
UIManager.ShowDevicePanel();
|
||||
if (App.IsRowerMode.HasValue && App.IsRowerMode.Value)
|
||||
{
|
||||
if (UIManager.Instance.RowerHomeScript.checkRowing()) return;
|
||||
UIManager.ShowRowerDevicePanel();
|
||||
}
|
||||
else
|
||||
{
|
||||
UIManager.ShowDevicePanel();
|
||||
}
|
||||
});
|
||||
|
||||
home = this.transform.Find("Home").gameObject;
|
||||
@ -261,7 +295,6 @@ public class NewMainNav : MonoBehaviour
|
||||
{
|
||||
if (Input.touchCount > 0)
|
||||
{
|
||||
Debug.Log(235);
|
||||
isTouch = true;
|
||||
GetComponent<CanvasGroup>().DOFade(1, 0.5f);
|
||||
}
|
||||
|
||||
@ -42,9 +42,9 @@ public class HomeController : PFUIPanel
|
||||
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
var nav = transform.Find("MainNav-mobile").GetComponent<NewMainNav>();
|
||||
nav.SetButtonActive(new List<int> { 1, 3, 4, 6 },null,new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/Rower/划船"), () =>
|
||||
nav.SetButtonActive(new List<int> { 1, 3, 4, 6 },null,new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/ICON_mode_44"), () =>
|
||||
{
|
||||
UIManager.ShowRowerPanel();
|
||||
UIManager.ShowRowerSelector();
|
||||
}));
|
||||
newNav = nav;
|
||||
UIManager.AddEvent(transform.Find("TodayData/Datas/Distance").gameObject, EventTriggerType.PointerClick, b =>
|
||||
|
||||
@ -8,6 +8,7 @@ using Assets.Scripts.Devices.Ant.Interfaces;
|
||||
using Assets.Scripts.Devices.Ble;
|
||||
using Assets.Scripts.Devices.Ble.Characteristic;
|
||||
using Assets.Scripts.Devices.Ble.Devices;
|
||||
using Assets.Scripts.Devices.Ble.Interfaces;
|
||||
using ChartAndGraph;
|
||||
using System;
|
||||
using System.Collections;
|
||||
@ -17,6 +18,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using static RowerTaskPanel;
|
||||
|
||||
public class RowerHomeScript : PFUIPanel
|
||||
{
|
||||
@ -26,6 +28,9 @@ public class RowerHomeScript : PFUIPanel
|
||||
public ushort pace { get; set; }
|
||||
public uint rate { get; set; }
|
||||
public int heartRate { get; set; }
|
||||
public int energy { get; set; }
|
||||
public int distance { get; set; }
|
||||
public int strokeCount { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 划船机数据
|
||||
@ -42,6 +47,7 @@ public class RowerHomeScript : PFUIPanel
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
Debug.Log("銷毀");
|
||||
@ -75,17 +81,17 @@ public class RowerHomeScript : PFUIPanel
|
||||
}
|
||||
}
|
||||
GameObject btnStart;
|
||||
Transform left, bottom;
|
||||
Transform left, bottom, mid;
|
||||
float timer = 1.0f;
|
||||
EventHandler PaintPullCurveDelegate;
|
||||
List<DoubleVector2> pullList = new List<DoubleVector2>();
|
||||
Dictionary<object, Sprite> spriteDict;
|
||||
public Dictionary<object, Sprite> spriteDict;
|
||||
List<string> records;
|
||||
List<TempRowerCalc> values;
|
||||
DateTime startTime,createTime;
|
||||
double Kj = 0;
|
||||
int seconds = 0;
|
||||
bool isPause = false;
|
||||
public RowerType rowerType = null;
|
||||
/// <summary>
|
||||
/// 计算停止的秒数,如果超过5秒,除了累加值都变成--,这些值记录为0,提示用户如果超过90秒,将直接保存数据
|
||||
/// 如果5-90秒有拉力,则继续滑行
|
||||
@ -93,20 +99,21 @@ public class RowerHomeScript : PFUIPanel
|
||||
/// </summary>
|
||||
int stopSeconds = 0;
|
||||
uint totalDistance = 0;
|
||||
|
||||
Transform slider;
|
||||
protected override void Start()
|
||||
{
|
||||
var nav = transform.Find("MainNav-mobile").GetComponent<NewMainNav>();
|
||||
nav.SetButtonActive(new List<int> {1,4,6 }, null, new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/Rower/骑行"), () =>
|
||||
{
|
||||
ReturnHome();
|
||||
}));
|
||||
var rect = transform.GetComponent<RectTransform>();
|
||||
rect.offsetMax = Vector2.zero;
|
||||
rect.offsetMin = Vector2.zero;
|
||||
}
|
||||
protected override void Awake()
|
||||
{
|
||||
rowerType = new RowerType();
|
||||
spriteDict = new Dictionary<object, Sprite>()
|
||||
{
|
||||
{"Start",Resources.Load<Sprite>("Images/Rower/System_play")},
|
||||
{"Untagged",Resources.Load<Sprite>("Images/Rower/System_pause")},
|
||||
{"Start",Resources.Load<Sprite>("Images/RowerNew/ICON_continue_44") },
|
||||
{"Untagged",Resources.Load<Sprite>("Images/RowerNew/ICON_pause_44")},
|
||||
{0,Resources.Load<Sprite>("Images/Rower/序列帧/划船机0001") },
|
||||
{1,Resources.Load<Sprite>("Images/Rower/序列帧/划船机0002") },
|
||||
{2,Resources.Load<Sprite>("Images/Rower/序列帧/划船机0003") },
|
||||
@ -128,30 +135,107 @@ public class RowerHomeScript : PFUIPanel
|
||||
|
||||
//mainNav.ShowExit();
|
||||
|
||||
var btnHome = transform.Find("Other/BtnHome").gameObject;
|
||||
UIManager.AddEvent(btnHome, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => ReturnHome());
|
||||
btnStart = transform.Find("Other1/BtnStart").gameObject;
|
||||
UIManager.AddEvent(btnStart, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => HandleStartOrPause());
|
||||
left = transform.Find("Left");
|
||||
bottom = transform.Find("Bottom");
|
||||
PaintPullCurveDelegate = new EventHandler(PaintPullCurve);
|
||||
transform.Find("PFUISlider").GetComponent<PFUISlider>().SetValueChanged(r =>
|
||||
left = transform.Find("Rower/Modes/Scroll/M1/Left");
|
||||
bottom = transform.Find("Rower/Bottom");
|
||||
mid = transform.Find("Rower/Modes/Scroll/M1/Mid");
|
||||
slider = transform.Find("ResBar/PFUISlider");
|
||||
UIManager.AddEvent(transform.Find("ResBar/BtnAdd").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
var v = (ushort)(r * 65535);
|
||||
if (RowerData != null)
|
||||
{
|
||||
slider.GetComponent<PFUISlider>().SetValue((RowerData.ResistanceLevel + 1 - 50) / 300f);
|
||||
}
|
||||
|
||||
});
|
||||
UIManager.AddEvent(transform.Find("ResBar/BtnSub").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
if (RowerData != null)
|
||||
{
|
||||
slider.GetComponent<PFUISlider>().SetValue((RowerData.ResistanceLevel - 1 - 50) / 300f);
|
||||
}
|
||||
|
||||
});
|
||||
slider.GetComponent<PFUISlider>().valueHandler = (a) => 50 + a * 300;
|
||||
slider.GetComponent<PFUISlider>().SetValueChanged(r =>
|
||||
{
|
||||
var v = (ushort)Math.Round((r * 300));
|
||||
print("设置阻力" + v);
|
||||
if (Rower != null)
|
||||
{
|
||||
Rower.SetResistanceLevel(v);
|
||||
//RowerData.
|
||||
}
|
||||
});
|
||||
//transform.Find("Ready/DeviceStatus").gameObject.SetActive(!flag);
|
||||
//transform.Find("Ready/DeviceStatusConnect").gameObject.SetActive(flag);
|
||||
UIManager.AddEvent(transform.Find("Ready/DeviceStatus").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
if (checkRowing()) return;
|
||||
UIManager.ShowRowerDevicePanel();
|
||||
});
|
||||
UIManager.AddEvent(transform.Find("Ready/DeviceStatusConnect").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
if (checkRowing()) return;
|
||||
UIManager.ShowRowerDevicePanel();
|
||||
});
|
||||
//手机版tab
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
var nav = transform.Find("MainNav-mobile").GetComponent<NewMainNav>();
|
||||
var c1 = new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/ICON_create_44"), () =>
|
||||
{
|
||||
//UIManager.ShowRowerWelldone("81A85D49-ACAA-C764-101A-02555E6AC81A");
|
||||
//return;
|
||||
if (checkRowing()) return;
|
||||
UIManager.ShowRowerTaskPanel(type=>
|
||||
{
|
||||
rowerType = type;
|
||||
HandleSelectType();
|
||||
});
|
||||
}, false);
|
||||
//var c2 = new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/ICON_continue_44"), () =>
|
||||
//{
|
||||
// HandleStartOrPause();
|
||||
//});
|
||||
btnStart = transform.Find("MainNav-mobile/Custom2").gameObject;
|
||||
var c3 = new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/ICON_mode_44"), () =>
|
||||
{
|
||||
ReturnHome();
|
||||
}, false);
|
||||
nav.SetButtonActive(new List<int> { 3, 7 }, null, c1, null, c3);
|
||||
newNav = nav;
|
||||
#endif
|
||||
UIManager.AddEvent(transform.Find("Stopped/Confirm/BtnSave").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
transform.Find("Stopped").gameObject.SetActive(false);
|
||||
HandleSaveDirect();
|
||||
});
|
||||
UIManager.AddEvent(transform.Find("Stopped/Confirm/BtnDrop").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
transform.Find("Stopped").gameObject.SetActive(false);
|
||||
Init();
|
||||
});
|
||||
Init();
|
||||
}
|
||||
|
||||
private void HandleSelectType()
|
||||
{
|
||||
if (Rower != null)
|
||||
{
|
||||
Rower.Reset();
|
||||
}
|
||||
//RowerPanel/Rower/Bottom/Expected/Title
|
||||
var dw = rowerType.type == 1 ? $"{rowerType.value}M" : $"{(rowerType.value / 60).ToString("#0.00")}Min";
|
||||
bottom.Find("Expected/Title").GetComponent<Text>().text = $"EST\n/ {dw}";
|
||||
Init();
|
||||
//Utils.showToast(null, "请滑动划船机并开始", isLowest: true, type: 1);
|
||||
}
|
||||
|
||||
public override void Show()
|
||||
{
|
||||
base.Show();
|
||||
var mainNav = this.transform.Find("MainNav").GetComponent<MainNav>();
|
||||
mainNav.ShowRowerTab();
|
||||
//var mainNav = this.transform.Find("MainNav").GetComponent<MainNav>();
|
||||
//mainNav.ShowRowerTab();
|
||||
|
||||
transform.MyDOFade();
|
||||
Debug.Log("140,开始扫描");
|
||||
App.MainDeviceAdapter.StartScan();
|
||||
@ -187,10 +271,16 @@ public class RowerHomeScript : PFUIPanel
|
||||
Save();
|
||||
Init();
|
||||
}
|
||||
private IRowerCommonData RowerCommonDataInstance => Rower != null ? (C2RowerData.IsEnabled == true ? (IRowerCommonData)Rower.c2RowerData : (IRowerCommonData)Rower.rowerData) : null;
|
||||
private void HandleStartOrPause()
|
||||
{
|
||||
//UIManager.ShowRowerResult();
|
||||
//return;
|
||||
if (rowerType == null)
|
||||
{
|
||||
Utils.showToast(null, "Please select the course!", isLowest: true);
|
||||
return;
|
||||
}
|
||||
if (btnStart.CompareTag("Start"))
|
||||
{
|
||||
#if !UNITY_EDITOR
|
||||
@ -202,23 +292,18 @@ public class RowerHomeScript : PFUIPanel
|
||||
#endif
|
||||
UIManager.ShowCountDownAnimation(() =>
|
||||
{
|
||||
if (RowerData != null)
|
||||
#if !UNITY_EDITOR
|
||||
if (RowerCommonDataInstance != null)
|
||||
{
|
||||
RowerData.PullChanged -= PaintPullCurveDelegate;
|
||||
RowerData.PullChanged += PaintPullCurveDelegate;
|
||||
RowerCommonDataInstance.PullChanged -= PaintPullCurve;
|
||||
RowerCommonDataInstance.PullChanged += PaintPullCurve;
|
||||
}
|
||||
if (!isPause)
|
||||
{
|
||||
startTime = UIManager.Now.GetDateTime();
|
||||
}
|
||||
TimerTicks();
|
||||
openTimer = true;
|
||||
timer = 1.0f;
|
||||
btnStart.GetComponent<Image>().sprite = spriteDict["Untagged"];
|
||||
btnStart.tag = "Untagged";
|
||||
#endif
|
||||
StartFunc();
|
||||
},
|
||||
()=>
|
||||
{
|
||||
Debug.Log(222);
|
||||
if (Rower != null && !isPause)
|
||||
{
|
||||
Rower.Reset();
|
||||
@ -251,6 +336,23 @@ public class RowerHomeScript : PFUIPanel
|
||||
//StartCoroutine();
|
||||
}
|
||||
|
||||
private void StartFunc()
|
||||
{
|
||||
if (!isPause)
|
||||
{
|
||||
startTime = UIManager.Now.GetDateTime();
|
||||
}
|
||||
if (!openTimer)
|
||||
{
|
||||
TimerTicks();
|
||||
openTimer = true;
|
||||
timer = 1.0f;
|
||||
}
|
||||
transform.Find("Ready").gameObject.SetActive(false);
|
||||
btnStart.GetComponent<Image>().sprite = spriteDict["Untagged"];
|
||||
btnStart.tag = "Untagged";
|
||||
}
|
||||
|
||||
private void Save()
|
||||
{
|
||||
createTime = UIManager.Now.GetDateTime();
|
||||
@ -285,6 +387,8 @@ public class RowerHomeScript : PFUIPanel
|
||||
model.StrokeCount = RowerData.StrokeCount;
|
||||
model.TotalTime = RowerData.ElapsedTime;
|
||||
model.TotalDistance = RowerData.TotalDistance;
|
||||
model.Type = rowerType.type == 0 ? (int?)null : rowerType.type;
|
||||
model.TypeValue = rowerType.value == 0 ? (float?)null : rowerType.value;
|
||||
var path = PFConstants.RowerRecordFolder + "/" + model.Id;
|
||||
Helper.CreateDirectoryIfNotExsit(path);
|
||||
var files = new List<string>();
|
||||
@ -295,10 +399,12 @@ public class RowerHomeScript : PFUIPanel
|
||||
{
|
||||
var stream = new StreamWriter(fs);
|
||||
stream.BaseStream.Seek(0, SeekOrigin.End);
|
||||
foreach (var item in records)
|
||||
{
|
||||
stream.Write(item + "\r\n");
|
||||
}
|
||||
print("结果数" + records.Count);
|
||||
stream.Write(string.Join("\r\n", records));
|
||||
//foreach (var item in records)
|
||||
//{
|
||||
// stream.Write(item + "\r\n");
|
||||
//}
|
||||
stream.Flush();
|
||||
stream.Close();
|
||||
files.Add(fname);
|
||||
@ -309,12 +415,9 @@ public class RowerHomeScript : PFUIPanel
|
||||
Helper.DelectDir(path);
|
||||
Debug.Log(ex.Message);
|
||||
}
|
||||
UIManager.ShowRowerWelldone(model);
|
||||
Disconnect();
|
||||
Task.Run(()=>
|
||||
{
|
||||
var res = ConfigHelper.rowerApi.Add(model, files);
|
||||
});
|
||||
var res = ConfigHelper.rowerApi.Add(model, files);
|
||||
UIManager.ShowRowerWelldone(model.Id);
|
||||
//Disconnect();
|
||||
}
|
||||
|
||||
private void Init()
|
||||
@ -327,6 +430,7 @@ public class RowerHomeScript : PFUIPanel
|
||||
{
|
||||
Rower.Reset();
|
||||
}
|
||||
GetComponent<RowerMultiModeScript>().GetShadowList(rowerType);
|
||||
btnStart.tag = "Start";
|
||||
btnStart.GetComponent<Image>().sprite = spriteDict["Start"];
|
||||
left.Find("Rower").GetComponent<Image>().sprite = spriteDict[0];
|
||||
@ -335,18 +439,21 @@ public class RowerHomeScript : PFUIPanel
|
||||
left.Find("Times/Value").GetComponent<Text>().text = "---";
|
||||
left.Find("Calories/Value").GetComponent<Text>().text = "---";
|
||||
pullList = new List<DoubleVector2>();
|
||||
transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
mid.Find("GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
openTimer = false;
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("TrueTime/Value").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("TrueTime/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("KM/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("W/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("W/AvgValue").GetComponent<Text>().text = "---";
|
||||
mid.Find("W/Value").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("W/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("500/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("500/AvgValue").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("500/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("MS/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("MS/AvgValue").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("MS/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("BPM/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("Expected/Value").GetComponent<Text>().text = "---";
|
||||
mid.Find("AvgForce/Value").GetComponent<Text>().text = "---";
|
||||
mid.Find("PeakForce/Value").GetComponent<Text>().text = "---";
|
||||
records = new List<string>();
|
||||
values = new List<TempRowerCalc>();
|
||||
Kj = 0;
|
||||
@ -355,42 +462,78 @@ public class RowerHomeScript : PFUIPanel
|
||||
totalDistance = 0;
|
||||
stopSeconds = 0;
|
||||
isPause = false;
|
||||
#if !UNITY_EDITOR
|
||||
transform.Find("Ready").gameObject.SetActive(true);
|
||||
#endif
|
||||
C2RowerData.EnableChanged -= ModeChanged;
|
||||
C2RowerData.EnableChanged += ModeChanged;
|
||||
FtmsRowerData.RowerResChanged -= ResChanged;
|
||||
FtmsRowerData.RowerResChanged += ResChanged;
|
||||
}
|
||||
|
||||
private void ModeChanged(object sender, EventArgs e)
|
||||
{
|
||||
print("增加服务"+RowerData.ResistanceLevel);
|
||||
RowerCommonDataInstance.PullChanged -= PaintPullCurve;
|
||||
RowerCommonDataInstance.PullChanged += PaintPullCurve;
|
||||
slider.GetComponent<Slider>().interactable = !(bool)sender;
|
||||
transform.Find("ResBar/BtnSub").GetComponent<Button>().interactable = !(bool)sender;
|
||||
transform.Find("ResBar/BtnAdd").GetComponent<Button>().interactable = !(bool)sender;
|
||||
}
|
||||
|
||||
private void ResChanged(object sender, EventArgs e)
|
||||
{
|
||||
print("收到阻力" + sender);
|
||||
slider.GetComponent<PFUISlider>().SetValue((Convert.ToSingle(sender) - 50) / 300f);
|
||||
}
|
||||
|
||||
public bool checkRowing()
|
||||
{
|
||||
if (seconds > 0)
|
||||
{
|
||||
Utils.showToast(null, "Please end this training.", isLowest: true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private void ReturnHome()
|
||||
{
|
||||
if (seconds > 0)
|
||||
{
|
||||
Utils.showToast(null, "Please end this training.", isLowest: true);
|
||||
return;
|
||||
}
|
||||
if (checkRowing()) return;
|
||||
Disconnect();
|
||||
UIManager.ShowHomePanel();
|
||||
UIManager.ShowRowerSelector();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
bool openTimer = false;
|
||||
double x = 0f;
|
||||
|
||||
|
||||
//List<ushort> tempList = new List<ushort>()
|
||||
//{
|
||||
// 0,1230,4,500,12,13,16,0,0,0,20,30,40,50,60,500
|
||||
//};
|
||||
//int tempx = 0;
|
||||
void TimerTicks()
|
||||
#if UNITY_EDITOR
|
||||
List<ushort> tempList = new List<ushort>()
|
||||
{
|
||||
//Debug.Log(123);
|
||||
//PaintPullCurve(tempList[(tempx++) % tempList.Count]);
|
||||
0,1230,4,500,12,13,16,0,0,0,20,30,40,50,60,500
|
||||
};
|
||||
int tempx = 0;
|
||||
#endif
|
||||
void TimerTicks()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
PaintPullCurve(tempList[(tempx++) % tempList.Count]);
|
||||
#endif
|
||||
#if !UNITY_EDITOR
|
||||
if (Rower == null)
|
||||
{
|
||||
HandleDiscardDirect();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (RowerData == null) return;
|
||||
#endif
|
||||
var heartRate = HeartRate ?? 0;
|
||||
bottom.Find("BPM/Value").GetComponent<Text>().text = heartRate.ToString();
|
||||
var distance = (int)RowerData.TotalDistance;
|
||||
var energy = RowerData.TotalEnergy;
|
||||
var strokeCount = RowerData.StrokeCount;
|
||||
TempRowerCalc tmpdata = null;
|
||||
if (totalDistance == RowerData.TotalDistance)
|
||||
{
|
||||
//判定一次停止
|
||||
@ -399,51 +542,122 @@ public class RowerHomeScript : PFUIPanel
|
||||
else
|
||||
{
|
||||
stopSeconds = 0;
|
||||
transform.Find("Stopped").gameObject.SetActive(false);
|
||||
}
|
||||
if (stopSeconds >= 91)
|
||||
//if (stopSeconds >= 91)
|
||||
//{
|
||||
// Debug.Log("保存");
|
||||
// HandleSaveDirect();
|
||||
// return;
|
||||
//}
|
||||
//else if (stopSeconds == 81)
|
||||
//{
|
||||
// Utils.showToast(null, "Record will be saved!", duration: 10, stopFunc: () => stopSeconds < 6, isLowest: true,showSeconds:true);
|
||||
// return;
|
||||
//}
|
||||
if (stopSeconds >= 2)
|
||||
{
|
||||
Debug.Log("保存");
|
||||
HandleSaveDirect();
|
||||
return;
|
||||
}
|
||||
else if (stopSeconds == 81)
|
||||
{
|
||||
Utils.showToast(null, "Record will be saved!", duration: 10, stopFunc: () => stopSeconds < 6, isLowest: true,showSeconds:true);
|
||||
return;
|
||||
}
|
||||
else if (stopSeconds >= 6)
|
||||
{
|
||||
if (stopSeconds == 6)
|
||||
transform.Find("Stopped").gameObject.SetActive(true);
|
||||
//if (stopSeconds == 6)
|
||||
//{
|
||||
// Utils.showToast(null, "Please keep rowing...", duration: 60, stopFunc: () => stopSeconds < 6, isLowest: true);
|
||||
//}
|
||||
if (rowerType.type == 2)
|
||||
{
|
||||
Utils.showToast(null, "Please keep rowing...", duration: 60, stopFunc: () => stopSeconds < 6, isLowest: true);
|
||||
var remainTime = rowerType.value - (seconds++);
|
||||
if (remainTime == 0)
|
||||
{
|
||||
HandleSaveDirect();
|
||||
return;
|
||||
}
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(remainTime).ToString();
|
||||
}
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(seconds++).ToString();
|
||||
bottom.Find("W/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("W/AvgValue").GetComponent<Text>().text = "---";
|
||||
else
|
||||
{
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(seconds++).ToString();
|
||||
}
|
||||
mid.Find("W/Value").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("W/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("500/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("500/AvgValue").GetComponent<Text>().text = "---";
|
||||
//bottom.Find("500/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("MS/Value").GetComponent<Text>().text = "---";
|
||||
bottom.Find("MS/AvgValue").GetComponent<Text>().text = "---";
|
||||
records.Add($"{RowerData.StrokeCount},{RowerData.ElapsedTime},{RowerData.TotalDistance},0,0,0,{RowerData.ResistanceLevel},{heartRate}");
|
||||
values.Add(new TempRowerCalc() { pace = 0, power = 0, rate = 0, heartRate = heartRate });
|
||||
//bottom.Find("MS/AvgValue").GetComponent<Text>().text = "---";
|
||||
bottom.Find("Expected/Value").GetComponent<Text>().text = "---";
|
||||
records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},0,0,0,{RowerData.ResistanceLevel},{heartRate},{energy}");
|
||||
tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = 0, power = 0, rate = 0, heartRate = heartRate, distance = distance, energy = energy };
|
||||
values.Add(tmpdata);
|
||||
SendDataToRace(tmpdata);
|
||||
return;
|
||||
}
|
||||
|
||||
totalDistance = RowerData.TotalDistance;
|
||||
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(seconds++).ToString();
|
||||
bottom.Find("TrueTime/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(RowerData.ElapsedTime).ToString();
|
||||
bottom.Find("KM/Value").GetComponent<Text>().text = totalDistance.ToString();
|
||||
var power = RowerData.InstantaneousPower;
|
||||
bottom.Find("W/Value").GetComponent<Text>().text = power.ToString();
|
||||
bottom.Find("W/AvgValue").GetComponent<Text>().text = RowerData.AveragePower.ToString();
|
||||
totalDistance = (uint)distance;
|
||||
|
||||
var pace = RowerData.InstantaneousPace;
|
||||
if (rowerType.type == 2)
|
||||
{
|
||||
var remainTime = rowerType.value - (seconds++);
|
||||
if (remainTime == 0)
|
||||
{
|
||||
HandleSaveDirect();
|
||||
return;
|
||||
}
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(remainTime).ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
bottom.Find("Time/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(seconds++).ToString();
|
||||
}
|
||||
//bottom.Find("TrueTime/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(RowerData.ElapsedTime).ToString();
|
||||
if (rowerType.type == 1)
|
||||
{
|
||||
var remainDistance = rowerType.value - totalDistance;
|
||||
if (remainDistance < 0)
|
||||
{
|
||||
HandleSaveDirect();
|
||||
return;
|
||||
}
|
||||
bottom.Find("KM/Value").GetComponent<Text>().text = remainDistance.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
bottom.Find("KM/Value").GetComponent<Text>().text = totalDistance.ToString();
|
||||
}
|
||||
if (pace != 0)
|
||||
{
|
||||
if (rowerType.type == 1)
|
||||
{
|
||||
//设置里程时 显示预估时间 当前时间+剩余里程/配速(转换)
|
||||
var remainDistance = rowerType.value - totalDistance;
|
||||
var time = values.Count + (remainDistance / (500f / pace));
|
||||
bottom.Find("Expected/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(time).ToString(@"hh\:mm\:ss");
|
||||
}
|
||||
else if (rowerType.type == 2)
|
||||
{
|
||||
var remainTime = rowerType.value - values.Count;
|
||||
var dis = totalDistance + (remainTime * (500f / pace));
|
||||
//设置时间时 显示预估里程 当前里程+剩余时间*配速
|
||||
bottom.Find("Expected/Value").GetComponent<Text>().text = $"{dis.ToString("#0")}M";
|
||||
}
|
||||
else
|
||||
{
|
||||
//自由滑 显示30min里程 当前里程+剩余时间*配速
|
||||
var remainTime = 30 * 60 - values.Count;
|
||||
var dis = totalDistance + (remainTime * (500f / pace));
|
||||
//设置时间时 显示预估里程 当前里程+剩余时间*配速
|
||||
bottom.Find("Expected/Value").GetComponent<Text>().text = $"{dis.ToString("#0")}M";
|
||||
}
|
||||
}
|
||||
|
||||
//RowerPanel/Rower/Bottom/Expected/Value
|
||||
var power = RowerData.InstantaneousPower;
|
||||
mid.Find("W/Value").GetComponent<Text>().text = power.ToString();
|
||||
//bottom.Find("W/AvgValue").GetComponent<Text>().text = RowerData.AveragePower.ToString();
|
||||
|
||||
bottom.Find("500/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(pace).ToString(@"mm\:ss");
|
||||
bottom.Find("500/AvgValue").GetComponent<Text>().text = TimeSpan.FromSeconds(RowerData.AveragePace).ToString(@"mm\:ss");
|
||||
//bottom.Find("500/AvgValue").GetComponent<Text>().text = TimeSpan.FromSeconds(RowerData.AveragePace).ToString(@"mm\:ss");
|
||||
var rate = RowerData.StrokeRate;
|
||||
bottom.Find("MS/Value").GetComponent<Text>().text = rate.ToString();
|
||||
bottom.Find("MS/AvgValue").GetComponent<Text>().text = RowerData.AverageStrokeRate.ToString();
|
||||
var strokeCount = RowerData.StrokeCount;
|
||||
//bottom.Find("MS/AvgValue").GetComponent<Text>().text = RowerData.AverageStrokeRate.ToString();
|
||||
//if (ushort.TryParse(left.Find("Times/Value").GetComponent<Text>().text, out ushort originStroke))
|
||||
//{
|
||||
// if (strokeCount != originStroke)
|
||||
@ -452,28 +666,52 @@ public class RowerHomeScript : PFUIPanel
|
||||
// }
|
||||
//}
|
||||
left.Find("Times/Value").GetComponent<Text>().text = strokeCount.ToString();
|
||||
left.Find("Calories/Value").GetComponent<Text>().text = RowerData.TotalEnergy.ToString();
|
||||
records.Add($"{RowerData.StrokeCount},{RowerData.ElapsedTime},{RowerData.TotalDistance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate}");
|
||||
values.Add(new TempRowerCalc() { pace = pace, power = power, rate = rate,heartRate = heartRate });
|
||||
left.Find("Calories/Value").GetComponent<Text>().text = energy.ToString();
|
||||
mid.Find("AvgForce/Value").GetComponent<Text>().text = RowerCommonDataInstance.AverageDriveForce.ToString("#0");
|
||||
mid.Find("PeakForce/Value").GetComponent<Text>().text = RowerCommonDataInstance.PeakDriveForce.ToString("#0");
|
||||
records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy}");
|
||||
print(records.Count);
|
||||
tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = pace, power = power, rate = rate, heartRate = heartRate, distance = distance, energy = energy };
|
||||
values.Add(tmpdata);
|
||||
SendDataToRace(tmpdata);
|
||||
//Debug.Log(1);
|
||||
}
|
||||
|
||||
void SendDataToRace(TempRowerCalc tmpdata)
|
||||
{
|
||||
GetComponent<RowerMultiModeScript>().HandleTimeTick(new RowerChartModel
|
||||
{
|
||||
Pace = tmpdata.pace,
|
||||
Power = tmpdata.power,
|
||||
HeartRate = tmpdata.heartRate,
|
||||
Rate = tmpdata.rate,
|
||||
Distance = tmpdata.distance,
|
||||
StrokeCount = tmpdata.strokeCount
|
||||
});
|
||||
}
|
||||
|
||||
void PaintPullCurve(object sender, EventArgs e)
|
||||
{
|
||||
var ftms = (FtmsRowerData)sender;
|
||||
var ftms = (IRowerCommonData)sender;
|
||||
//Debug.Log(ftms.PullValue);
|
||||
PaintPullCurve(ftms.PullValue);
|
||||
}
|
||||
bool isPlay = false;
|
||||
void PaintPullCurve(ushort y)
|
||||
{
|
||||
Debug.Log("收到拉力" + y);
|
||||
Debug.Log("收到拉力" + y + ","+ DateTime.Now.Ticks);
|
||||
#if !UNITY_EDITOR
|
||||
if (!openTimer)
|
||||
{
|
||||
RowerData.PullChanged -= PaintPullCurveDelegate;
|
||||
return;
|
||||
if (y > 0)
|
||||
{
|
||||
//RowerCommonDataInstance.PullChanged -= PaintPullCurve;
|
||||
//RowerCommonDataInstance.PullChanged += PaintPullCurve;
|
||||
StartFunc();
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
//if (y > 1200) y = 1200;
|
||||
@ -492,13 +730,13 @@ public class RowerHomeScript : PFUIPanel
|
||||
isPlay = true;
|
||||
x = 0;
|
||||
pullList.Add(new DoubleVector2(x, y));
|
||||
transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
mid.Find("GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
}
|
||||
else if (pullList.Count > 1)
|
||||
{
|
||||
x += 0.1;
|
||||
pullList.Add(new DoubleVector2(x, y));
|
||||
transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
mid.Find("GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
pullList.Clear();
|
||||
x = 0;
|
||||
isPlay = true;
|
||||
@ -509,7 +747,7 @@ public class RowerHomeScript : PFUIPanel
|
||||
//只有0并且两秒没拉,曲线消失
|
||||
if (stopSeconds == 1)
|
||||
{
|
||||
transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(new List<DoubleVector2>());
|
||||
mid.Find("GraphChart").GetComponent<RowerGraphChartFeed>().SetData(new List<DoubleVector2>());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -523,8 +761,7 @@ public class RowerHomeScript : PFUIPanel
|
||||
isPlay = false;
|
||||
left.Find("Rower").GetComponent<RowerAnimation>().StartAnimation();
|
||||
}
|
||||
transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
|
||||
mid.Find("GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
}
|
||||
//Debug.Log($"{x},{y}");
|
||||
//transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
|
||||
@ -539,6 +776,7 @@ public class RowerHomeScript : PFUIPanel
|
||||
// x += 0.1f;
|
||||
//}
|
||||
}
|
||||
float staticTimer = 1f;
|
||||
void Update()
|
||||
{
|
||||
if (openTimer)
|
||||
@ -550,5 +788,23 @@ public class RowerHomeScript : PFUIPanel
|
||||
timer = 1f + timer;
|
||||
}
|
||||
}
|
||||
|
||||
staticTimer -= Time.deltaTime;
|
||||
if (staticTimer <= 0)
|
||||
{
|
||||
HandleStatic();
|
||||
staticTimer += 1f;
|
||||
}
|
||||
}
|
||||
void HandleStatic()
|
||||
{
|
||||
if (transform.Find("Ready").gameObject.activeInHierarchy)
|
||||
{
|
||||
var flag = Rower != null && RowerData != null;
|
||||
transform.Find("Ready/DeviceStatus").gameObject.SetActive(!flag);
|
||||
transform.Find("Ready/Img").gameObject.SetActive(!flag);
|
||||
transform.Find("Ready/Text").gameObject.SetActive(!flag);
|
||||
transform.Find("Ready/DeviceStatusConnect").gameObject.SetActive(flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -108,7 +108,8 @@ public class RouteItem : MonoBehaviour
|
||||
{
|
||||
UIManager.AddEvent(btnDetail.gameObject, EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
UIManager.ShowRowerResult(result.Id);
|
||||
Application.OpenURL($"{App.websiteDict[App.Host]}rower/record/{result.Id}?Token={App.CurrentUser.cookie}");
|
||||
//UIManager.ShowRowerResult(result.Id);
|
||||
});
|
||||
}
|
||||
btnReRide = right.Find("BtnRide");
|
||||
|
||||
38
Assets/Scripts/UI/Prefab/Rower/RowerDevicePanel.cs
Normal file
@ -0,0 +1,38 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class RowerDevicePanel : PFUIPanel
|
||||
{
|
||||
protected override void Awake()
|
||||
{
|
||||
UIManager.AddEvent(transform.Find("Container/Tools/Back").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
Close();
|
||||
});
|
||||
}
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
float timer = 1f;
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
timer -= Time.deltaTime;
|
||||
if (timer <= 0)
|
||||
{
|
||||
if (App.MainDeviceAdapter.GetState(Assets.Scripts.Devices.ConnectionInterface.BLE) == Assets.Scripts.Devices.DeviceAdapterState.On)
|
||||
{
|
||||
transform.Find("Container/Tools/BlueTooth").GetComponent<Image>().sprite = Resources.Load<Sprite>("Images/RowerNew/ICON_bluetooth_44_on");
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.Find("Container/Tools/BlueTooth").GetComponent<Image>().sprite = Resources.Load<Sprite>("Images/RowerNew/ICON_bluetooth_44");
|
||||
}
|
||||
timer += 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/UI/Prefab/Rower/RowerDevicePanel.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 169dd57411866874882869d55e047e57
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
543
Assets/Scripts/UI/Prefab/Rower/RowerMultiModeScript.cs
Normal file
@ -0,0 +1,543 @@
|
||||
using Assets.Scripts;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using DG.Tweening;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using UnityEngine.UI;
|
||||
using Assets.Scripts.UI.Prefab.Login;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class RowerMultiModeScript : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
[SerializeField]
|
||||
GameObject rank;
|
||||
|
||||
Transform scroll,m2;
|
||||
Vector3 startPosition,boatStartPosition;
|
||||
TKPanRecognizer pan;
|
||||
|
||||
ScrollRect scrollRank;
|
||||
|
||||
Dictionary<string, Texture> caches;
|
||||
public class Trace
|
||||
{
|
||||
public int userId { get; set; }
|
||||
public Transform trace { get; set; }
|
||||
}
|
||||
|
||||
public class TraceData
|
||||
{
|
||||
public List<RowerChartModel> list { get; set; }
|
||||
public string NickName { get; set; }
|
||||
public string Avatar { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public bool isMine { get; set; }
|
||||
public int currentDistance { get; set; }
|
||||
public string Country { get; set; }
|
||||
}
|
||||
List<Trace> traceList;
|
||||
List<float> initialPosYList;
|
||||
void Awake()
|
||||
{
|
||||
scroll = transform.Find("Rower/Modes/Scroll");
|
||||
startPosition = scroll.localPosition;
|
||||
if (PlayerPrefs.GetFloat("RowerMultiModeLocationX") != 0f)
|
||||
{
|
||||
scroll.localPosition = new Vector3(PlayerPrefs.GetFloat("RowerMultiModeLocationX"), startPosition.y, startPosition.z);
|
||||
}
|
||||
AddTouchEvent();
|
||||
m2 = transform.Find("Rower/Modes/Scroll/M2");
|
||||
caches = new Dictionary<string, Texture>();
|
||||
traceList = new List<Trace>()
|
||||
{
|
||||
new Trace{ userId=0, trace=m2.Find("Track/T1") },
|
||||
new Trace{ userId=0, trace=m2.Find("Track/T2") },
|
||||
new Trace{ userId=0, trace=m2.Find("Track/T3") },
|
||||
new Trace{ userId=0, trace=m2.Find("Track/T4") },
|
||||
new Trace{ userId=0, trace=m2.Find("Track/T5") },
|
||||
};
|
||||
initialPosYList = new List<float>
|
||||
{
|
||||
m2.Find("Track/T1").localPosition.y,
|
||||
m2.Find("Track/T2").localPosition.y,
|
||||
m2.Find("Track/T3").localPosition.y,
|
||||
m2.Find("Track/T4").localPosition.y,
|
||||
m2.Find("Track/T5").localPosition.y,
|
||||
};
|
||||
scrollRank = transform.Find("Rower/Modes/Scroll/M2/Rank/Scroll View").GetComponent<ScrollRect>();
|
||||
var countryJson = Resources.Load<TextAsset>("UI/flags-mini").text;
|
||||
countryList = JsonConvert.DeserializeObject<List<CountryModel>>(countryJson);
|
||||
}
|
||||
|
||||
public void HandleTimeTick(RowerChartModel data)
|
||||
{
|
||||
currentSecond++;
|
||||
myData.list.Add(data);
|
||||
SortByCurrentDistance();
|
||||
DisplayUserRanks();
|
||||
DisplayTraces();
|
||||
}
|
||||
private void SortByCurrentDistance()
|
||||
{
|
||||
if (currentSecond >= 0)
|
||||
{
|
||||
userList.ForEach(x =>
|
||||
{
|
||||
var _list = x.list;
|
||||
var _distance = 0;
|
||||
if (_list.Count == 0)
|
||||
{
|
||||
_distance = 0;
|
||||
}
|
||||
else if (currentSecond >= _list.Count)
|
||||
{
|
||||
_distance = _list[_list.Count - 1].Distance;
|
||||
}
|
||||
else
|
||||
{
|
||||
_distance = _list[currentSecond].Distance;
|
||||
}
|
||||
x.currentDistance = _distance;
|
||||
});
|
||||
}
|
||||
userList = userList.OrderByDescending(x => x.currentDistance).ToList();
|
||||
}
|
||||
private List<TraceData> HandleData()
|
||||
{
|
||||
//仅取5个
|
||||
var mineIndex = userList.FindIndex(x => x.isMine);
|
||||
if (mineIndex < 2)
|
||||
{
|
||||
return userList.Where((x, i) => i < 5).ToList();
|
||||
}
|
||||
else if (mineIndex > userList.Count - 3)
|
||||
{
|
||||
return userList.Where((x, i) => i >= userList.Count - 5).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
return userList.Where((x, i) => i >= mineIndex - 2 && i <= mineIndex + 2).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
List<TraceData> userList;
|
||||
TraceData myData;
|
||||
List<RowerRank> shadowList;
|
||||
private async void Start()
|
||||
{
|
||||
rowerType = GetComponent<RowerHomeScript>().rowerType;
|
||||
//#if UNITY_EDITOR
|
||||
// rowerType = new RowerTaskPanel.RowerType { type = 1, value = 250 };
|
||||
//#endif
|
||||
GetShadowList(rowerType);
|
||||
}
|
||||
|
||||
public async void GetShadowList(RowerTaskPanel.RowerType rowerType)
|
||||
{
|
||||
currentSecond = -1;
|
||||
var res = await ConfigHelper.rowerApi.GetShadowList(rowerType);
|
||||
shadowList = res.data;
|
||||
var _tmpList = shadowList.Select(x => new TraceData
|
||||
{
|
||||
list = x.list,
|
||||
NickName = x.NickName,
|
||||
Avatar = x.WxHeadImg,
|
||||
UserId = x.UserId,
|
||||
isMine = false,
|
||||
currentDistance = 0,
|
||||
Country = x.Country
|
||||
}).ToList();
|
||||
|
||||
myData = new TraceData();
|
||||
myData.list = new List<RowerChartModel>();
|
||||
myData.UserId = App.CurrentUser.Id;
|
||||
myData.NickName = App.CurrentUser.Nickname;
|
||||
myData.Avatar = App.CurrentUser.WxHeadImg;
|
||||
myData.isMine = true;
|
||||
myData.Country = App.CurrentUser.Country;
|
||||
_tmpList.Add(myData);
|
||||
userList = _tmpList.OrderByDescending(x => x.currentDistance).ToList();
|
||||
DisplayUserRanks(true);
|
||||
DisplayTraces();
|
||||
}
|
||||
private void DisplayTraces()
|
||||
{
|
||||
var list = HandleData();
|
||||
//CompareTraceList(traceList, list);
|
||||
int i = 0;
|
||||
var mineData = list.FirstOrDefault(x => x.isMine);
|
||||
for (i = 0; i < list.Count;i++)
|
||||
{
|
||||
var sq = DOTween.Sequence();
|
||||
var item = traceList[i];
|
||||
var t = item.trace;
|
||||
var data = list[i];
|
||||
t.gameObject.SetActive(true);
|
||||
TweenCallback callback = () =>
|
||||
{
|
||||
Utils.DisplayImageTempDict(t.Find("Left/Avatar").GetComponent<RawImage>(), data.Avatar, caches);
|
||||
var _c = countryList.SingleOrDefault(x => x.country == data.Country);
|
||||
if (_c != null)
|
||||
{
|
||||
t.Find("Left/Avatar/Country").GetComponent<Image>().sprite = Resources.Load<Sprite>(_c.source);
|
||||
}
|
||||
t.Find("Left/NickName").GetComponent<Text>().text = data.NickName;
|
||||
|
||||
if (data.list.Count == 0)
|
||||
{
|
||||
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(0).ToString(@"mm\:ss");
|
||||
}
|
||||
else if (currentSecond >= 0 && currentSecond < data.list.Count)
|
||||
{
|
||||
var _d = data.list[currentSecond];
|
||||
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
|
||||
}
|
||||
else
|
||||
{
|
||||
var _d = data.list[data.list.Count - 1];
|
||||
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
|
||||
}
|
||||
var diff = data.currentDistance - mineData.currentDistance;
|
||||
if (diff > 0)
|
||||
{
|
||||
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("+#0M");
|
||||
}
|
||||
else if (diff == 0)
|
||||
{
|
||||
t.Find("Main/Diff").GetComponent<Text>().text = data.isMine ? "" : diff.ToString("#0M");
|
||||
}
|
||||
else
|
||||
{
|
||||
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("#0M");
|
||||
}
|
||||
if (data.isMine)
|
||||
{
|
||||
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
}
|
||||
else
|
||||
{
|
||||
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
}
|
||||
};
|
||||
if (item.userId != data.UserId)
|
||||
{
|
||||
var sq1 = DOTween.Sequence();
|
||||
var tmp = traceList[i].trace.DOLocalRotate(new Vector3(90, 0, 0), 0.3f);
|
||||
tmp.onComplete = callback;
|
||||
sq1.Append(tmp);
|
||||
sq1.Append(traceList[i].trace.DOLocalRotate(new Vector3(0, 0, 0), 0.3f));
|
||||
sq.Join(sq1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sq.AppendCallback(callback);
|
||||
}
|
||||
item.userId = data.UserId;
|
||||
|
||||
|
||||
if (currentSecond >= 0 && currentSecond < list[i].list.Count)
|
||||
{
|
||||
var _d = data.list[currentSecond];
|
||||
if (currentSecond > 0)
|
||||
{
|
||||
var _pred = data.list[currentSecond - 1];
|
||||
if (_pred.StrokeCount != _d.StrokeCount)
|
||||
{
|
||||
//上次划桨次数和这次不一样 说明需要划桨一次
|
||||
var spDict = GetComponent<RowerHomeScript>().spriteDict;
|
||||
int spDictIndex = 0;
|
||||
sq.Join(DOTween.To(() => spDictIndex, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 14, 0.3f));
|
||||
sq.AppendCallback(() =>
|
||||
{
|
||||
int spDictIndex2 = 14;
|
||||
DOTween.To(() => spDictIndex2, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 0, 0.6f);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
var width = t.Find("Main").GetComponent<RectTransform>().sizeDelta.x - t.Find("Main/Boat").GetComponent<RectTransform>().sizeDelta.x;
|
||||
var diffWidth = data.currentDistance - mineData.currentDistance + 50;
|
||||
if (diffWidth >= 0 && diffWidth <= 100)
|
||||
{
|
||||
if (data.currentDistance <= 50)
|
||||
{
|
||||
diffWidth = data.currentDistance;
|
||||
}
|
||||
else if (rowerType.type == 1 && rowerType.value - data.currentDistance <= 50)
|
||||
{
|
||||
diffWidth = 100 - ((int)rowerType.value - data.currentDistance);
|
||||
}
|
||||
var tWidth = (diffWidth / 100f) * width;
|
||||
t.Find("Main/Boat").gameObject.SetActive(true);
|
||||
//t.Find("Main/Boat").localPosition = new Vector3(25 + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
|
||||
sq.Join(t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.9f));
|
||||
}
|
||||
else
|
||||
{
|
||||
t.Find("Main/Boat").localPosition = new Vector3(-21.5f, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
|
||||
t.Find("Main/Boat").gameObject.SetActive(false);
|
||||
}
|
||||
sq.Play();
|
||||
}
|
||||
for (; i < traceList.Count; i++)
|
||||
{
|
||||
traceList[i].userId = 0;
|
||||
traceList[i].trace.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void CompareTraceList(List<Trace> traceList, List<TraceData> list)
|
||||
{
|
||||
if (traceList.Count(x => x.userId == 0) == 5) return;
|
||||
var originUserList = traceList.Select(x => x.userId).ToList();
|
||||
var newUserList = list.Select(x => x.UserId).ToList();
|
||||
if (newUserList.Count != 5)
|
||||
{
|
||||
for (int i = newUserList.Count; i < 5; i++)
|
||||
{
|
||||
newUserList.Add(0);
|
||||
}
|
||||
}
|
||||
var diffRank = new List<int?>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
int _origin = originUserList[i], _new = newUserList[i];
|
||||
if (_origin == _new)
|
||||
{
|
||||
//相等 则排名没变化
|
||||
diffRank.Add(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//不相等 分情况
|
||||
var newIndex = originUserList.FindIndex(x => x == _new);
|
||||
if (newIndex != -1)
|
||||
{
|
||||
diffRank.Add(newIndex - _origin);
|
||||
}
|
||||
else
|
||||
{
|
||||
diffRank.Add(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetRank(GameObject game, TraceData item,int i)
|
||||
{
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().text = (i + 1).ToString("00");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().text = item.NickName;
|
||||
Utils.DisplayImageTempDict(game.transform.Find("Content/Avatar").GetComponent<RawImage>(), item.Avatar, caches);
|
||||
var _c = countryList.FirstOrDefault(x => item.Country == x.country);
|
||||
if (_c != null)
|
||||
{
|
||||
game.transform.Find("Content/Country").GetComponent<Image>().sprite = Resources.Load<Sprite>(_c.source);
|
||||
}
|
||||
if (currentSecond < 0)
|
||||
{
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().text = "0M";
|
||||
game.transform.Find("Content/Power").GetComponent<Text>().text = "0W";
|
||||
}
|
||||
else if (currentSecond >= 0 && currentSecond < item.list.Count)
|
||||
{
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().text = item.list[currentSecond].Distance.ToString("#0M");
|
||||
game.transform.Find("Content/Power").GetComponent<Text>().text = item.list[currentSecond].Power.ToString("#0W");
|
||||
}
|
||||
else
|
||||
{
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().text = item.list[item.list.Count - 1].Distance.ToString("#0M");
|
||||
game.transform.Find("Content/Power").GetComponent<Text>().text = item.list[item.list.Count - 1].Power.ToString("#0W");
|
||||
}
|
||||
if (item.isMine)
|
||||
{
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
game.transform.Find("Content/Power").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
}
|
||||
else
|
||||
{
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
game.transform.Find("Content/Power").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
}
|
||||
}
|
||||
private void DisplayUserRanks(bool isRefresh = false)
|
||||
{
|
||||
if (isRefresh)
|
||||
{
|
||||
scrollRank.content.DestroyChildren();
|
||||
}
|
||||
if (scrollRank.content.childCount == 0)
|
||||
{
|
||||
for (int i = 0; i < userList.Count; i++)
|
||||
{
|
||||
var item = userList[i];
|
||||
var game = Instantiate<GameObject>(rank);
|
||||
SetRank(game, item, i);
|
||||
game.transform.SetParent(scrollRank.content);
|
||||
game.transform.localScale = Vector3.one;
|
||||
game.SetActive(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int i = 0;
|
||||
foreach (Transform t in scrollRank.content)
|
||||
{
|
||||
var item = userList[i];
|
||||
SetRank(t.gameObject, item, i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
transform.Find("Rower/Modes/Scroll/M2/Rank/MyRank").GetComponent<Text>().text = $"<color=#f93086>{userList.FindIndex(x => x.isMine) + 1}</color> / {userList.Count}";
|
||||
}
|
||||
private void AddTouchEvent()
|
||||
{
|
||||
pan = new TKPanRecognizer();
|
||||
pan.gestureRecognizedEvent += (r) =>
|
||||
{
|
||||
var startPoint = r.startPoint;
|
||||
if (((RectTransform)transform.Find("Rower/Modes")).isPointInTransfrom(startPoint))
|
||||
{
|
||||
if (scroll.localPosition.x < startPosition.x - (730 / 2)
|
||||
&& ((RectTransform)transform.Find("RankS")).isPointInTransfrom(startPoint))
|
||||
{
|
||||
return;
|
||||
}
|
||||
var offset = pan.deltaTranslation;
|
||||
scroll.localPosition += new Vector3(offset.x, 0, 0);
|
||||
}
|
||||
};
|
||||
pan.gestureCompleteEvent += (r) =>
|
||||
{
|
||||
float x = 0;
|
||||
if (scroll.localPosition.x >= startPosition.x - (730 / 2))
|
||||
{
|
||||
x = startPosition.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = startPosition.x - 730;
|
||||
}
|
||||
scroll.DOLocalMoveX(x, 0.5f);
|
||||
PlayerPrefs.SetFloat("RowerMultiModeLocationX", x);
|
||||
};
|
||||
TouchKit.addGestureRecognizer(pan);
|
||||
}
|
||||
//交换A,B索引的赛道
|
||||
void ChangeTrace(int indexA, int indexB)
|
||||
{
|
||||
if (indexA >= traceList.Count || indexB >= traceList.Count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) == 0) return;
|
||||
Trace a = traceList[indexA], b = traceList[indexB];
|
||||
//2个排名
|
||||
//先视觉交换
|
||||
float aniTime = 0.3f;
|
||||
Vector3 aloc = a.trace.localPosition;
|
||||
var sq = DOTween.Sequence();
|
||||
sq.Join(a.trace.DOLocalMoveY(b.trace.localPosition.y, aniTime));
|
||||
sq.Join(b.trace.DOLocalMoveY(aloc.y, aniTime));
|
||||
//逻辑交换
|
||||
var tmp = traceList[indexA];
|
||||
traceList[indexA] = traceList[indexB];
|
||||
traceList[indexB] = tmp;
|
||||
|
||||
var sq1 = DOTween.Sequence();
|
||||
if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) != 5) return;
|
||||
if (indexA == 1 && indexB == 2)
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (i == 4)
|
||||
{
|
||||
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[4] - 50.4f, aniTime));
|
||||
}
|
||||
else
|
||||
{
|
||||
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i + 1], aniTime));
|
||||
}
|
||||
}
|
||||
sq1.AppendCallback(() =>
|
||||
{
|
||||
traceList[4].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[0] + 49.5f, traceList[0].trace.localPosition.z);
|
||||
});
|
||||
sq1.Append(traceList[4].trace.DOLocalMoveY(initialPosYList[0], aniTime));
|
||||
sq.Append(sq1);
|
||||
sq.Play().onComplete = () =>
|
||||
{
|
||||
tmp = traceList[4];
|
||||
for (int i = 4; i >= 1; i--)
|
||||
{
|
||||
traceList[i] = traceList[i - 1];
|
||||
}
|
||||
traceList[0] = tmp;
|
||||
};
|
||||
}
|
||||
else if (indexA == 2 && indexB == 3)
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[0] + 50.4f, aniTime));
|
||||
}
|
||||
else
|
||||
{
|
||||
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i - 1], aniTime));
|
||||
}
|
||||
}
|
||||
sq1.AppendCallback(() =>
|
||||
{
|
||||
traceList[0].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[4] - 49.5f, traceList[0].trace.localPosition.z);
|
||||
});
|
||||
sq1.Append(traceList[0].trace.DOLocalMoveY(initialPosYList[4], aniTime));
|
||||
sq.Append(sq1);
|
||||
sq.Play().onComplete = () =>
|
||||
{
|
||||
tmp = traceList[0];
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
traceList[i] = traceList[i + 1];
|
||||
}
|
||||
traceList[4] = tmp;
|
||||
};
|
||||
}
|
||||
}
|
||||
float timer = 1f;
|
||||
int currentSecond = -1;
|
||||
private List<CountryModel> countryList;
|
||||
|
||||
public RowerTaskPanel.RowerType rowerType { get; private set; }
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
timer -= Time.deltaTime;
|
||||
if (timer < 0)
|
||||
{
|
||||
//var r = new System.Random();
|
||||
//int a = r.Next(1, 3);
|
||||
//print($"{a},{a+1}");
|
||||
//ChangeTrace(a, a+1);
|
||||
HandleTimeTick(new RowerChartModel()
|
||||
{
|
||||
Distance = 0,
|
||||
});
|
||||
currentSecond++;
|
||||
timer += 1f;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/UI/Prefab/Rower/RowerMultiModeScript.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee3b67ceb2893134a887a9e30922821e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
269
Assets/Scripts/UI/Prefab/Rower/RowerTaskPanel.cs
Normal file
@ -0,0 +1,269 @@
|
||||
using Assets.Scripts;
|
||||
using Assets.Scripts.UI.Control;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.UI;
|
||||
|
||||
|
||||
|
||||
public class RowerTaskPanel : PFUIPanel
|
||||
{
|
||||
public class RowerType
|
||||
{
|
||||
/// <summary>
|
||||
/// 1 里程 2 时间
|
||||
/// </summary>
|
||||
public int type { get; set; }
|
||||
/// <summary>
|
||||
/// 里程:m 时间:s
|
||||
/// </summary>
|
||||
public float value { get; set; }
|
||||
}
|
||||
Transform selector, distance, time;
|
||||
RowerType rowerType;
|
||||
|
||||
public Action<RowerType> callBack { get; set; }
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
distance = transform.Find("Main/Distance");
|
||||
time = transform.Find("Main/Time");
|
||||
rowerType = new RowerType();
|
||||
UIManager.AddEvent(transform.Find("Main/BtnGo").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
Go();
|
||||
});
|
||||
UIManager.AddEvent(transform.Find("Main/BtnCancel").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
Close();
|
||||
});
|
||||
//var bg = transform.Find("Main/Time/Inputbg").gameObject;
|
||||
//UIManager.AddEvent(bg, UnityEngine.EventSystems.EventTriggerType.PointerEnter, b =>
|
||||
// {
|
||||
// bg.GetComponent<Outline>().enabled = true;
|
||||
// bg.GetComponent<Outline>().effectColor = Utils.HexToColorHtml("#353543");
|
||||
// });
|
||||
//UIManager.AddEvent(bg, UnityEngine.EventSystems.EventTriggerType.Select, b =>
|
||||
//{
|
||||
// bg.GetComponent<Outline>().enabled = true;
|
||||
// bg.GetComponent<Outline>().effectColor = Utils.HexToColorHtml("#f93086");
|
||||
//});
|
||||
//UIManager.AddEvent(bg, UnityEngine.EventSystems.EventTriggerType.Deselect, b =>
|
||||
//{
|
||||
// bg.GetComponent<Outline>().enabled = false;
|
||||
//});
|
||||
formList = new List<object>
|
||||
{
|
||||
distance.Find("Btn500").GetComponent<Button>(),
|
||||
distance.Find("Btn2000").GetComponent<Button>(),
|
||||
distance.Find("Btn5000").GetComponent<Button>(),
|
||||
distance.Find("Btn10000").GetComponent<Button>(),
|
||||
distance.Find("Customize").GetComponent<PFUIInputField>(),
|
||||
time.Find("Btn30").GetComponent<Button>(),
|
||||
time.Find("CustomizeMin").GetComponent<PFUIInputField>(),
|
||||
time.Find("CustomizeS").GetComponent<PFUIInputField>(),
|
||||
};
|
||||
InitDistance();
|
||||
}
|
||||
public override void Show()
|
||||
{
|
||||
base.Show();
|
||||
InitAll();
|
||||
}
|
||||
private void Go()
|
||||
{
|
||||
if (rowerType.type == 0 || rowerType.value == 0)
|
||||
{
|
||||
Utils.showToast(null, "请选择课程");
|
||||
return;
|
||||
}
|
||||
if (callBack != null)
|
||||
{
|
||||
callBack.Invoke(rowerType);
|
||||
}
|
||||
Close();
|
||||
}
|
||||
|
||||
List<object> formList = null;
|
||||
private void InitDistance()
|
||||
{
|
||||
Func<Transform, float, float, float> calc = (t, a, b) => t.parent.name == "Distance" ? a : a * 60 + b;
|
||||
AddListener(formList, (t, v) =>
|
||||
{
|
||||
if (t.parent.name == "Distance")
|
||||
{
|
||||
rowerType.type = 1;
|
||||
if (float.TryParse(v, out float f))
|
||||
{
|
||||
rowerType.value = f;
|
||||
}
|
||||
else
|
||||
{
|
||||
rowerType.value = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rowerType.type = 2;
|
||||
rowerType.value = 0;
|
||||
var min = time.Find("CustomizeMin").GetComponent<InputField>().text;
|
||||
var s = time.Find("CustomizeS").GetComponent<InputField>().text;
|
||||
if (float.TryParse(min, out float a))
|
||||
{
|
||||
rowerType.value += 60 * a;
|
||||
}
|
||||
if (float.TryParse(s, out float b))
|
||||
{
|
||||
if (b < 0 || b > 59)
|
||||
{
|
||||
Utils.showToast(null, "Please enter an integer between 0-59.");
|
||||
time.Find("CustomizeS").GetComponent<InputField>().text = "";
|
||||
return;
|
||||
}
|
||||
rowerType.value += b;
|
||||
}
|
||||
}
|
||||
}, calc);
|
||||
}
|
||||
private void AddListener(IEnumerable<object> list, UnityAction<Transform,string> inputCustomAction, Func<Transform, float,float,float> calcButton = null)
|
||||
{
|
||||
var btns = list.Where(x => x is Button).Select(x => x as Button);
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (item is Button)
|
||||
{
|
||||
var btn = item as Button;
|
||||
btn.onClick.RemoveAllListeners();
|
||||
btn.onClick.AddListener(() =>
|
||||
{
|
||||
rowerType.type = btn.transform.parent.name == "Distance" ? 1 : 2;
|
||||
if (calcButton == null)
|
||||
{
|
||||
rowerType.value = float.Parse(btn.name.Replace("Btn", ""));
|
||||
}
|
||||
else
|
||||
{
|
||||
rowerType.value = calcButton.Invoke(btn.transform ,float.Parse(btn.name.Replace("Btn", "")), 0);
|
||||
}
|
||||
ClickDistanceBtn(btn, btns);
|
||||
});
|
||||
}
|
||||
else if (item is PFUIInputField)
|
||||
{
|
||||
var input = item as PFUIInputField;
|
||||
input.CustomSelect = () =>
|
||||
{
|
||||
ClickDistanceBtn(null, btns);
|
||||
rowerType.type = input.transform.parent.name == "Distance" ? 1 : 2;
|
||||
SetTextColor(input.gameObject, true);
|
||||
SetBgColor(input,2);
|
||||
};
|
||||
input.CustomDeSelect = () =>
|
||||
{
|
||||
SetTextColor(input.gameObject, false);
|
||||
SetBgColor(input, 3);
|
||||
};
|
||||
input.CustomEnter = () =>
|
||||
{
|
||||
SetBgColor(input, 1);
|
||||
};
|
||||
if (inputCustomAction != null)
|
||||
{
|
||||
input.GetComponent<InputField>().onEndEdit.RemoveAllListeners();
|
||||
input.GetComponent<InputField>().onEndEdit.AddListener((v) => inputCustomAction(input.transform, v));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<string, int> inputStatusDict = null;
|
||||
private void SetBgColor(PFUIInputField input, int v)
|
||||
{
|
||||
if (inputStatusDict == null)
|
||||
{
|
||||
inputStatusDict = new Dictionary<string, int>
|
||||
{
|
||||
{"CustomizeMin",3 },{"CustomizeS",3 }
|
||||
};
|
||||
}
|
||||
if (!inputStatusDict.ContainsKey(input.name)) return;
|
||||
//只要有一个select,enter 常亮 两个都exit,deselect 关掉
|
||||
inputStatusDict[input.name] = v;
|
||||
var bg = transform.Find("Main/Time/Inputbg").gameObject;
|
||||
if (inputStatusDict.Count(x=>x.Value == 1) > 0)
|
||||
{
|
||||
bg.GetComponent<Outline>().enabled = true;
|
||||
bg.GetComponent<Outline>().effectColor = Utils.HexToColorHtml("#6E6E7D");
|
||||
}
|
||||
else if (inputStatusDict.Count(x => x.Value == 2) > 0)
|
||||
{
|
||||
bg.GetComponent<Outline>().enabled = true;
|
||||
bg.GetComponent<Outline>().effectColor = Utils.HexToColorHtml("#f93086");
|
||||
}
|
||||
else if(inputStatusDict.Count(x => x.Value == 3) == 2)
|
||||
{
|
||||
bg.GetComponent<Outline>().enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void InitAll()
|
||||
{
|
||||
foreach (var item in formList)
|
||||
{
|
||||
if (item is Button)
|
||||
{
|
||||
SetButtonColor(item as Button, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
var i = item as PFUIInputField;
|
||||
i.Text = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
private void ClickDistanceBtn(Button btn, IEnumerable<Button> list)
|
||||
{
|
||||
foreach (var item in list)
|
||||
{
|
||||
SetButtonColor(item, false);
|
||||
}
|
||||
if (btn)
|
||||
{
|
||||
SetButtonColor(btn, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetButtonColor(Button btn, bool flag)
|
||||
{
|
||||
SetTextColor(btn.gameObject, flag);
|
||||
btn.gameObject.GetComponent<Image>().color = flag ? Utils.HexToColorHtml("#f93086") : Utils.HexToColorHtml("#23232d");
|
||||
}
|
||||
|
||||
private void SetTextColor(GameObject btn, bool flag)
|
||||
{
|
||||
if (btn.transform.Find("t1"))
|
||||
{
|
||||
btn.transform.Find("t1").GetComponent<Text>().color = flag ? Utils.HexToColorHtml("#ffffff") : Utils.HexToColorHtml("#9E9EAD");
|
||||
}
|
||||
|
||||
if (btn.transform.Find("t2"))
|
||||
{
|
||||
btn.transform.Find("t2").GetComponent<Text>().color = flag ? Utils.HexToColorHtml("#ffffff") : Utils.HexToColorHtml("#9E9EAD");
|
||||
}
|
||||
}
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/UI/Prefab/Rower/RowerTaskPanel.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 11dfa3e099daeb942b6e8e105572548c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,5 @@
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using Assets.Scripts;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@ -7,45 +8,131 @@ using UnityEngine.UI;
|
||||
|
||||
public class RowerWelldone : PFUIPanel
|
||||
{
|
||||
[SerializeField]
|
||||
GameObject AllRecord, Record,Rank;
|
||||
Dictionary<string, Texture> caches;
|
||||
Transform rankContent, gradeContent;
|
||||
|
||||
public string id { get; private set; }
|
||||
|
||||
public override void Show()
|
||||
{
|
||||
base.Show();
|
||||
Debug.Log("well done show");
|
||||
}
|
||||
// Start is called before the first frame update
|
||||
protected override void Awake()
|
||||
{
|
||||
caches = new Dictionary<string, Texture>();
|
||||
rankContent = transform.Find("Container/Left/Scroll View").GetComponent<ScrollRect>().content;
|
||||
gradeContent = transform.Find("Container/Right/Scroll View").GetComponent<ScrollRect>().content;
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
UIManager.AddEvent(transform.Find("BtnDefine").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
UIManager.AddEvent(transform.Find("Container/BtnDefine").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
startTime = false;
|
||||
Close();
|
||||
UIManager.ShowHomePanel();
|
||||
UIManager.ShowUserInfoPanel();
|
||||
//UIManager.ShowHomePanel();
|
||||
//UIManager.ShowUserInfoPanel();
|
||||
});
|
||||
UIManager.AddEvent(transform.Find("Container/BtnView").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
{
|
||||
Close();
|
||||
Application.OpenURL($"{App.websiteDict[App.Host]}rower/record/{id}?Token={App.CurrentUser.cookie}");
|
||||
});
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
if (startTime)
|
||||
{
|
||||
timer -= Time.deltaTime;
|
||||
if (timer <= 0)
|
||||
{
|
||||
remainTime--;
|
||||
if (remainTime == 0)
|
||||
{
|
||||
startTime = false;
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
transform.Find("Container/BtnDefine/Text").GetComponent<Text>().text = $"{"DEFINE"}({remainTime.ToString("#0")})";
|
||||
timer += 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
RowerRecordModel model;
|
||||
public void Initial(RowerRecordModel model)
|
||||
|
||||
float timer = 1f, remainTime = 10f;
|
||||
bool startTime = false;
|
||||
public async void Initial(string id)
|
||||
{
|
||||
Debug.Log("Initial");
|
||||
if (model == null) return;
|
||||
this.model = model;
|
||||
transform.Find("Time/Value1").GetComponent<Text>().text = model.CreateTime.ToLocalTime().ToString("yyyy-MM-dd");
|
||||
transform.Find("Time/Value2").GetComponent<Text>().text = model.CreateTime.ToLocalTime().ToString("HH:mm:ss");
|
||||
transform.Find("RowingTime/Value").GetComponent<Text>().text = TimeSpan.FromSeconds(model.TotalTime).ToString();
|
||||
transform.Find("Distance/Value").GetComponent<Text>().text = $"{model.TotalDistance.ToString()}M";
|
||||
var datas = transform.Find("Other/Datas");
|
||||
datas.Find("AvgRate/Value").GetComponent<Text>().text = $"{model.AvgRate.ToString("#0")}";
|
||||
datas.Find("MaxRate/Value").GetComponent<Text>().text = $"{model.MaxRate.ToString()}";
|
||||
datas.Find("AvgPower/Value").GetComponent<Text>().text = $"{model.AvgPower.ToString("#0")}";
|
||||
datas.Find("MaxPower/Value").GetComponent<Text>().text = $"{model.MaxPower.ToString()}";
|
||||
datas.Find("MaxPace/Value").GetComponent<Text>().text = $"{TimeSpan.FromSeconds(model.MaxPace).ToString(@"mm\:ss")}";
|
||||
datas.Find("AvgPace/Value").GetComponent<Text>().text = $"{TimeSpan.FromSeconds(model.AvgPace).ToString(@"mm\:ss")}";
|
||||
datas.Find("Calories/Value").GetComponent<Text>().text = $"{(model.Kj ?? 0).ToString("#0")}";
|
||||
datas.Find("StrokeCount/Value").GetComponent<Text>().text = $"{model.StrokeCount}";
|
||||
if (string.IsNullOrEmpty(id)) return;
|
||||
this.id = id;
|
||||
var res = await ConfigHelper.rowerApi.GetSegmentDataAndRanking(id);
|
||||
if (res.result)
|
||||
{
|
||||
DisplayData(res.data, caches);
|
||||
startTime = true;
|
||||
remainTime = 10f;
|
||||
timer = 1f;
|
||||
transform.Find("Container/BtnDefine/Text").GetComponent<Text>().text = $"{"DEFINE"}({remainTime.ToString("#0")})";
|
||||
}
|
||||
}
|
||||
|
||||
private void DisplayData(RowerSegmentData data, Dictionary<string, Texture> caches)
|
||||
{
|
||||
rankContent.DestroyChildren();
|
||||
gradeContent.DestroyChildren();
|
||||
for (int i = 0; i < data.ranks.Count; i++)
|
||||
{
|
||||
var item = data.ranks[i];
|
||||
var game = Instantiate<GameObject>(Rank);
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().text = (i + 1).ToString("00");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().text = item.NickName;
|
||||
Utils.DisplayImageTempDict(game.transform.Find("Content/Avatar").GetComponent<RawImage>(), item.WxHeadImg, caches);
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().text = data.info.Type == 1 ? TimeSpan.FromSeconds(item.Time).ToString() : item.TotalDistance.ToString("#0M");
|
||||
game.transform.SetParent(rankContent);
|
||||
game.transform.localScale = Vector3.one;
|
||||
game.SetActive(true);
|
||||
if (item.UserId == App.CurrentUser.Id)
|
||||
{
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
|
||||
}
|
||||
else
|
||||
{
|
||||
game.transform.Find("Content/Rank").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
game.transform.Find("Content/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
game.transform.Find("Content/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < data.segmentList.Count; i++)
|
||||
{
|
||||
var item = data.segmentList[i];
|
||||
var game = i == 0 ? Instantiate<GameObject>(AllRecord) : Instantiate<GameObject>(Record);
|
||||
var content = i != 0 ? game.transform.Find("Content") : game.transform;
|
||||
content.Find("Index").GetComponent<Text>().text = i == 0 ? "ALL" : i.ToString("00");
|
||||
content.Find("Time").GetComponent<Text>().text = TimeSpan.FromSeconds(item.Ticks).ToString();
|
||||
content.Find("Distance").GetComponent<Text>().text = item.Distance.ToString("#0");
|
||||
content.Find("500").GetComponent<Text>().text = TimeSpan.FromSeconds(item.Speed).ToString();
|
||||
content.Find("Power").GetComponent<Text>().text = item.Power.ToString("#0");
|
||||
content.Find("HR").GetComponent<Text>().text = item.HeartRate.ToString("#0");
|
||||
content.Find("Count").GetComponent<Text>().text = item.StrokeCount.ToString("#0");
|
||||
content.Find("Carlories").GetComponent<Text>().text = item.Energy.ToString("#0");
|
||||
//game.transform.Find("Content/Rank").GetComponent<Text>().text = (i + 1).ToString("00");
|
||||
//game.transform.Find("Content/NickName").GetComponent<Text>().text = item.NickName;
|
||||
//Utils.DisplayImageTempDict(game.transform.Find("Content/Avatar").GetComponent<RawImage>(), item.WxHeadImg, caches);
|
||||
//game.transform.Find("Content/Time").GetComponent<Text>().text = data.info.Type == 1 ? TimeSpan.FromSeconds(item.Time).ToString() : item.TotalDistance.ToString("#0");
|
||||
game.transform.SetParent(gradeContent);
|
||||
game.transform.localScale = Vector3.one;
|
||||
game.SetActive(true);
|
||||
}
|
||||
transform.Find("Container/Left/MyRank").GetComponent<Text>().text = data.info.MyRank;
|
||||
transform.Find("Container/Right/Time").GetComponent<Text>().text = data.info.CreateTime;
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,6 +277,8 @@ public class UIManager : MonoBehaviour
|
||||
// App.MainDeviceAdapter.StartScan();
|
||||
//#endif
|
||||
stack.Clear();
|
||||
UIManager.Instance.MainPanel.GetComponent<Image>().sprite =
|
||||
Resources.Load<Sprite>("Images/RowerNew/bg_huachuanji");
|
||||
UIManager.Show(UIManager.Instance.RowerHomeScript, UIManager.Instance.MainPanel);
|
||||
}
|
||||
//结束页
|
||||
@ -288,13 +290,13 @@ public class UIManager : MonoBehaviour
|
||||
return this.GetPanelInstance("RowerWelldone", ref this.mRowerWelldone);
|
||||
}
|
||||
}
|
||||
public static void ShowRowerWelldone(RowerRecordModel model)
|
||||
public static void ShowRowerWelldone(string id)
|
||||
{
|
||||
Debug.Log("進入welldone");
|
||||
UIManager.Show(UIManager.Instance.RowerWelldone, null, true);
|
||||
if (UIManager.Instance.RowerWelldone)
|
||||
{
|
||||
UIManager.Instance.RowerWelldone.Initial(model);
|
||||
UIManager.Instance.RowerWelldone.Initial(id);
|
||||
}
|
||||
}
|
||||
//结果页
|
||||
@ -328,6 +330,34 @@ public class UIManager : MonoBehaviour
|
||||
UIManager.Show(UIManager.Instance.RowerSelector, null, true);
|
||||
}
|
||||
/*划船机页面*/
|
||||
#region 新版划船机页面
|
||||
private RowerDevicePanel mRowerDevicePanel;
|
||||
public RowerDevicePanel RowerDevicePanel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetPanelInstance("RowerDevicePanel", ref this.mRowerDevicePanel);
|
||||
}
|
||||
}
|
||||
public static void ShowRowerDevicePanel()
|
||||
{
|
||||
UIManager.Show(UIManager.Instance.RowerDevicePanel, null, true);
|
||||
}
|
||||
|
||||
private RowerTaskPanel mRowerTaskPanel;
|
||||
public RowerTaskPanel RowerTaskPanel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetPanelInstance("RowerTaskPanel", ref this.mRowerTaskPanel);
|
||||
}
|
||||
}
|
||||
public static void ShowRowerTaskPanel(Action<RowerTaskPanel.RowerType> callBack)
|
||||
{
|
||||
UIManager.Instance.RowerTaskPanel.callBack = callBack;
|
||||
UIManager.Show(UIManager.Instance.RowerTaskPanel, null, true);
|
||||
}
|
||||
#endregion
|
||||
#region 新版路线页面
|
||||
private NewRouteOverviewController mNewRouteOverviewController;
|
||||
public NewRouteOverviewController NewRouteOverviewPanel
|
||||
@ -698,6 +728,7 @@ public class UIManager : MonoBehaviour
|
||||
private static PFUIPanel currentPanel = null;
|
||||
public static void Show(PFUIPanel panelToShow, PFUIPanel parent = null, bool modal = false)
|
||||
{
|
||||
Debug.Log($"show :{panelToShow.name}");
|
||||
if (UIManager.Instance == null || panelToShow == null)
|
||||
{
|
||||
return;
|
||||
|
||||