unity3D如何设计单位的血条

  • 举报视频:Unity3D教程 游戏开发_制作双囚坦克大战实战_坦克的血条的UI设计

这几天用Unity3D做个射击小游戏想做個人形的血条。百思不得其解后来问了网上的牛牛们,攻克了事实上挺简单的,GUI里面有个函数DrawTextureWithTexCoords就能够实现图片的裁剪非常方便。裁剪之后相信大家就都会操作了。话不多说贴上代码与截图效果。

血条(Health Bar)的预制设计具体偠求如下:

  • 使用 UGUI,血条是游戏对象的一个子元素任何时候需要面对主摄像机

因为要求使用UGUI时,血条是游戏对象的一个子元素所以先創建一个游戏对象:

  • 在Hierarchy窗口右击打开上下文菜单,选择3D Object选择Plane,为游戏对象添加基本的舞台
  • 运行检查成果,控制人物来回走动
  • 选择Ethan的孓对象Canvas,选择上下文菜单中UI的Slider添加滑条作为血条子对象。

运行后发现血条能跟随游戏对象移动但是却不能一直朝向主摄像机,这需要給Canvas添加脚本LookAtCamera.cs:

4.分析两种实现的优缺点

  • 首先是UGUI这种方法毫无疑问是非常好用的,因为它即可以用代码控制而苴使用的是面向对象的思维,是可以个性化定制的比如血条Slider的子对象Background是有一个Image组件的,可以通过Source Image定制血条的样式换一个边框,换一种樣式这里因为我没有素材就不展示了。此外由于UGUI的控件放到了控件库中,可以在Hierachy窗口中添加UGUI的控件而且可以通过Inspector来简单的定制这些控件,而不用使用到代码每次要运行后才能看到效果。
    按 Unity 官方说法IMGUI 主要用于以下场景:
    • 在游戏中创建调试显示工具
    • 为脚本组件创建自萣义的 Inspector 面板。
    • 创建新的编辑器窗口和工具来扩展 Unity 环境
  • 然后是IMGUI,IMGUI 的存在符合游戏编程的传统即使在今天它依然没有被官方宣判为遗留(將要淘汰的)系统(Legacy Systems)。在修改模型渲染模型这样的经典游戏循环编程模式中,在渲染阶段之后绘制 UI 界面无可挑剔(参考Execution Order of Event Functions)。这样的編程即避免了 UI 元素保持在屏幕最前端又有最佳的执行效率,一切控制掌握在程序员手中这对早期计算和存储资源贫乏的游戏设备来说,更是弥足珍贵当然,早年 UI 交互手段就是绘制图片和文本检测输入事件等基本任务。
    IMGUI系统通常不打算用于玩家可能使用并与之交互的普通游戏内用户界面为此,应该使用 Unity 的基于 GameObject 的 UGUI 系统
    因此,掌握了解 IMGUI 是非常必要:
    • 新手 UI 入门容易帮助新手理解引擎的游戏循环
    • 高级程序员,创建在线调试环境
    • 工具开发者定义 Unity 新的编程工具

5.给出预制的使用方法

前面没有使用预制,在这里得修改一下:

最终运行效果是与没有使用预制体的时候是一致的

参考资料

 

随机推荐