近期热门
粉丝2
关注 0
获赞 0
关于在unity中创建血条

[U3D] 关于在unity中创建血条

[复制链接]
16332 15 0 2 11年前 举报

经过研究一些高手制作的gui血条后发现讲解的不够详细 结合本人学的一点点的知识对它解释一下希望对后学者有帮助:

using UnityEngine;  
using System.Collections;  
   
public class BloodBarTest : MonoBehaviour {  

    public float bloodValue;
// 血条值
    private float tmpValue;  
     //后面讲解
  private bool onoff;  
   
   void Start () {  
              tmpValue = bloodValue=0f;  
//将血条值初始化为0
  }  
  
   void OnGUI (){  
       GUI.skin = theSkin;
//这一句要有新建的有皮肤 没有的话就删了
       if (GUI.Button (new Rect (50,20,40,20),"加血")){  
           tmpValue = -1.0f;  
       }  
//创建一个用于加血的按钮,点击加血
        if (GUI.Button (new Rect (50,50,40,20),"减血")){  
          tmpValue = 0f;  
       }  
//创建一个用于减血的按钮,点击减血

     if (bloodValue > 0.0f) tmpValue = 0.0f;  
     if (bloodValue < -1.0f) tmpValue = -1.0f;  
//这两句经过本人研究发现bloodValue不会出现大于0或者是小于-1的情况,所以可以注释掉。
     bloodValue = Mathf.Lerp(bloodValue,tmpValue,0.01f);
//这一句就是关键了mathf用于控制它的前两个参数的取值范围 当第三个参数为 0时候等于第一个参数值当第三个参数等于-1时候为第二个参数值  ,这里取0.01就是让他接近与第一个参数所以当按下加血按钮时候bloodValue 值会从0逐渐变为负数并且会逐渐靠近-1。同理当按下减血按钮时候bloodValue 会逐渐靠近0。 从而出现加血减去血的状况。

           GUI.VerticalScrollbar(new Rect (20,20,20,200), 1.0f, bloodValue,0.0f, 1.0f,GUI.skin.GetStyle("verticalScrollbar"));
           }  
               
         bloodValue = Mathf.Lerp(bloodValue,tmpValue,0.01f);
       
        //这个是制作滚动条比较简单就不解释了       
   
   
  
}  
主要还是 bloodValue = Mathf.Lerp(bloodValue,tmpValue,0.01f);
这一句理解了就很简单。
0
点赞
0
打赏
2
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论15
您需要登录后才可以回帖 登录


9年前
回复

使用道具 举报

呵呵  先收了再试试
11年前
回复

使用道具 举报

呵呵  先收了再试试
11年前
回复

使用道具 举报

支持了
可以学习一下
11年前
回复

使用道具 举报

学习
11年前
回复

使用道具 举报

学习
11年前
回复

使用道具 举报

:)滚动条制作,受教了
11年前
回复

使用道具 举报

22353255 来自手机
不错,哎。。。。代码啊代码。。。。。。哎
11年前
回复

使用道具 举报

学习了,谢谢楼主:)
11年前
回复

使用道具 举报

数据加载中....
没有更多评论了
您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器