This commit is contained in:
huadexuan committed 2026-09-07 18:02:50 +08:00
1 parent ffb050f636
commit 05799bf2de
8 files changed
+1178 -42

No files matched your search

File diff suppressed because it is too large. Load diff
File renamed without changes.
@@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 14
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -40,24 +40,24 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
spriteMeshType: 0
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: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@@ -126,13 +126,41 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: PlayableAds
maxTextureSize: 2048
maxPlaceholderSize: 32
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: WebGL
maxTextureSize: 2048
maxPlaceholderSize: 32
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:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
File renamed without changes.
@@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 14
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -40,24 +40,24 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
spriteMeshType: 0
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: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@@ -72,7 +72,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 256
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
@@ -126,13 +126,41 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: PlayableAds
maxTextureSize: 2048
maxPlaceholderSize: 32
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: WebGL
maxTextureSize: 2048
maxPlaceholderSize: 32
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:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
File renamed without changes.
@@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 14
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -40,24 +40,24 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
spriteMeshType: 0
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: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@@ -72,7 +72,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 1024
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
@@ -126,13 +126,41 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: PlayableAds
maxTextureSize: 2048
maxPlaceholderSize: 32
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: WebGL
maxTextureSize: 2048
maxPlaceholderSize: 32
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:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
+25 -8
View File
@@ -285,7 +285,14 @@ Canvas(Screen Space - Overlay)
│ └── 暂停按钮
└── BottomSummonPanel
├── PanelBackground(召唤栏大框)
├── ManaRow(10 个能量豆)
├── ManaBar(连续能量槽)
│ ├── ManaBarBackground
│ └── ManaBarFill
├── ManaRow(独立能量豆区域)
│ ├── ManaBead_01
│ ├── ManaBead_02
│ ├── ……
│ └── ManaBead_10
└── CardRow(5 个角色卡片)
├── RoleCard_01
├── RoleCard_02
@@ -319,16 +326,24 @@ RoleCard
└── Button(点击区域)
```
### 3. 能量豆设计
### 3. 能量槽与能量豆设计
- 最大能量为 10 个能量豆。
- 10 个能量豆统一使用蓝色,与主角普攻的蓝色能量球保持一致。
- 已拥有的能量显示为明亮蓝色,未拥有的能量显示为暗蓝色或半透明。
- 能量按固定时间回复 1 个,不能超过上限 10。
- 召唤卡点击后先播放主角召唤动画,真正执行 `OnSkillHit1` 并成功生成单位时再扣除能量。
能量槽和能量豆都属于 `BottomSummonPanel`,但它们是两个相互独立的 UI 区域,不合并为同一个控件:
- `ManaBar`:连续能量槽,显示当前能量的精确恢复进度,例如 `6.4/10`。
- `ManaRow`:离散能量豆区域,显示 10 个可视化能量单位。
- `ManaBar` 负责表现能量从 0 到 10 的连续增长过程。
- `ManaRow` 负责表现已经积累完成的能量豆数量。
- 两者绑定同一个 Mana 数值,但只各自负责一种视觉表达。
- 最大能量为 10 个能量单位,不能超过上限。
- 能量按固定时间回复,能量槽应立即更新,能量豆在达到完整单位时更新。
- 召唤资源独立于 `WorldHealthBar` 的角色技能能量,不使用同一条数值。
```text
ManaBar
├── ManaBarBackground
└── ManaBarFill
ManaRow
├── ManaBead_01
├── ManaBead_02
@@ -354,7 +369,9 @@ ManaRow
- 底部召唤栏固定在安全区域内,不随主角和相机移动。
- 召唤栏高度控制在屏幕底部约 20%~25%,不能遮挡主角、敌人和投射物轨迹。
- 能量豆放在 5 张角色卡片上方,形成“能量 → 卡片”的直接操作关系。
- `BottomSummonPanel` 内部从上到下依次为 `ManaBar`、独立的 `ManaRow` 和 `CardRow`。
- `ManaBar` 显示连续能量恢复进度,`ManaRow` 显示已经充满的离散能量豆,二者不合并。
- 能量区域放在 5 张角色卡片上方,形成“能量槽/能量豆 → 卡片”的直接操作关系。
- 5 张卡片水平排列,保持相同尺寸和间距。
- 顶部只放关卡信息、敌方状态和暂停按钮,不增加技能、背包或属性入口。
- 所有 UI 美术资源优先使用透明 RGBA PNG;动态文字、数字、冷却和能量状态由 Unity 运行时绘制。