Flandre923
781 words
4 minutes
Untity学习记录-实现一个完整的2D游戏Demo-18-创建人物的状态

开发环境准备#

Hierarchy窗口美化插件,可在Unity Asset Store免费获取:

实用插件推荐#

  1. 安装步骤

    • 通过Package Manager → My Assets下载

    • 导入时取消勾选示例场景

    • 主要功能:

      • ///前缀实现分类标题高亮
      • 自定义颜色和字体对齐方式
      • 层级结构可视化优化
// 示例:使用三个斜杠创建分类标题
/// Player
[玩家相关对象...]
/// Enemies 
[敌人相关对象...]

Canvas基础配置#

核心组件设置#

// Main Canvas配置参数:
- Render Mode: Screen Space - Overlay
- UI Scale Mode: Scale With Screen Size
- Reference Resolution: 1920x1080 (根据项目需求)
- Match: 0.5 (平衡宽高比适应)
- Reference Pixels Per Unit: 16 (匹配素材PPU)

EventSystem适配#

// 新版Input System适配:
1. 替换默认EventSystem为InputSystemUIInputModule
2. 绑定自定义Input Action Asset
3. 配置对应输入按键(如确认、取消等)

血条系统实现#

素材准备与切割#

  1. Sprite Editor使用技巧

    • 自动切割结合手动调整
    • 合理命名切片(如Health_Frame, Health_Fill)
    • 注意锚点位置设置(Pivot → Bottom)

层级结构与组件#

HealthBar (空对象,锚点左上)
├── Health_Frame (Image)
├── Health_Red (Image, Fill Amount)
└── Health_Green (Image, Fill Amount)

关键组件参数#

// 血条填充Image组件:
- Image Type: Filled
- Fill Method: Horizontal
- Fill Origin: Left
- Fill Amount: 1 (初始满血)

头像框实现技巧#

遮罩(Mask)应用#

FaceFrame (空对象)
├── Cut (Image + Mask组件)
│   └── Face (玩家角色截图)
└── Frame (装饰边框)

实现步骤

  1. 使用角色站立截图作为头像源
  2. 通过Mask组件裁切出头部区域
  3. 添加装饰边框覆盖边缘

UI布局最佳实践#

锚点系统详解#

预设适用场景特点
左上状态栏保持与屏幕边缘固定距离
居中对话框始终位于屏幕中央
拉伸背景图适应各种分辨率

操作技巧

  • Alt+Shift:快速应用锚点预设
  • 按住Alt键拖动:同时调整锚点和位置

性能优化建议#

  1. 合批处理

    • 将静态UI元素合并到同一Canvas下
    • 动态更新元素使用单独Canvas
  2. 资源优化

    • 使用Sprite Atlas打包UI素材
    • 九宫格拉伸处理可缩放元素
  3. 渲染优化

    • 禁用不需要的Raycast Target
    • 合理设置Canvas的Pixel Perfect

调试技巧#

  1. 多分辨率测试

    • 在Game视图快速切换不同设备比例
    • 使用Device Simulator插件模拟移动设备
  2. 可视化辅助

void OnDrawGizmos() {
    Gizmos.DrawWireCube(transform.position, new Vector3(width, height));
}
  1. UI框架搭建流程

    1. 规划整体布局和层级
    2. 设置Canvas和EventSystem
    3. 搭建基础UI结构
    4. 配置锚点和自适应
    5. 添加交互逻辑

扩展功能预告#

在下一篇文章中,我们将:

  1. 实现血条与游戏数据的动态绑定
  2. 添加受伤时的血条闪烁效果
  3. 制作能量条充能动画
  4. 开发UI管理系统统一控制界面元素

小练习:尝试为血条添加以下效果:

  • 受伤时红色部分延迟减少
  • 低血量时脉冲警示效果
  • 治疗时的绿色渐显动画
Untity学习记录-实现一个完整的2D游戏Demo-18-创建人物的状态
https://fuwari.vercel.app/posts/unity/2dadvanture/18playerstate/
Author
Flandre923
Published at
2025-03-31