feat: 完成设备置顶、重命名、分享功能迭代
本次提交包含以下核心更新: 1. 新增设备置顶功能,支持将设备在列表中优先展示 2. 实现设备重命名、分享、取消共享功能 3. 优化首页设备列表滑动交互,重构设备项UI菜单逻辑 4. 新增is_top设备字段并完善设备列表排序逻辑 5. 调整部分UI布局与服务器接口地址 6. 补充多语言文案与新增提示文本 7. 修复绑定设备错误提示适配逻辑
@ -336,8 +336,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "100068",
|
"key": "100068",
|
||||||
"zh": "蓝牙连接失败",
|
"zh": "设备绑定失败",
|
||||||
"en": "Bluetooth connection failed"
|
"en": "Device binding failed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "100069",
|
"key": "100069",
|
||||||
@ -347,7 +347,7 @@
|
|||||||
{
|
{
|
||||||
"key": "100070",
|
"key": "100070",
|
||||||
"zh": "该设备已绑定至其他账号,无法重复绑定",
|
"zh": "该设备已绑定至其他账号,无法重复绑定",
|
||||||
"en": "This device is already linked to another account and cannot be re-linked."
|
"en": "This device is already bound to another account and cannot be re-bound."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "100071",
|
"key": "100071",
|
||||||
@ -1623,6 +1623,36 @@
|
|||||||
"key": "100325",
|
"key": "100325",
|
||||||
"zh": "请将手指放置于设备指纹识别区域",
|
"zh": "请将手指放置于设备指纹识别区域",
|
||||||
"en": "Place your finger on the device fingerprint sensor"
|
"en": "Place your finger on the device fingerprint sensor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100326",
|
||||||
|
"zh": "重命名",
|
||||||
|
"en": "Rename"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100327",
|
||||||
|
"zh": "分享",
|
||||||
|
"en": "Share"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100328",
|
||||||
|
"zh": "删除",
|
||||||
|
"en": "Delete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100329",
|
||||||
|
"zh": "置顶",
|
||||||
|
"en": "Pin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100330",
|
||||||
|
"zh": "取消置顶",
|
||||||
|
"en": "Unpin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100331",
|
||||||
|
"zh": "设备未录入",
|
||||||
|
"en": "Device not enrolled"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
Assets/Res/ui/common/texture/选中条.png
Normal file
|
After Width: | Height: | Size: 257 B |
127
Assets/Res/ui/common/texture/选中条.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 926e9eea4b7bd4749bf80e2d44578723
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -451,7 +451,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 30, y: -194.7}
|
m_AnchoredPosition: {x: 30, y: -194.7}
|
||||||
m_SizeDelta: {x: 300, y: 30}
|
m_SizeDelta: {x: 700, y: 30}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!222 &8340398492869491780
|
--- !u!222 &8340398492869491780
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|||||||
@ -2714,7 +2714,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 30, y: -195}
|
m_AnchoredPosition: {x: 30, y: -195}
|
||||||
m_SizeDelta: {x: 300, y: 30}
|
m_SizeDelta: {x: 700, y: 30}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!222 &7645982901015283803
|
--- !u!222 &7645982901015283803
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|||||||
BIN
Assets/Res/ui/homepage/texture/滑动菜单按钮.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
127
Assets/Res/ui/homepage/texture/滑动菜单按钮.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 65753048ee69962498a0ffb76fa39d7d
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/texture/置顶 1.png
Normal file
|
After Width: | Height: | Size: 672 B |
127
Assets/Res/ui/homepage/texture/置顶 1.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ad79445c7db4fdd4d9621bbc5cf9a673
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.0 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ac5f6bcc90dd5e44197b25b564cdc1ca
|
guid: 9cb90b79666a1f4439e7dc9b3d32ef6f
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
|
|||||||
8
Assets/Res/ui/homepage/菜单图.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0b671cff2ca7f148a5a7211d1cbcc41
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/菜单图/分享.png
Normal file
|
After Width: | Height: | Size: 956 B |
127
Assets/Res/ui/homepage/菜单图/分享.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1197402f56a50ba4c8dba1099ddd7ad5
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/菜单图/删除.png
Normal file
|
After Width: | Height: | Size: 862 B |
127
Assets/Res/ui/homepage/菜单图/删除.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 427ab269b614d734b9a13b33e6f99c7d
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/菜单图/取消置顶.png
Normal file
|
After Width: | Height: | Size: 641 B |
127
Assets/Res/ui/homepage/菜单图/取消置顶.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c67a76187877d574697fc512a9347d1e
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/菜单图/编辑.png
Normal file
|
After Width: | Height: | Size: 702 B |
127
Assets/Res/ui/homepage/菜单图/编辑.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 11b6abc19a2f2dc48b3d52f80c984460
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Res/ui/homepage/菜单图/置顶.png
Normal file
|
After Width: | Height: | Size: 460 B |
127
Assets/Res/ui/homepage/菜单图/置顶.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fa1d0be7a6f44ea4aaca6a7a47b98cd6
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -4352,7 +4352,7 @@ MonoBehaviour:
|
|||||||
m_Left: 0
|
m_Left: 0
|
||||||
m_Right: 0
|
m_Right: 0
|
||||||
m_Top: 0
|
m_Top: 0
|
||||||
m_Bottom: 0
|
m_Bottom: 50
|
||||||
m_ChildAlignment: 1
|
m_ChildAlignment: 1
|
||||||
m_Spacing: 35
|
m_Spacing: 35
|
||||||
m_ChildForceExpandWidth: 1
|
m_ChildForceExpandWidth: 1
|
||||||
|
|||||||
@ -484,7 +484,7 @@ MonoBehaviour:
|
|||||||
serverBaseUrls:
|
serverBaseUrls:
|
||||||
- https://nextreal.cn/photon-matrix-api
|
- https://nextreal.cn/photon-matrix-api
|
||||||
- https://api.photonmatrixlab.com
|
- https://api.photonmatrixlab.com
|
||||||
serverBaseUrl: https://api.photonmatrixlab.com
|
serverBaseUrl: https://nextreal.cn/photon-matrix-api
|
||||||
enableServerBackdoor: 1
|
enableServerBackdoor: 1
|
||||||
backdoorTapCount: 15
|
backdoorTapCount: 15
|
||||||
backdoorTapInterval: 1
|
backdoorTapInterval: 1
|
||||||
@ -529,6 +529,7 @@ MonoBehaviour:
|
|||||||
owner_name:
|
owner_name:
|
||||||
owner_username:
|
owner_username:
|
||||||
share_time:
|
share_time:
|
||||||
|
is_top: 0
|
||||||
OwnedDevices: []
|
OwnedDevices: []
|
||||||
SharedDevices: []
|
SharedDevices: []
|
||||||
isOwner: 0
|
isOwner: 0
|
||||||
|
|||||||
@ -281,6 +281,7 @@ namespace Kill.Managers
|
|||||||
public string owner_name;
|
public string owner_name;
|
||||||
public string owner_username;
|
public string owner_username;
|
||||||
public string share_time;
|
public string share_time;
|
||||||
|
public bool is_top;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -711,7 +711,12 @@ public class ConnectDevicePageCtrl : MonoBehaviour
|
|||||||
onError: (code,message) =>
|
onError: (code,message) =>
|
||||||
{
|
{
|
||||||
Debug.Log($"绑定设备失败:{code},{message}");
|
Debug.Log($"绑定设备失败:{code},{message}");
|
||||||
errorTip = "100070";
|
if(code==404)
|
||||||
|
{
|
||||||
|
errorTip="100331";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
errorTip = "100070";
|
||||||
ShowErrorPage();
|
ShowErrorPage();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@ -23,17 +23,20 @@ namespace Kill.UI.Pages
|
|||||||
private string currentName;
|
private string currentName;
|
||||||
private Action<string> onConfirmCallback;
|
private Action<string> onConfirmCallback;
|
||||||
private int type = 0;//0设备重命名 1用户名重命名
|
private int type = 0;//0设备重命名 1用户名重命名
|
||||||
|
private string deviceMac;// 待重命名设备的蓝牙MAC(为空时取当前选中设备)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化页面
|
/// 初始化页面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="deviceName">当前名称</param>
|
/// <param name="deviceName">当前名称</param>
|
||||||
/// <param name="onConfirm">确认回调,返回名称</param>
|
/// <param name="onConfirm">确认回调,返回名称</param>
|
||||||
/// <param name="type">类型 0 重命名设备 1 用户名重命名</param>
|
/// <param name="type">类型 0 重命名设备 1 用户名重命名</param>
|
||||||
public void Init(string name, Action<string> onConfirm, int type = 0)
|
/// <param name="deviceMac">设备蓝牙MAC(重命名非选中设备时传入)</param>
|
||||||
|
public void Init(string name, Action<string> onConfirm, int type = 0, string deviceMac = null)
|
||||||
{
|
{
|
||||||
currentName = name;
|
currentName = name;
|
||||||
onConfirmCallback = onConfirm;
|
onConfirmCallback = onConfirm;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.deviceMac = deviceMac;
|
||||||
|
|
||||||
// 初始化输入框
|
// 初始化输入框
|
||||||
if (nameInput != null)
|
if (nameInput != null)
|
||||||
@ -94,7 +97,9 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
device_name = newName,
|
device_name = newName,
|
||||||
user_id = DataManager.Instance.userInfo.id,
|
user_id = DataManager.Instance.userInfo.id,
|
||||||
device_sn = DataManager.Instance.selectedDevice.ble_mac
|
device_sn = string.IsNullOrEmpty(deviceMac)
|
||||||
|
? DataManager.Instance.selectedDevice.ble_mac
|
||||||
|
: deviceMac
|
||||||
};
|
};
|
||||||
|
|
||||||
// 发送PUT请求
|
// 发送PUT请求
|
||||||
|
|||||||
@ -15,6 +15,20 @@ namespace Kill.UI.Pages
|
|||||||
public Button shareButton;
|
public Button shareButton;
|
||||||
public ScanQRcode scanQRcode;
|
public ScanQRcode scanQRcode;
|
||||||
public Button backButton;
|
public Button backButton;
|
||||||
|
/// <summary>待分享设备的蓝牙MAC(为空时取当前选中设备)</summary>
|
||||||
|
private string deviceMac;
|
||||||
|
/// <summary>关闭页面时的回调(用于恢复上层页面的返回事件)</summary>
|
||||||
|
private Action onCloseAction;
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="deviceMac">设备蓝牙MAC(分享非选中设备时传入)</param>
|
||||||
|
/// <param name="onClose">关闭页面回调</param>
|
||||||
|
public void Init(string deviceMac = null, Action onClose = null)
|
||||||
|
{
|
||||||
|
this.deviceMac = deviceMac;
|
||||||
|
this.onCloseAction = onClose;
|
||||||
|
}
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
UIManager.Instance.RegisterBackAction(Back);
|
UIManager.Instance.RegisterBackAction(Back);
|
||||||
@ -39,8 +53,23 @@ namespace Kill.UI.Pages
|
|||||||
}
|
}
|
||||||
public void Back()
|
public void Back()
|
||||||
{
|
{
|
||||||
|
if (onCloseAction != null)
|
||||||
UIManager.Instance.RegisterBackAction(GetComponentInParent<DeviceInfoPage>().Back);
|
{
|
||||||
|
// 恢复上层页面的返回事件
|
||||||
|
UIManager.Instance.RegisterBackAction(onCloseAction);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var infoPage = GetComponentInParent<DeviceInfoPage>();
|
||||||
|
if (infoPage != null)
|
||||||
|
{
|
||||||
|
UIManager.Instance.RegisterBackAction(infoPage.Back);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UIManager.Instance.ClearBackAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
public async Task Share()
|
public async Task Share()
|
||||||
@ -56,7 +85,9 @@ namespace Kill.UI.Pages
|
|||||||
|
|
||||||
var requestData = new ShareDeviceRequest
|
var requestData = new ShareDeviceRequest
|
||||||
{
|
{
|
||||||
device_sn = DataManager.Instance.selectedDevice.ble_mac,
|
device_sn = string.IsNullOrEmpty(deviceMac)
|
||||||
|
? DataManager.Instance.selectedDevice.ble_mac
|
||||||
|
: deviceMac,
|
||||||
target_user_id = targetUserId,
|
target_user_id = targetUserId,
|
||||||
owner_id = DataManager.Instance.userInfo.id
|
owner_id = DataManager.Instance.userInfo.id
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using Kill.Managers;
|
using Kill.Managers;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@ -1002,6 +1003,9 @@ namespace Kill.UI.Pages
|
|||||||
device.ble_mac = device.device_sn;
|
device.ble_mac = device.device_sn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 每种类型(自有/共享)的置顶设备排在第一个
|
||||||
|
OwnedDevices = OwnedDevices.OrderByDescending(d => d.is_top).ToList();
|
||||||
|
SharedDevices = SharedDevices.OrderByDescending(d => d.is_top).ToList();
|
||||||
|
|
||||||
Debug.Log($"[HomePageCtrl] 获取设备列表成功: 自有设备={OwnedDevices.Count}, 共享设备={SharedDevices.Count}");
|
Debug.Log($"[HomePageCtrl] 获取设备列表成功: 自有设备={OwnedDevices.Count}, 共享设备={SharedDevices.Count}");
|
||||||
DataManager.Instance.userInfo.device_count = OwnedDevices.Count + SharedDevices.Count;
|
DataManager.Instance.userInfo.device_count = OwnedDevices.Count + SharedDevices.Count;
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Kill.Managers;
|
using Kill.Managers;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -8,21 +9,28 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 首页设备列表项 - 显示单个设备信息
|
/// 首页设备列表项 - 显示单个设备信息
|
||||||
/// 支持左滑手势:左滑时菜单向左滑出并显示高斯模糊覆盖层,
|
/// 支持左滑手势:左滑时内容元素向左滑出,露出右侧菜单,
|
||||||
/// 滑动超过菜单宽度1/3松手则完整展开,否则缩回并隐藏模糊层
|
/// 滑动超过菜单宽度1/3松手则完整展开,否则缩回
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class HomePageDeviceItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
public class HomePageDeviceItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||||
{
|
{
|
||||||
public Text deviceNameText;
|
public Text deviceNameText;
|
||||||
|
/// <summary>
|
||||||
|
/// 置顶标识
|
||||||
|
/// </summary>
|
||||||
|
public GameObject topIcon;
|
||||||
public GameObject selectedIndicator;
|
public GameObject selectedIndicator;
|
||||||
/// <summary>菜单(子物体,锚点位于item最右侧),左滑时向左滑出</summary>
|
/// <summary>菜单(子物体,锚点位于item最右侧),内容左移后露出</summary>
|
||||||
public RectTransform menuRect;
|
public RectTransform menuRect;
|
||||||
/// <summary>高斯模糊覆盖层(子物体,覆盖其他内容),菜单出现时显示,缩回时隐藏</summary>
|
|
||||||
public GameObject blurOverlay;
|
|
||||||
|
|
||||||
// 当前设备信息
|
// 当前设备信息
|
||||||
public DeviceInfo deviceInfo;
|
public DeviceInfo deviceInfo;
|
||||||
|
/// <summary>
|
||||||
|
/// 菜单按钮数组 0:重命名 1:分享 2:删除 3:置顶 4:取消置顶
|
||||||
|
/// 最多显示3个按钮 拥有的设备显示分享 被分享的设备显示删除
|
||||||
|
/// 根据置顶状态显示置顶/取消置顶按钮
|
||||||
|
/// </summary>
|
||||||
|
public Button[] menuButtons;
|
||||||
/// <summary>当前展开菜单的item(全局仅允许一个菜单展开)</summary>
|
/// <summary>当前展开菜单的item(全局仅允许一个菜单展开)</summary>
|
||||||
private static HomePageDeviceItem openItem;
|
private static HomePageDeviceItem openItem;
|
||||||
|
|
||||||
@ -34,13 +42,31 @@ namespace Kill.UI.Pages
|
|||||||
private Vector3 menuInitPos;
|
private Vector3 menuInitPos;
|
||||||
private Tweener tweener;
|
private Tweener tweener;
|
||||||
private Button button;
|
private Button button;
|
||||||
|
private bool menuListenersBound;
|
||||||
|
/// <summary>除菜单外的内容子物体</summary>
|
||||||
|
private readonly List<RectTransform> contentRects = new List<RectTransform>();
|
||||||
|
/// <summary>各内容子物体的初始位置</summary>
|
||||||
|
private readonly List<Vector2> contentInitPositions = new List<Vector2>();
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
button = GetComponent<Button>();
|
button = GetComponent<Button>();
|
||||||
|
// 点击item主体:关闭其他item展开的菜单,同时收起自己的
|
||||||
|
if (button != null)
|
||||||
|
button.onClick.AddListener(OnItemClicked);
|
||||||
InitSwipe();
|
InitSwipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// item主体点击:全局仅保留一个菜单,点击任意item时关闭其他item的展开菜单
|
||||||
|
/// </summary>
|
||||||
|
private void OnItemClicked()
|
||||||
|
{
|
||||||
|
if (openItem != null && openItem != this)
|
||||||
|
openItem.CloseMenu();
|
||||||
|
CloseMenu();
|
||||||
|
}
|
||||||
|
|
||||||
void OnDisable()
|
void OnDisable()
|
||||||
{
|
{
|
||||||
// 防止拖拽中被禁用且未恢复的情况
|
// 防止拖拽中被禁用且未恢复的情况
|
||||||
@ -54,14 +80,43 @@ namespace Kill.UI.Pages
|
|||||||
openItem = null;
|
openItem = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitDeviceItem(DeviceInfo device)
|
public void InitDeviceItem(DeviceInfo device, bool isOwner)
|
||||||
{
|
{
|
||||||
deviceInfo = device;
|
deviceInfo = device;
|
||||||
deviceNameText.text = device.device_name;
|
deviceNameText.text = device.device_name;
|
||||||
selectedIndicator.SetActive(false);
|
selectedIndicator.SetActive(false);
|
||||||
|
if (topIcon != null) topIcon.SetActive(device.is_top);
|
||||||
|
SetupMenuButtons(isOwner);
|
||||||
|
BindMenuButtonClose();
|
||||||
InitSwipe();
|
InitSwipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据设备归属和置顶状态显示/隐藏菜单按钮
|
||||||
|
/// 0重命名 1分享 2删除 3置顶 4取消置顶
|
||||||
|
/// 拥有者:重命名+分享+置顶/取消置顶;被分享者:删除+置顶/取消置顶
|
||||||
|
/// </summary>
|
||||||
|
private void SetupMenuButtons(bool isOwner)
|
||||||
|
{
|
||||||
|
if (menuButtons == null || menuButtons.Length < 5) return;
|
||||||
|
menuButtons[0].gameObject.SetActive(true); // 重命名仅拥有者
|
||||||
|
menuButtons[1].gameObject.SetActive(isOwner); // 分享仅拥有者
|
||||||
|
menuButtons[2].gameObject.SetActive(!isOwner); // 删除(移除共享)仅被分享者
|
||||||
|
menuButtons[3].gameObject.SetActive(!deviceInfo.is_top); // 置顶:未置顶时显示
|
||||||
|
menuButtons[4].gameObject.SetActive(deviceInfo.is_top); // 取消置顶:已置顶时显示
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 点击菜单内任意按钮时自动收起菜单
|
||||||
|
/// </summary>
|
||||||
|
private void BindMenuButtonClose()
|
||||||
|
{
|
||||||
|
if (menuListenersBound || menuRect == null) return;
|
||||||
|
menuListenersBound = true;
|
||||||
|
foreach (var b in menuRect.GetComponentsInChildren<Button>(true))
|
||||||
|
b.onClick.AddListener(CloseMenu);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetSelectedState(bool isSelected)
|
public void SetSelectedState(bool isSelected)
|
||||||
{
|
{
|
||||||
// 设置选中状态
|
// 设置选中状态
|
||||||
@ -69,18 +124,29 @@ namespace Kill.UI.Pages
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化滑动数据:记录菜单初始位置、菜单宽度,重置为收起状态
|
/// 初始化滑动数据:收集内容子物体、记录初始位置,重置为收起状态
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitSwipe()
|
private void InitSwipe()
|
||||||
{
|
{
|
||||||
tweener?.Kill();
|
tweener?.Kill();
|
||||||
if (menuRect == null) return;
|
if (menuRect == null) return;
|
||||||
|
// 先复位已记录的内容,再重新收集(兼容item复用)
|
||||||
|
ApplyOffset(0);
|
||||||
|
contentRects.Clear();
|
||||||
|
contentInitPositions.Clear();
|
||||||
|
foreach (Transform child in transform)
|
||||||
|
{
|
||||||
|
if (child == menuRect) continue;
|
||||||
|
RectTransform rt = child as RectTransform;
|
||||||
|
if (rt == null) continue;
|
||||||
|
contentRects.Add(rt);
|
||||||
|
contentInitPositions.Add(rt.anchoredPosition);
|
||||||
|
}
|
||||||
menuWidth = menuRect.sizeDelta.x;
|
menuWidth = menuRect.sizeDelta.x;
|
||||||
menuInitPos = menuRect.anchoredPosition3D;
|
menuInitPos = menuRect.anchoredPosition3D;
|
||||||
isMenuOpen = false;
|
isMenuOpen = false;
|
||||||
currentOffset = 0;
|
currentOffset = 0;
|
||||||
ApplyMenuOffset(0);
|
ApplyOffset(0);
|
||||||
if (blurOverlay != null) blurOverlay.SetActive(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnBeginDrag(PointerEventData eventData)
|
public void OnBeginDrag(PointerEventData eventData)
|
||||||
@ -92,11 +158,9 @@ namespace Kill.UI.Pages
|
|||||||
if (openItem != null && openItem != this)
|
if (openItem != null && openItem != this)
|
||||||
openItem.CloseMenu();
|
openItem.CloseMenu();
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
// 菜单开始出现,显示高斯模糊覆盖层
|
|
||||||
if (blurOverlay != null) blurOverlay.SetActive(true);
|
|
||||||
currentOffset = isMenuOpen ? -menuWidth : 0;
|
currentOffset = isMenuOpen ? -menuWidth : 0;
|
||||||
dragStartOffset = currentOffset;
|
dragStartOffset = currentOffset;
|
||||||
ApplyMenuOffset(currentOffset);
|
ApplyOffset(currentOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDrag(PointerEventData eventData)
|
public void OnDrag(PointerEventData eventData)
|
||||||
@ -105,7 +169,7 @@ namespace Kill.UI.Pages
|
|||||||
// 累加位移并限制在 [-菜单宽度, 0],只允许左滑露出菜单
|
// 累加位移并限制在 [-菜单宽度, 0],只允许左滑露出菜单
|
||||||
currentOffset += eventData.delta.x;
|
currentOffset += eventData.delta.x;
|
||||||
currentOffset = Mathf.Clamp(currentOffset, -menuWidth, 0);
|
currentOffset = Mathf.Clamp(currentOffset, -menuWidth, 0);
|
||||||
ApplyMenuOffset(currentOffset);
|
ApplyOffset(currentOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnEndDrag(PointerEventData eventData)
|
public void OnEndDrag(PointerEventData eventData)
|
||||||
@ -136,13 +200,19 @@ namespace Kill.UI.Pages
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 将菜单平移到指定偏移
|
/// 将内容子物体和菜单一起平移到指定偏移(内容左移、菜单从屏幕外滑入露出)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ApplyMenuOffset(float offset)
|
private void ApplyOffset(float offset)
|
||||||
{
|
{
|
||||||
Vector3 pos = menuInitPos;
|
for (int i = 0; i < contentRects.Count; i++)
|
||||||
pos.x += offset;
|
{
|
||||||
menuRect.anchoredPosition3D = pos;
|
Vector2 pos = contentInitPositions[i];
|
||||||
|
pos.x += offset;
|
||||||
|
contentRects[i].anchoredPosition = pos;
|
||||||
|
}
|
||||||
|
Vector3 menuPos = menuInitPos;
|
||||||
|
menuPos.x += offset;
|
||||||
|
menuRect.anchoredPosition3D = menuPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -164,12 +234,10 @@ namespace Kill.UI.Pages
|
|||||||
openItem = null;
|
openItem = null;
|
||||||
}
|
}
|
||||||
isMenuOpen = open;
|
isMenuOpen = open;
|
||||||
if (!isMenuOpen && blurOverlay != null)
|
|
||||||
blurOverlay.SetActive(false); // 菜单缩回时隐藏模糊层
|
|
||||||
tweener = DOTween.To(() => currentOffset, v =>
|
tweener = DOTween.To(() => currentOffset, v =>
|
||||||
{
|
{
|
||||||
currentOffset = v;
|
currentOffset = v;
|
||||||
ApplyMenuOffset(v);
|
ApplyOffset(v);
|
||||||
}, target, 0.25f).SetEase(Ease.OutCubic);
|
}, target, 0.25f).SetEase(Ease.OutCubic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,12 @@
|
|||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Kill.Managers;
|
using Kill.Managers;
|
||||||
|
using Kill.Network;
|
||||||
|
using Kill.UI.Components;
|
||||||
|
using Kill.Bluetooth;
|
||||||
|
using Kill.Core;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
namespace Kill.UI.Pages
|
namespace Kill.UI.Pages
|
||||||
@ -17,9 +23,14 @@ namespace Kill.UI.Pages
|
|||||||
public DeviceInfo lastSelectedDevice;
|
public DeviceInfo lastSelectedDevice;
|
||||||
public DeviceInfo selectedDevice;
|
public DeviceInfo selectedDevice;
|
||||||
public Text selectedDeviceName;
|
public Text selectedDeviceName;
|
||||||
|
public GameObject renamePagePrefab;
|
||||||
|
public ShareDevicePage shareDevicePagePrefab;
|
||||||
|
/// <summary>当前已打开的重命名页实例(防连点重入)</summary>
|
||||||
|
private RenamePage currentRenamePage;
|
||||||
|
/// <summary>当前已打开的分享页实例(防连点重入)</summary>
|
||||||
|
private ShareDevicePage currentShareDevicePage;
|
||||||
public void InitDeviceList(List<DeviceInfo> ownedDevices, List<DeviceInfo> sharedDevices, DeviceInfo selectedDevice)
|
public void InitDeviceList(List<DeviceInfo> ownedDevices, List<DeviceInfo> sharedDevices, DeviceInfo selectedDevice)
|
||||||
{
|
{
|
||||||
selectedDeviceName.text=selectedDevice.device_name;
|
|
||||||
typeStr[0]=LanguageManager.Instance.GetLanguage(typeKey[0]);
|
typeStr[0]=LanguageManager.Instance.GetLanguage(typeKey[0]);
|
||||||
typeStr[1]=LanguageManager.Instance.GetLanguage(typeKey[1]);
|
typeStr[1]=LanguageManager.Instance.GetLanguage(typeKey[1]);
|
||||||
lastSelectedDevice = selectedDevice;
|
lastSelectedDevice = selectedDevice;
|
||||||
@ -61,7 +72,8 @@ namespace Kill.UI.Pages
|
|||||||
|
|
||||||
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
||||||
deviceItem.SetActive(true);
|
deviceItem.SetActive(true);
|
||||||
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device);
|
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device,true);
|
||||||
|
BindMenuButtons(deviceItem.GetComponent<HomePageDeviceItem>());
|
||||||
deviceList.Add(deviceItem);
|
deviceList.Add(deviceItem);
|
||||||
deviceItem.gameObject.SetActive(true);
|
deviceItem.gameObject.SetActive(true);
|
||||||
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
||||||
@ -85,7 +97,8 @@ namespace Kill.UI.Pages
|
|||||||
}
|
}
|
||||||
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
var deviceItem = Instantiate(devicePrefab, deviceParent);
|
||||||
deviceItem.SetActive(true);
|
deviceItem.SetActive(true);
|
||||||
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device);
|
deviceItem.GetComponent<HomePageDeviceItem>().InitDeviceItem(device,false);
|
||||||
|
BindMenuButtons(deviceItem.GetComponent<HomePageDeviceItem>());
|
||||||
deviceList.Add(deviceItem);
|
deviceList.Add(deviceItem);
|
||||||
deviceItem.gameObject.SetActive(true);
|
deviceItem.gameObject.SetActive(true);
|
||||||
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
deviceItem.GetComponent<Button>().onClick.AddListener(() =>
|
||||||
@ -93,22 +106,68 @@ namespace Kill.UI.Pages
|
|||||||
OnClickDeviceItem(deviceItem);
|
OnClickDeviceItem(deviceItem);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 解析最终选中的设备:优先保持原选中;原选中设备不存在时,默认选中置顶设备;无置顶则选第一个设备
|
||||||
|
DeviceInfo effectiveSelected = null;
|
||||||
if (selectedDevice != null)
|
if (selectedDevice != null)
|
||||||
{
|
{
|
||||||
foreach (var deviceItem in deviceList)
|
foreach (var deviceItem in deviceList)
|
||||||
{
|
{
|
||||||
if (deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.ble_mac == selectedDevice.ble_mac)
|
if (deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.ble_mac == selectedDevice.ble_mac)
|
||||||
{
|
{
|
||||||
deviceItem.GetComponent<HomePageDeviceItem>().SetSelectedState(true);
|
effectiveSelected = selectedDevice;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (effectiveSelected == null)
|
||||||
|
{
|
||||||
|
foreach (var deviceItem in deviceList)
|
||||||
|
{
|
||||||
|
if (deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.is_top)
|
||||||
|
{
|
||||||
|
effectiveSelected = deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (effectiveSelected == null && deviceList.Count > 0)
|
||||||
|
{
|
||||||
|
effectiveSelected = deviceList[0].GetComponent<HomePageDeviceItem>().deviceInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (effectiveSelected != null)
|
||||||
|
{
|
||||||
|
// 选中设备发生回退(原选中不存在或无选中)时,同步选中信息并持久化
|
||||||
|
if (selectedDevice == null || selectedDevice.ble_mac != effectiveSelected.ble_mac)
|
||||||
|
{
|
||||||
|
lastSelectedDevice = effectiveSelected;
|
||||||
|
DataManager.Instance.selectedDevice = effectiveSelected;
|
||||||
|
DataManager.Instance.SavaSelectedDeviceMac(effectiveSelected.ble_mac);
|
||||||
|
var ctrl = HomePageCtrl.Instance;
|
||||||
|
if (ctrl != null)
|
||||||
|
{
|
||||||
|
ctrl.selectedDevice = effectiveSelected;
|
||||||
|
if (ctrl.selectDeviceButton != null)
|
||||||
|
ctrl.selectDeviceButton.GetComponentInChildren<Text>().text = effectiveSelected.device_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.selectedDevice = effectiveSelected;
|
||||||
|
selectedDeviceName.text = effectiveSelected.device_name;
|
||||||
|
|
||||||
|
foreach (var deviceItem in deviceList)
|
||||||
|
{
|
||||||
|
bool isSelected = deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.ble_mac == effectiveSelected.ble_mac;
|
||||||
|
deviceItem.GetComponent<HomePageDeviceItem>().SetSelectedState(isSelected);
|
||||||
|
if (isSelected)
|
||||||
|
{
|
||||||
Debug.Log("选中设备:" + deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.ble_mac);
|
Debug.Log("选中设备:" + deviceItem.GetComponent<HomePageDeviceItem>().deviceInfo.ble_mac);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
deviceItem.GetComponent<HomePageDeviceItem>().SetSelectedState(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selectedDeviceName.text = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClickDeviceItem(GameObject deviceItem)
|
public void OnClickDeviceItem(GameObject deviceItem)
|
||||||
@ -124,8 +183,125 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
UIManager.Instance.OpenPage(UIManager.PageName.connectDevicePage);
|
UIManager.Instance.OpenPage(UIManager.PageName.connectDevicePage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绑定菜单按钮事件(0=重命名 1=分享 2=删除 3=置顶 4=取消置顶)
|
||||||
|
/// </summary>
|
||||||
|
private void BindMenuButtons(HomePageDeviceItem item)
|
||||||
|
{
|
||||||
|
if (item.menuButtons == null || item.menuButtons.Length < 5) return;
|
||||||
|
item.menuButtons[0].onClick.AddListener(() => OpenRenamePage(item));
|
||||||
|
item.menuButtons[1].onClick.AddListener(() => OpenShareDevicePage(item));
|
||||||
|
item.menuButtons[2].onClick.AddListener(() => CancelShareBySharedUser(item.deviceInfo.ble_mac));
|
||||||
|
item.menuButtons[3].onClick.AddListener(() => ToggleTop(item, true));
|
||||||
|
item.menuButtons[4].onClick.AddListener(() => ToggleTop(item, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 打开设备分享页面
|
||||||
|
/// </summary>
|
||||||
|
public void OpenShareDevicePage(HomePageDeviceItem item)
|
||||||
|
{
|
||||||
|
// 防连点:页面已打开时忽略重复触发
|
||||||
|
if (shareDevicePagePrefab == null || item == null || item.deviceInfo == null) return;
|
||||||
|
if (currentShareDevicePage != null) return;
|
||||||
|
currentShareDevicePage = Instantiate(shareDevicePagePrefab, transform).GetComponent<ShareDevicePage>();
|
||||||
|
currentShareDevicePage.gameObject.SetActive(true);
|
||||||
|
// 关闭分享页时恢复设备列表页的返回事件
|
||||||
|
currentShareDevicePage.Init(item.deviceInfo.ble_mac, () => UIManager.Instance.RegisterBackAction(ClosePage));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 打开设备重命名页面
|
||||||
|
/// </summary>
|
||||||
|
public void OpenRenamePage(HomePageDeviceItem item)
|
||||||
|
{
|
||||||
|
// 防连点:页面已打开时忽略重复触发
|
||||||
|
if (renamePagePrefab == null || item == null || item.deviceInfo == null) return;
|
||||||
|
if (currentRenamePage != null) return;
|
||||||
|
currentRenamePage = Instantiate(renamePagePrefab, transform).GetComponent<RenamePage>();
|
||||||
|
currentRenamePage.gameObject.SetActive(true);
|
||||||
|
currentRenamePage.Init(item.deviceInfo.device_name, (newName) => CloseRenamePage(item, newName), 0, item.deviceInfo.ble_mac);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重命名成功回调:更新本地名称并刷新UI
|
||||||
|
/// </summary>
|
||||||
|
public void CloseRenamePage(HomePageDeviceItem item, string newName)
|
||||||
|
{
|
||||||
|
currentRenamePage = null;
|
||||||
|
if (item == null || item.deviceInfo == null) return;
|
||||||
|
item.deviceInfo.device_name = newName;
|
||||||
|
if (item.deviceNameText != null) item.deviceNameText.text = newName;
|
||||||
|
// 重命名的是当前选中设备时,同步选中信息
|
||||||
|
if (selectedDevice != null && selectedDevice.ble_mac == item.deviceInfo.ble_mac)
|
||||||
|
{
|
||||||
|
selectedDevice.device_name = newName;
|
||||||
|
if (selectedDeviceName != null) selectedDeviceName.text = newName;
|
||||||
|
if (DataManager.Instance.selectedDevice != null &&
|
||||||
|
DataManager.Instance.selectedDevice.ble_mac == item.deviceInfo.ble_mac)
|
||||||
|
{
|
||||||
|
DataManager.Instance.selectedDevice.device_name = newName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 置顶/取消置顶:调用 /api/v1/device/top,成功后重新获取设备列表并刷新
|
||||||
|
/// 每种类型仅一个置顶设备,冲突置顶由后端自动处理
|
||||||
|
/// </summary>
|
||||||
|
public async void ToggleTop(HomePageDeviceItem item, bool isTop)
|
||||||
|
{
|
||||||
|
if (item == null || item.deviceInfo == null) return;
|
||||||
|
string mac = item.deviceInfo.ble_mac;
|
||||||
|
if (string.IsNullOrEmpty(mac))
|
||||||
|
{
|
||||||
|
Debug.LogError("[HomePageDevicePage] 置顶失败: 设备MAC为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadingUI.Show();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var requestData = new { ble_mac = mac, is_top = isTop };
|
||||||
|
var response = await NetworkCtrl.Instance.Put<NoDataResponse>("/api/v1/device/top", requestData);
|
||||||
|
LoadingUI.Hide();
|
||||||
|
ResponseCodeHandler.HandleResponse(response,
|
||||||
|
onSuccess: async (data) =>
|
||||||
|
{
|
||||||
|
// 后端会自动处理同类型冲突置顶,重新获取设备列表刷新
|
||||||
|
var ctrl = HomePageCtrl.Instance;
|
||||||
|
if (ctrl == null) return;
|
||||||
|
await ctrl.FetchDeviceList();
|
||||||
|
ctrl.selectDevicePage.GetComponent<HomePageDevicePage>()
|
||||||
|
.InitDeviceList(ctrl.OwnedDevices, ctrl.SharedDevices, ctrl.selectedDevice);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LoadingUI.Hide();
|
||||||
|
Debug.LogError($"[HomePageDevicePage] 置顶设置异常: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
public void ClosePage()
|
public void ClosePage()
|
||||||
{
|
{
|
||||||
|
// 设备可能在列表页被重命名,关闭时刷新主页显示的当前设备名
|
||||||
|
if (selectedDevice != null)
|
||||||
|
{
|
||||||
|
var ctrl = HomePageCtrl.Instance;
|
||||||
|
if (ctrl != null && ctrl.selectedDevice != null &&
|
||||||
|
ctrl.selectedDevice.ble_mac == selectedDevice.ble_mac)
|
||||||
|
{
|
||||||
|
ctrl.selectedDevice.device_name = selectedDevice.device_name;
|
||||||
|
if (ctrl.selectDeviceButton != null)
|
||||||
|
ctrl.selectDeviceButton.GetComponentInChildren<Text>().text = selectedDevice.device_name;
|
||||||
|
}
|
||||||
|
if (DataManager.Instance.selectedDevice != null &&
|
||||||
|
DataManager.Instance.selectedDevice.ble_mac == selectedDevice.ble_mac)
|
||||||
|
{
|
||||||
|
DataManager.Instance.selectedDevice.device_name = selectedDevice.device_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(lastSelectedDevice==selectedDevice)
|
if(lastSelectedDevice==selectedDevice)
|
||||||
{
|
{
|
||||||
gameObject.SetActive(false);
|
gameObject.SetActive(false);
|
||||||
@ -136,5 +312,85 @@ namespace Kill.UI.Pages
|
|||||||
UIManager.Instance.OpenPage(UIManager.PageName.homePage,null,true);
|
UIManager.Instance.OpenPage(UIManager.PageName.homePage,null,true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
string cancelShareDeviceMac="";
|
||||||
|
public WindowTipCtrl cancelShareTip;
|
||||||
|
public void CancelShareBySharedUser(string mac)
|
||||||
|
{
|
||||||
|
cancelShareDeviceMac=mac;
|
||||||
|
cancelShareTip.Init(()=>CancelShareAsyncBySharedUser(),()=>{
|
||||||
|
cancelShareTip.gameObject.SetActive(false);
|
||||||
|
});
|
||||||
|
cancelShareTip.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
public async Task CancelShareAsyncBySharedUser()
|
||||||
|
{
|
||||||
|
cancelShareTip.gameObject.SetActive(false);
|
||||||
|
string targetUserId = DataManager.Instance.userInfo.id;
|
||||||
|
|
||||||
|
// 调用后端接口共享设备
|
||||||
|
LoadingUI.Show();
|
||||||
|
|
||||||
|
var requestData = new ShareDeviceRequest
|
||||||
|
{
|
||||||
|
device_sn = cancelShareDeviceMac,
|
||||||
|
target_user_id = targetUserId,
|
||||||
|
owner_id = "-1"
|
||||||
|
};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var response = await NetworkCtrl.Instance.Post<NoDataResponse>("/api/v1/device/unshare", requestData);
|
||||||
|
|
||||||
|
ResponseCodeHandler.HandleResponse(response,
|
||||||
|
onSuccess: (data) =>
|
||||||
|
{
|
||||||
|
Debug.Log("取消设备共享成功");
|
||||||
|
ToastUI.Show("100206");
|
||||||
|
if (BluetoothManager.Instance.IsConnected)
|
||||||
|
{
|
||||||
|
BLECommunicationManager.Instance.UnregisterUser(targetUserId, (unregisterSuccess) =>
|
||||||
|
{
|
||||||
|
Loom.QueueOnMainThread(() =>
|
||||||
|
{
|
||||||
|
|
||||||
|
if (unregisterSuccess.IsSuccess)
|
||||||
|
{
|
||||||
|
BluetoothManager.Instance.Disconnect();
|
||||||
|
StartCoroutine(BackToHomePage());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogError("取消设备共享成功,但蓝牙用户注销失败");
|
||||||
|
StartCoroutine(BackToHomePage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StartCoroutine(BackToHomePage());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onError: (code, msg) =>
|
||||||
|
{
|
||||||
|
Debug.LogError($"取消设备共享失败: {code} - {msg}");
|
||||||
|
LoadingUI.Hide();
|
||||||
|
ToastUI.ShowText(code.ToString());
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LoadingUI.Hide();
|
||||||
|
Debug.LogError("取消设备共享失败: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public IEnumerator BackToHomePage()
|
||||||
|
{
|
||||||
|
LoadingUI.Show();
|
||||||
|
yield return new WaitForSeconds(2);
|
||||||
|
LoadingUI.ForceHide();
|
||||||
|
UIManager.Instance.OpenMainPage(UIManager.PageName.homePage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||