IMGUI实现效果
UGUI实现效果
IMGUI代码 IMGUI血条.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IMGUI : MonoBehaviour {
public float bloodValue = 0.0f;
private float ResultValue;
private Rect rctBloodBar;
private Rect rctUpButton;
private Rect rctDownButton;
private bool onoff;
void Start()
{
rctBloodBar = new Rect(20, 20, 200, 20);
rctUpButton = new Rect(20, 50, 40, 20);
rctDownButton = new Rect(70, 50, 40, 20);
ResultValue = bloodValue;
}
void OnGUI()
{
if (GUI.Button(rctUpButton, "加血"))
{
ResultValue += 0.1f;
}
if (GUI.Button(rctDownButton, "减血"))
{
ResultValue -= 0.1f;
}
if (ResultValue > 1.0f)
{
ResultValue = 1.0f;
}
if (ResultValue < 0.0f)
{
ResultValue = 0.0f;
}
bloodValue = Mathf.Lerp(bloodValue, ResultValue, 0.05f);
GUI.HorizontalScrollbar(rctBloodBar, 0.0f, bloodValue, 0.0f, 1.0f);
}
}
UGUI代码 UGUI.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UGUI : MonoBehaviour {
public RectTransform rectBloodPos;
public RectTransform blood;
public int reduceBlood = 0;
void Update()
{
Vector2 vec2 = Camera.main.WorldToScreenPoint(this.gameObject.transform.position);
rectBloodPos.anchoredPosition = new Vector2(vec2.x - Screen.width / 2 + 0, vec2.y - Screen.height / 2 + 60);
blood.GetComponent<RectTransform>().Right(reduceBlood);
}
private void OnGUI()
{
if (GUI.Button(new Rect(20, 30, 40, 20), "加血"))
{
reduceBlood -= 10;
if(reduceBlood < 0)
{
reduceBlood = 0;
}
}
if (GUI.Button(new Rect(70, 30, 40, 20), "减血"))
{
reduceBlood += 10;
if(reduceBlood > 200)
{
reduceBlood = 200;
}
}
}
}
ExtendsionMethod.cs
参考这个链接
using UnityEngine;
public static class ExtensionMethod
{
public static void Left(this RectTransform rTrans, int value)
{
rTrans.offsetMin = new Vector2(value, rTrans.offsetMin.y);
}
public static void Right(this RectTransform rTrans, int value)
{
rTrans.offsetMax = new Vector2(-value, rTrans.offsetMax.y);
}
public static void Bottom(this RectTransform rTrans, int value)
{
rTrans.offsetMin = new Vector2(rTrans.offsetMin.x, value);
}
public static void Top(this RectTransform rTrans, int value)
{
rTrans.offsetMax = new Vector2(rTrans.offsetMax.x, -value);
}
}
视频以及资源
视频以及资源