3D遊戲09——血條的預置設計

使用IMGUI實現血條設計

  1. 設計兩個按鈕分別控制血量的增加和減少
  2. 爲了使血條平滑的變化,使用Mathr.Lerp來計算血量值
  3. 具體做法,新建一個空對象IMGUI-H-Bar,將如下腳本掛載到對象上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine UI;

public class IMGUIxuetiao : MonoBehaviour {
    public Slider slider;
    private Rect health_pos; //血條位置
    private Rect add_pos; // 加血按鈕位置
    private Rect sub_pos; //減血按鈕位置
    private float health = 0.0f; //血量
    private float temp; 
    // Use this for initialization
    void Start () {

        addPos = new Rect(0, 0, 50, 25);
        subPos = new Rect(50, 0, 50, 25);
    }

    // Update is called once per frame
    void Update () {

    }
    private void OnGUI()
    {
        if (GUI.Button(add_pos, "加血"))
        {
            temp = health + 0.1f > 1.0f ? 1.0f : health + 0.1f;
        } else if (GUI.Button(sub_pos, "減血"))
        {
            temp = health - 0.1f < 0 ? 0.0f: health - 0.1f;
        }
        health_pos = new Rect(Screen.width / 2 - 50, 0, 100, 50);
        health = Mathf.Lerp(health, temp, 0.05f);
        GUI.HorizontalScrollbar(health_pos, 0, health, 0, 1);
    }
}

使用UGUI實現血條設計

  1. 導入遊戲對象,(我是從Assets Store中下載的小人),並拖入到場景中,命名爲Ethan
  2. 在Ethan中新建一個plane對象
  3. 在Ethan中添加一個子畫布(右鍵 -> UI -> Canvas)
  4. 在Canvas中添加滑條(右鍵 -> UI -> Slider)作爲血量條
    設置Canvas的屬性如下:
    在這裏插入圖片描述
  5. 設置Slider的屬性如下:
    禁灰Background和Handle Slide Area
    修改rotation和image中的color
    爲了讓UGUI和IMGUI同時出現在界面上,我們在腳本中新增一個Slider實例:
public Slider slider2;
slider2.value = health;

可以試着運行,更改血條變化:
在這裏插入圖片描述
爲了使血條任何時候都面對主攝像機,我們爲Canvas掛載如下腳本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LookAtMamera : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        this.transform.LookAt(Camera.main.transform.position);
    }
}

兩種實現的優缺點

IMGUI的優點

  • 符合傳統遊戲編程
  • 把程序主動權掌握在編寫代碼的程序員手中,避免了UI元素在前端的更改
  • 執行效率高
  • 渲染效果好

IMGUI的缺點

  • 調試相對比較困難,維護成本高
  • 不利於設計佈局
  • 渲染速度慢

UGUI的優點

  • 可視化,易於設計和佈局
  • 支持多模式、多攝像機渲染
  • UI元素與遊戲場景融匯式交互

UGUI的缺點

  • 學習成本高
  • 對設備要求更高

預置的使用方法

  1. 直接將預製體對象拖入場景
  2. 用腳本導入場景
  3. 將Canvas預製體拖入場景,成爲遊戲對象的子對象
  4. 將Canvas的子對象Slider拖入腳本組件的Slider對象中

項目傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章