UI入门——血条制作

本文介绍了在Unity中使用IMGUI和UGUI制作血条的方法,包括动态效果展示、优缺点分析及预制件的使用。IMGUI适用于简单UI,编程实现但无法直观布局;UGUI提供所见即所得的界面设计,功能强大但操作复杂。讨论了World Space和Screen Space在性能和使用场景上的差异,并提出了解决血条暴露行踪问题的方案。
摘要由CSDN通过智能技术生成

文章目录

 

实验内容

实现简单血条预制:

  • 分别使用 IMGUI 和 UGUI 实现
  • 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机
  • 分析两种实现的优缺点
  • 给出预制的使用方法

步骤分析:
首先IMGUI在之前的实验中也有用到,主要是用来设置开始游戏和结束游戏的界面。实现方法是在onGUI函数中添加相应的控件(Label、Button等),也就是说每次都调用onGUI都会刷新一次所有控件。
而UGUI是课上新接触的UI设计工具。主要设计可以通过鼠标拖拽、设置属性等方式,在二维平面上完成UI设计,即时能够看到效果。换句话说可以不通过代码就能实现一定的UI效果。

分析完两者的一些区别之后就开始动手实现了。

IMGUI制作简单血条

由于IMGUI主要是通过代码来实现UI,所以也没有说需要建立模型什么的,调整位置也是靠代码控制xy坐标来实现。所以直接上代码:

public class IMGUIhealth : MonoBehaviour
{
    public float value;
    private float tmp;
    
    // Start is called before the first frame update
    private void OnGUI()
    {
    	// 加号按钮,点击时增加血量,每次增加十分之一
        if (GUI.Button(new Rect(450, 50, 40, 40), "+"))
        {
            tmp += 10;
            if (tmp > 100)
                tmp = 100;
        }
		// 减号按钮,点击时减少血量,每次减少十分之一
        if (GUI.Button(new Rect(100, 50, 40, 40), "-"))
        {
            tmp -= 10;
            if (tmp < 0)
                tmp = 0;
        }
		// 线性插值,使得变化更平滑
        value = Mathf.Lerp(value, tmp, 0.05f);
	
		// 使用HorizontalScrollbar作为血条主体,利用value来控制血量多少
        GUI.color = Color.red;
        GUI.HorizontalScrollbar(new Rect(200, 50, 200, 20), 0, value, 0, 100);
        
    }
}
  •  

代码主要添加了三个控件:两个Button负责加减血量,一个水平滚动条负责显示血量。
Button的用处就不讲了,之前实践过很多次了ÿ

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值