收拾烂摊子

增加编队初步,改动了判定系统,编队UI组装好
This commit is contained in:
FloatGaming
2025-09-28 00:23:05 +08:00
parent 1d818fa4eb
commit 98510eef0f
53 changed files with 10492 additions and 60 deletions
@@ -17,3 +17,6 @@ MonoBehaviour:
CharacterCardSprite: {fileID: 21300000, guid: 4cfddbb3f863ce7438489672608b52e7, type: 3} CharacterCardSprite: {fileID: 21300000, guid: 4cfddbb3f863ce7438489672608b52e7, type: 3}
CharacterTeamSprite: {fileID: 21300000, guid: cd700eadb08fd5a4289093677d9414ff, type: 3} CharacterTeamSprite: {fileID: 21300000, guid: cd700eadb08fd5a4289093677d9414ff, type: 3}
CharacterRoleSprite: {fileID: 21300000, guid: 723b47d046dd2e644a87c48049c6cd7b, type: 3} CharacterRoleSprite: {fileID: 21300000, guid: 723b47d046dd2e644a87c48049c6cd7b, type: 3}
CharacterName: YueTao
CharacterImage_gameplay: {fileID: 0}
CharacterMaxHealth: 0
@@ -58004,7 +58004,8 @@ Material:
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
m_Parent: {fileID: 0} m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0 m_ModifiedSerializedProperties: 0
m_ValidKeywords: [] m_ValidKeywords:
- UNDERLAY_ON
m_InvalidKeywords: [] m_InvalidKeywords: []
m_LightmapFlags: 4 m_LightmapFlags: 4
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 0
@@ -58068,7 +58069,7 @@ Material:
- _Reflectivity: 10 - _Reflectivity: 10
- _ScaleRatioA: 0.5 - _ScaleRatioA: 0.5
- _ScaleRatioB: 0.40625 - _ScaleRatioB: 0.40625
- _ScaleRatioC: 0.40625 - _ScaleRatioC: 0.13541667
- _ScaleX: 1 - _ScaleX: 1
- _ScaleY: 1 - _ScaleY: 1
- _ShaderFlags: 0 - _ShaderFlags: 0
@@ -58081,10 +58082,10 @@ Material:
- _StencilWriteMask: 255 - _StencilWriteMask: 255
- _TextureHeight: 1024 - _TextureHeight: 1024
- _TextureWidth: 1024 - _TextureWidth: 1024
- _UnderlayDilate: 0 - _UnderlayDilate: 1
- _UnderlayOffsetX: 0 - _UnderlayOffsetX: -1
- _UnderlayOffsetY: 0 - _UnderlayOffsetY: -1
- _UnderlaySoftness: 0 - _UnderlaySoftness: 1
- _VertexOffsetX: 0 - _VertexOffsetX: 0
- _VertexOffsetY: 0 - _VertexOffsetY: 0
- _WeightBold: 0.75 - _WeightBold: 0.75
@@ -58099,6 +58100,6 @@ Material:
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} - _UnderlayColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: [] m_BuildTextureStacks: []
m_AllowLocking: 1 m_AllowLocking: 1
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -109,7 +109,7 @@ MonoBehaviour:
m_PrefilterDebugKeywords: 1 m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 1 m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1 m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 0 m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 1 m_PrefilterSSAODepthNormals: 1
m_PrefilterSSAOSourceDepthLow: 1 m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1 m_PrefilterSSAOSourceDepthMedium: 1
+1 -1
View File
@@ -20,7 +20,7 @@
], ],
"notes": [ "notes": [
{ "time": 3.0, "trackIndex": 0, "color": "red", "type": "hold", "length": 2 }, { "time": 3.0, "trackIndex": 0, "color": "red", "type": "hold", "length": 2 },
{ "time": 3.0, "trackIndex": 1, "color": "green", "type": "hold", "length": 2 }, { "time": 3.0, "trackIndex": 1, "color": "green", "type": "hold", "length": 1 },
{ "time": 4.8, "trackIndex": 1, "color": "green", "type": "hold", "length": 2.4 }, { "time": 4.8, "trackIndex": 1, "color": "green", "type": "hold", "length": 2.4 },
{ "time": 4.8, "trackIndex": 3, "color": "purple", "type": "tap", "length": 0 }, { "time": 4.8, "trackIndex": 3, "color": "purple", "type": "tap", "length": 0 },
{ "time": 5.4, "trackIndex": 3, "color": "purple", "type": "tap", "length": 0 }, { "time": 5.4, "trackIndex": 3, "color": "purple", "type": "tap", "length": 0 },
@@ -1,7 +1,5 @@
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
/// <summary> /// <summary>
/// 该sobj仅适用于编队系统,角色系统的详细信息需要另外设计 /// 该sobj仅适用于编队系统,角色系统的详细信息需要另外设计
/// </summary> /// </summary>
@@ -16,4 +14,8 @@ public class TeamCharacterDataInfo :ScriptableObject
public Sprite CharacterCardSprite; public Sprite CharacterCardSprite;
public Sprite CharacterTeamSprite; public Sprite CharacterTeamSprite;
public Sprite CharacterRoleSprite; public Sprite CharacterRoleSprite;
[Header("BattleFlowSys")]
public string CharacterName;
public Image CharacterImage_gameplay;
public int CharacterMaxHealth;
} }
@@ -60,7 +60,17 @@ MonoBehaviour:
- rid: 5279208450996568088 - rid: 5279208450996568088
- rid: 5279208450996568089 - rid: 5279208450996568089
m_RuntimeSettings: m_RuntimeSettings:
m_List: [] m_List:
- rid: 5279208450996568066
- rid: 5279208450996568070
- rid: 5279208450996568074
- rid: 5279208450996568075
- rid: 5279208450996568077
- rid: 5279208450996568078
- rid: 5279208450996568079
- rid: 5279208450996568081
- rid: 5279208450996568086
- rid: 5279208450996568088
m_AssetVersion: 8 m_AssetVersion: 8
m_ObsoleteDefaultVolumeProfile: {fileID: 0} m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames: m_RenderingLayerNames:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6288d0520e6790b49a5d2de91423b7aa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e07062fd05c08dd4d88adfdb94db12b6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 92076ff149de5b549a14ccb4021ec8cb
TextureImporter:
internalIDToNameTable:
- first:
213: -4278035512617938032
second: Ayano_informationcard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Ayano_informationcard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 323
height: 63
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 093d6e50e5d51a4c0800000000000000
internalID: -4278035512617938032
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Ayano_informationcard_0: -4278035512617938032
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 09067a3f02b223442805da933cc3e734
TextureImporter:
internalIDToNameTable:
- first:
213: -439044533916603114
second: Enemy_card_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Enemy_card_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 172
height: 705
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 61de253925338e9f0800000000000000
internalID: -439044533916603114
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Enemy_card_0: -439044533916603114
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 6a4783b488b13a9499e218b154d6fcdc
TextureImporter:
internalIDToNameTable:
- first:
213: 3984127606632324779
second: Enemy_card_bg_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Enemy_card_bg_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 172
height: 705
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: bae952d03f67a4730800000000000000
internalID: 3984127606632324779
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Enemy_card_bg_0: 3984127606632324779
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 77ab4c505e3e41e45879cd85c1439aff
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 359d6ebc01b89564185a24ecfdaecc8d
TextureImporter:
internalIDToNameTable:
- first:
213: -4278035512617938032
second: Ayano_informationcard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Ayano_informationcard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 323
height: 63
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 093d6e50e5d51a4c0800000000000000
internalID: -4278035512617938032
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Ayano_informationcard_0: -4278035512617938032
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 99e9b08ff27bffe488f6f11d7d6bdcd6
TextureImporter:
internalIDToNameTable:
- first:
213: -7459113837334274086
second: blue_rolecard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: blue_rolecard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 47
height: 97
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: adf5d7a2c77eb7890800000000000000
internalID: -7459113837334274086
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
blue_rolecard_0: -7459113837334274086
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 48187d6b25e832b4995a16e7aaf53c20
TextureImporter:
internalIDToNameTable:
- first:
213: -6369566374325721231
second: green_rolecard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: green_rolecard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 38
height: 97
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 177ea054121ca97a0800000000000000
internalID: -6369566374325721231
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
green_rolecard_0: -6369566374325721231
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 480f71efc0814034384a4853fa6bf639
TextureImporter:
internalIDToNameTable:
- first:
213: -3134928614932401717
second: purple_rolecard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: purple_rolecard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 39
height: 98
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: bc13fb6c80f7e74d0800000000000000
internalID: -3134928614932401717
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
purple_rolecard_0: -3134928614932401717
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 021171530d0409a4091cc2fd477f827f
TextureImporter:
internalIDToNameTable:
- first:
213: -584663815682811664
second: red_rolecard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: red_rolecard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 47
height: 98
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 0f893397b5bd2e7f0800000000000000
internalID: -584663815682811664
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
red_rolecard_0: -584663815682811664
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 2628bfa00af60f249b076aa7b6eb7ac9
TextureImporter:
internalIDToNameTable:
- first:
213: -7282410213827511705
second: roleHP_down_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: roleHP_down_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 125
height: 14
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 76a72209e7eafea90800000000000000
internalID: -7282410213827511705
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
roleHP_down_0: -7282410213827511705
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 5c4bf57c045ea4d49818477bab46bd3a
TextureImporter:
internalIDToNameTable:
- first:
213: -6758692635247331641
second: roleHP_up_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: roleHP_up_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 164
height: 51
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 7c6b80a7bdc4432a0800000000000000
internalID: -6758692635247331641
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
roleHP_up_0: -6758692635247331641
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 0905a8ea9118980409ed61cadc2ed86c
TextureImporter:
internalIDToNameTable:
- first:
213: 214968023218300886
second: yellow_rolecard_0
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: yellow_rolecard_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 39
height: 98
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 6d7aef53748bbf200800000000000000
internalID: 214968023218300886
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
yellow_rolecard_0: 214968023218300886
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,155 @@
fileFormatVersion: 2
guid: 1b7a5d2264e9c314d8e2f74c30024a5e
TextureImporter:
internalIDToNameTable:
- first:
213: 684800916906648542
second: "\u672A\u6807\u9898-2_0"
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: "\u672A\u6807\u9898-2_0"
rect:
serializedVersion: 2
x: 0
y: 0
width: 172
height: 705
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: ed325124ec6e08900800000000000000
internalID: 684800916906648542
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 482f3497fd2e69547bcae620642deecf
TextureImporter:
internalIDToNameTable:
- first:
213: -5474362408200617662
second: "\u5706\u89D2\u77E9\u5F62 1 \u62F7\u8D1D_0"
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: "\u5706\u89D2\u77E9\u5F62 1 \u62F7\u8D1D_0"
rect:
serializedVersion: 2
x: 0
y: 0
width: 34
height: 566
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 2414377e4682704b0800000000000000
internalID: -5474362408200617662
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
"\u5706\u89D2\u77E9\u5F62 1 \u62F7\u8D1D_0": -5474362408200617662
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: c7d3e1c2266441542bcb7575091b6564
TextureImporter:
internalIDToNameTable:
- first:
213: 1381107880254337330
second: "\u5706\u89D2\u77E9\u5F62 1_0"
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: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: "\u5706\u89D2\u77E9\u5F62 1_0"
rect:
serializedVersion: 2
x: 0
y: 0
width: 34
height: 567
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 2317d07bc4eaa2310800000000000000
internalID: 1381107880254337330
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
"\u5706\u89D2\u77E9\u5F62 1_0": 1381107880254337330
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -366,7 +366,7 @@ AnimatorState:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: Idle m_Name: Idle
m_Speed: 10 m_Speed: 1
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: m_Transitions:
- {fileID: 7939001616952100750} - {fileID: 7939001616952100750}
+1 -1
View File
@@ -1,6 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using Mono.Cecil.Cil; //using Mono.Cecil.Cil;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
+67 -19
View File
@@ -37,10 +37,30 @@ public class HoldNote : BaseNote
// 新增变量 // 新增变量
private bool hasBeenHeldFromStart = false; // 进入判定区时是否已按住 (用于辅助判断,但不再直接阻断判定) private bool hasBeenHeldFromStart = false; // 进入判定区时是否已按住 (用于辅助判断,但不再直接阻断判定)
[Header("判定区间配置")]
public NoteJudgeConfig judgeConfig; // 判定区间配置,需在预制体或生成时赋值
private void Awake() private void Awake()
{ {
controller = GetComponent<HoldNoteController>(); controller = GetComponent<HoldNoteController>();
anim = GetComponent<AnimationController>(); anim = GetComponent<AnimationController>();
if (controller != null)
{
controller.OnJudgeZoneChanged += OnJudgeZoneChanged;
}
}
private void OnDestroy()
{
if (controller != null)
{
controller.OnJudgeZoneChanged -= OnJudgeZoneChanged;
}
}
private void OnJudgeZoneChanged(bool inZone)
{
hasEnteredLine = inZone;
} }
private void OnEnable() private void OnEnable()
@@ -68,7 +88,7 @@ public class HoldNote : BaseNote
} }
public void Setup(int id, int trackIndex, float speed, float time, float delay, public void Setup(int id, int trackIndex, float speed, float time, float delay,
bool isEnd, float scheduledEnd, string color, KeyCode key, string type) bool isEnd, float scheduledEnd, string color, KeyCode key, string type, NoteJudgeConfig judgeConfig)
{ {
this.id = id; this.id = id;
this.trackIndex = trackIndex; this.trackIndex = trackIndex;
@@ -80,6 +100,7 @@ public class HoldNote : BaseNote
this.color = color; this.color = color;
this.key = key; this.key = key;
this.type = type; this.type = type;
this.judgeConfig = judgeConfig;
this.noteID = id.ToString(); this.noteID = id.ToString();
this.keyToPress = key; this.keyToPress = key;
@@ -90,6 +111,12 @@ public class HoldNote : BaseNote
this.hasEnteredLine = false; this.hasEnteredLine = false;
this.hasReleased = false; this.hasReleased = false;
// 判定区间配置检查
if (judgeConfig == null)
Debug.LogError($"HoldNoteJudgeConfig is null! 判定区间配置未传入!track={trackIndex}");
else
Debug.Log($"HoldNoteJudgeConfig: perfect={judgeConfig.perfectRange}, great={judgeConfig.greatRange}, good={judgeConfig.goodRange}, miss={judgeConfig.missRange}");
// 在 Setup 时注册初始状态 // 在 Setup 时注册初始状态
JudgeManager.Instance?.RegisterNoteReleased(noteID, false); JudgeManager.Instance?.RegisterNoteReleased(noteID, false);
if (segment == NoteSegment.Start) if (segment == NoteSegment.Start)
@@ -304,9 +331,10 @@ public class HoldNote : BaseNote
{ {
float pressTime = Time.time; float pressTime = Time.time;
float offset = Mathf.Abs(pressTime - hitTime); float offset = Mathf.Abs(pressTime - hitTime);
string result;
if (offset < 0.1f) // 判定成功 if (offset < 0.1f) // 判定成功
{ {
result = "Perfect";
Debug.Log($"[HoldNote] START判定成功(偏差={offset:F2}秒): {noteColor}"); Debug.Log($"[HoldNote] START判定成功(偏差={offset:F2}秒): {noteColor}");
JudgeManager.Instance.RegisterStartJudged(noteID, true); JudgeManager.Instance.RegisterStartJudged(noteID, true);
isHoldActive = true; // 成功判定Start,长按状态激活 isHoldActive = true; // 成功判定Start,长按状态激活
@@ -314,11 +342,12 @@ public class HoldNote : BaseNote
} }
else else
{ {
result = "Miss";
Debug.Log($"[HoldNote] START Miss(偏差={offset:F2}秒): {noteColor}"); Debug.Log($"[HoldNote] START Miss(偏差={offset:F2}秒): {noteColor}");
JudgeManager.Instance.RegisterStartJudged(noteID, false); // 明确标记未判定 JudgeManager.Instance.RegisterStartJudged(noteID, false); // 明确标记未判定
isHoldActive = false; // Start Miss,长按状态不激活 isHoldActive = false; // Start Miss,长按状态不激活
} }
InputManager.Instance?.ShowJudgeResult(trackIndex, result);
// Start段判定后立即回收,因为它的视觉部分可能只需要短暂显示 // Start段判定后立即回收,因为它的视觉部分可能只需要短暂显示
StartCoroutine(DelayedReturn()); StartCoroutine(DelayedReturn());
} }
@@ -332,46 +361,65 @@ public class HoldNote : BaseNote
} }
} }
// 重载 HandleEnd 方法,增加一个强制Miss的参数
private void HandleEnd(bool forceMiss = false) private void HandleEnd(bool forceMiss = false)
{ {
releaseTime = Time.time; releaseTime = Time.time;
hasReleased = true; // 标记此音符已被释放 hasReleased = true;
JudgeManager.Instance.RegisterNoteReleased(noteID, true);
JudgeManager.Instance.RegisterNoteReleased(noteID, true); // 在 JudgeManager 中注册释放
string result; string result;
// 只要头部判定通过,松手时机在判定区间内就给出对应判定
// 如果强制Miss,或者头部未判定,或者长按已经中断,则直接判定为Miss if (forceMiss || !JudgeManager.Instance.IsStartJudged(noteID))
if (forceMiss || !JudgeManager.Instance.IsStartJudged(noteID) || !isHoldActive)
{ {
result = "Miss"; result = "Miss";
Debug.LogWarning($"[HoldNote] END判定失败({noteColor}):{(forceMiss ? "Miss" : (!JudgeManager.Instance.IsStartJudged(noteID) ? "" : ""))}"); Debug.LogWarning($"[HoldNote] END判定失败({noteColor}):{(forceMiss ? "Miss" : "")}");
}
else if (judgeConfig != null)
{
float diff = Mathf.Abs(releaseTime - scheduledEndTime);
if (diff <= judgeConfig.perfectRange)
{
result = "Perfect";
}
else if (diff <= judgeConfig.greatRange)
{
result = "Great";
}
else if (diff <= judgeConfig.goodRange)
{
result = "Good";
}
else if (diff <= judgeConfig.missRange)
{
result = "Miss";
}
else
{
result = "Miss";
}
} }
else else
{ {
float diff = Mathf.Abs(releaseTime - scheduledEndTime); float diff = Mathf.Abs(releaseTime - scheduledEndTime);
// End段的判定规则 if (diff <= 0.1f)
if (diff <= 0.1f) // 更严格的完美判定窗口
{ {
result = "Perfect"; result = "Perfect";
} }
else if (diff < 0.2f) // 适当放宽的Great判定 else if (diff < 0.2f)
{ {
result = "Great"; result = "Great";
} }
else if (diff < 0.3f) // 再次放宽的Good判定 else if (diff < 0.3f)
{ {
result = "Good"; result = "Good";
} }
else else
{ {
result = "Bad"; // 更大的偏差可能视为Bad或Miss result = "Bad";
} }
} }
InputManager.Instance?.ShowJudgeResult(trackIndex, result);
Debug.Log($"[HoldNote] END判定结果: {noteColor} {result} (release={releaseTime:F2}, target={scheduledEndTime:F2})"); Debug.Log($"[HoldNote] END判定结果: {noteColor} {result} (release={releaseTime:F2}, target={scheduledEndTime:F2})");
ReturnToPool(); // 判定后回收 ReturnToPool();
} }
private void OnDisable() private void OnDisable()
@@ -1,11 +1,33 @@
using UnityEngine; using UnityEngine;
using TMPro;
using System; using System;
public class InputManager : MonoBehaviour public class InputManager : MonoBehaviour
{ {
public static InputManager Instance { get; private set; }
public static event Action<KeyCode> OnKeyPressed; public static event Action<KeyCode> OnKeyPressed;
public static event Action<KeyCode> OnKeyReleased; public static event Action<KeyCode> OnKeyReleased;
[Header("轨道判定显示TMP对象(请在Inspector中连接)")]
public TextMeshProUGUI[] trackJudgeTexts = new TextMeshProUGUI[5];
[Header("是否显示判定文字")]
public bool showJudgeText = true;
// 判定结果对应颜色
public Color perfectColor = Color.yellow;
public Color greatColor = Color.green;
public Color goodColor = Color.cyan;
public Color missColor = Color.red;
private void Awake()
{
if (Instance == null)
Instance = this;
else
Destroy(gameObject);
}
private void Update() private void Update()
{ {
foreach (string color in new string[] { "red", "green", "yellow", "purple", "blue" }) foreach (string color in new string[] { "red", "green", "yellow", "purple", "blue" })
@@ -23,4 +45,34 @@ public class InputManager : MonoBehaviour
OnKeyReleased?.Invoke(key); OnKeyReleased?.Invoke(key);
} }
} }
/// <summary>
/// 更新指定轨道的判定文本和颜色
/// </summary>
public void ShowJudgeResult(int trackIndex, string result)
{
if (!showJudgeText) return;
if (trackJudgeTexts == null || trackIndex < 0 || trackIndex >= trackJudgeTexts.Length) return;
var textObj = trackJudgeTexts[trackIndex];
if (textObj == null) return;
textObj.text = result;
switch (result)
{
case "Perfect":
textObj.color = perfectColor;
break;
case "Great":
textObj.color = greatColor;
break;
case "Good":
textObj.color = goodColor;
break;
case "Miss":
textObj.color = missColor;
break;
default:
textObj.color = Color.white;
break;
}
}
} }
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d2b29530f1a693242b59ebe1fb54f8d2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 088ed1ed6b6731f43ad3166781e3e931, type: 3}
m_Name: NoteJudgeConfig
m_EditorClassIdentifier:
perfectRange: 0.05
greatRange: 0.1
goodRange: 0.2
missRange: 0.3
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f870aa419242e72438b57ac9659f61e9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+73 -15
View File
@@ -8,13 +8,16 @@ public class Note : BaseNote
private NoteController controller; private NoteController controller;
private bool isJudged = false; private bool isJudged = false;
[Header("判定区间配置")]
public NoteJudgeConfig judgeConfig; // 判定区间配置,需在预制体或生成时赋值
private void Awake() private void Awake()
{ {
anim = GetComponent<AnimationController>(); anim = GetComponent<AnimationController>();
controller = GetComponent<NoteController>(); controller = GetComponent<NoteController>();
} }
public void Setup(KeyCode key, int trackIndex, float speed, float hitTime, string color) public void Setup(KeyCode key, int trackIndex, float speed, float hitTime, string color, NoteJudgeConfig judgeConfig)
{ {
keyToPress = key; keyToPress = key;
noteColor = color; noteColor = color;
@@ -22,6 +25,7 @@ public class Note : BaseNote
Speed = speed; Speed = speed;
this.hitTime = hitTime; this.hitTime = hitTime;
isJudged = false; isJudged = false;
this.judgeConfig = judgeConfig;
if (controller != null) if (controller != null)
{ {
@@ -29,6 +33,12 @@ public class Note : BaseNote
} }
InputManager.OnKeyPressed += HandlePress; InputManager.OnKeyPressed += HandlePress;
// 判定区间配置检查
if (judgeConfig == null)
Debug.LogError($"NoteJudgeConfig is null! 判定区间配置未传入!track={trackIndex}");
else
Debug.Log($"NoteJudgeConfig: perfect={judgeConfig.perfectRange}, great={judgeConfig.greatRange}, good={judgeConfig.goodRange}, miss={judgeConfig.missRange}");
} }
private void OnDestroy() private void OnDestroy()
@@ -38,27 +48,75 @@ public class Note : BaseNote
private void HandlePress(KeyCode key) private void HandlePress(KeyCode key)
{ {
// 确保只有匹配的按键触发,并且音符处于判定区 // 只判定正确轨道且在判定区
if (isJudged || key != keyToPress || (controller != null && !controller.IsInJudgeZone())) if (isJudged || key != keyToPress || (controller != null && !controller.IsInJudgeZone()))
return; return;
float timeDifference = Mathf.Abs(Time.time - hitTime); float timeDifference = Mathf.Abs(Time.time - hitTime);
string judgeResult = null;
if (timeDifference <= 0.08f) if (judgeConfig != null)
{ {
Debug.Log($"短音符 {keyToPress}: Perfect"); if (timeDifference <= judgeConfig.perfectRange)
} {
else if (timeDifference <= 0.15f) Debug.Log($"{keyToPress}: Perfect");
{ judgeResult = "Perfect";
Debug.Log($"短音符 {keyToPress}: Great"); }
else if (timeDifference <= judgeConfig.greatRange)
{
Debug.Log($"{keyToPress}: Great");
judgeResult = "Great";
}
else if (timeDifference <= judgeConfig.goodRange)
{
Debug.Log($"{keyToPress}: Good");
judgeResult = "Good";
}
else if (timeDifference <= judgeConfig.missRange)
{
Debug.Log($"{keyToPress}: Miss");
judgeResult = "Miss";
InputManager.Instance?.ShowJudgeResult(TrackIndex, judgeResult);
JudgeMiss();
return;
}
else
{
Debug.Log($"{keyToPress}: Miss");
judgeResult = "Miss";
InputManager.Instance?.ShowJudgeResult(TrackIndex, judgeResult);
JudgeMiss();
return;
}
} }
else else
{ {
Debug.Log($"短音符 {keyToPress} Miss"); // 兼容旧逻辑
JudgeMiss(); if (timeDifference <= 0.08f)
return; {
Debug.Log($"{keyToPress}: Perfect");
judgeResult = "Perfect";
}
else if (timeDifference <= 0.15f)
{
Debug.Log($"{keyToPress}: Great");
judgeResult = "Great";
}
else
{
Debug.Log($"{keyToPress}: Miss");
judgeResult = "Miss";
InputManager.Instance?.ShowJudgeResult(TrackIndex, judgeResult);
JudgeMiss();
return;
}
} }
// 显示判定文本
if (!string.IsNullOrEmpty(judgeResult))
{
InputManager.Instance?.ShowJudgeResult(TrackIndex, judgeResult);
}
Judge(); Judge();
} }
@@ -81,7 +139,6 @@ public class Note : BaseNote
ReturnToPool(); ReturnToPool();
if (anim !=null) if (anim !=null)
{ {
Debug.Log("执行");
anim.PlayDestroyAnimation(noteColor); anim.PlayDestroyAnimation(noteColor);
} }
@@ -91,7 +148,8 @@ public class Note : BaseNote
{ {
if (isJudged) return; if (isJudged) return;
isJudged = true; isJudged = true;
Debug.Log($"短音符 {keyToPress} Miss"); Debug.Log($"{keyToPress} Miss");
// InputManager.Instance?.ShowJudgeResult(TrackIndex, "Miss"); // 已在HandlePress中调用
ReturnToPool(); ReturnToPool();
} }
@@ -117,11 +175,11 @@ public class Note : BaseNote
} }
/// <summary> /// <summary>
/// 由 Controller 调用,通知 Note 是否判定区域内 /// 由 Controller 通知 Note 是否进入判定区
/// </summary> /// </summary>
public void SetJudgeZone(bool inZone) public void SetJudgeZone(bool inZone)
{ {
// 如果音符离开判定区域且还未判定则判 Miss // 离开判定区未判定则判 Miss
if (!inZone && !isJudged) if (!inZone && !isJudged)
{ {
JudgeMiss(); JudgeMiss();
@@ -0,0 +1,18 @@
using UnityEngine;
/// <summary>
/// 音符判定区间配置,支持在 Inspector 中调整
/// </summary>
[CreateAssetMenu(fileName = "NoteJudgeConfig", menuName = "Game/NoteJudgeConfig")]
public class NoteJudgeConfig : ScriptableObject
{
[Header("判定区间(单位:秒)")]
[Tooltip("Perfect 判定最大时间偏差")]
public float perfectRange = 0.05f;
[Tooltip("Great 判定最大时间偏差")]
public float greatRange = 0.1f;
[Tooltip("Good 判定最大时间偏差")]
public float goodRange = 0.2f;
[Tooltip("Miss 判定最大时间偏差")]
public float missRange = 0.3f;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 088ed1ed6b6731f43ad3166781e3e931
@@ -18,6 +18,8 @@ public class NoteSpawner : MonoBehaviour
public float spawnOffset = 0f; // 生成音符时的时间偏移量 public float spawnOffset = 0f; // 生成音符时的时间偏移量
public float bpm; public float bpm;
public NoteJudgeConfig judgeConfig; // 判定区间配置,需在 Inspector 赋值
private Beatmap beatmap; private Beatmap beatmap;
private float startTime; // 存储歌曲开始时间 private float startTime; // 存储歌曲开始时间
private bool isSpawning = false; private bool isSpawning = false;
@@ -106,7 +108,7 @@ public class NoteSpawner : MonoBehaviour
if (noteScript != null) if (noteScript != null)
{ {
float noteSpawnTime = Time.time; float noteSpawnTime = Time.time;
noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), noteData.time, noteData.color); noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), noteData.time, noteData.color, judgeConfig);
Debug.Log($"到达时间:{noteSpawnTime + (60f / bpm) * 4}"); Debug.Log($"到达时间:{noteSpawnTime + (60f / bpm) * 4}");
} }
else else
@@ -142,6 +144,7 @@ public class NoteSpawner : MonoBehaviour
float segmentInterval = (60f / bpm) / 4f; float segmentInterval = (60f / bpm) / 4f;
int segmentCount = Mathf.CeilToInt(noteData.length / segmentInterval); int segmentCount = Mathf.CeilToInt(noteData.length / segmentInterval);
Transform spawnPoint = spawnPoints[noteData.trackIndex]; Transform spawnPoint = spawnPoints[noteData.trackIndex];
// 修正:scheduledEndTime 应为游戏时间轴上的绝对时间(noteData.time + noteData.length
float scheduledEndTime = noteData.time + noteData.length; float scheduledEndTime = noteData.time + noteData.length;
// 生成唯一 id // 生成唯一 id
@@ -160,7 +163,7 @@ public class NoteSpawner : MonoBehaviour
HoldNote holdNote = startObj.GetComponent<HoldNote>(); HoldNote holdNote = startObj.GetComponent<HoldNote>();
if (holdNote != null) if (holdNote != null)
{ {
holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start"); holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start", judgeConfig);
} }
else else
{ {
@@ -188,7 +191,7 @@ public class NoteSpawner : MonoBehaviour
HoldNote holdSeg = segObj.GetComponent<HoldNote>(); HoldNote holdSeg = segObj.GetComponent<HoldNote>();
if (holdSeg != null) if (holdSeg != null)
{ {
holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, segmentDelay, isEndSegment, scheduledEndTime, noteData.color, key, partType); holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, segmentDelay, isEndSegment, scheduledEndTime, noteData.color, key, partType, judgeConfig);
} }
else else
{ {
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6c664d3221dd154439a29a7752b2a48e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,155 @@
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class teamUIController : MonoBehaviour
{
[Header("teammate01")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally01;
[Tooltip("开关")]
public bool isAlly01_active = true;
[Tooltip("角色图")]
public Image teammate01_characterImage;
[Tooltip("血条")]
public Image teammate01_healthImage;
[Tooltip("虚血条")]
public Image teammate01_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate01_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate01_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate01_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally01_id;
[Tooltip("受击闪红")]
public Image teammate01_hurtRedImage;
[Header("teammate02")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally02;
[Tooltip("开关")]
public bool isAlly02_active = true;
[Tooltip("角色图")]
public Image teammate02_characterImage;
[Tooltip("血条")]
public Image teammate02_healthImage;
[Tooltip("虚血条")]
public Image teammate02_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate02_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate02_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate02_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally02_id;
[Tooltip("受击闪红")]
public Image teammate02_hurtRedImage;
[Header("teammate03")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally03;
[Tooltip("开关")]
public bool isAlly03_active = true;
[Tooltip("角色图")]
public Image teammate03_characterImage;
[Tooltip("血条")]
public Image teammate03_healthImage;
[Tooltip("虚血条")]
public Image teammate03_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate03_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate03_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate03_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally03_id;
[Tooltip("受击闪红")]
public Image teammate03_hurtRedImage;
[Header("teammate04")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally04;
[Tooltip("开关")]
public bool isAlly04_active = true;
[Tooltip("角色图")]
public Image teammate04_characterImage;
[Tooltip("血条")]
public Image teammate04_healthImage;
[Tooltip("虚血条")]
public Image teammate04_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate04_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate04_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate04_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally04_id;
[Tooltip("受击闪红")]
public Image teammate04_hurtRedImage;
[Header("teammate05")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally05;
[Tooltip("开关")]
public bool isAlly05_active = true;
[Tooltip("角色图")]
public Image teammate05_characterImage;
[Tooltip("血条")]
public Image teammate05_healthImage;
[Tooltip("虚血条")]
public Image teammate05_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate05_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate05_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate05_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally05_id;
[Tooltip("受击闪红")]
public Image teammate05_hurtRedImage;
[Header("currentEnemy")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_enemy;
[Tooltip("开关")]
public bool isEnemy_active = true;
[Tooltip("角色图")]
public Image currentEnemy_characterImage;
[Tooltip("血条")]
public Image currentEnemy_healthImage;
[Tooltip("虚血条")]
public Image currentEnemy_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI currentEnemy_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI currentEnemy_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI currentEnemy_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int enemy_id;
[Tooltip("受击闪红")]
public Image currentEnemy_hurtRedImage;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void FixedUpdate()
{
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 756cb32790bbee94ebb3e3b1cf061392
+1 -1
View File
@@ -17,7 +17,7 @@ PlayerSettings:
defaultCursor: {fileID: 0} defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0} cursorHotspot: {x: 0, y: 0}
m_SplashScreenBackgroundColor: {r: 0.745283, g: 0.745283, b: 0.745283, a: 1} m_SplashScreenBackgroundColor: {r: 0.745283, g: 0.745283, b: 0.745283, a: 1}
m_ShowUnitySplashScreen: 1 m_ShowUnitySplashScreen: 0
m_ShowUnitySplashLogo: 1 m_ShowUnitySplashLogo: 1
m_SplashScreenOverlayOpacity: 0.5 m_SplashScreenOverlayOpacity: 0.5
m_SplashScreenAnimation: 1 m_SplashScreenAnimation: 1