血条(Health Bar)的预制设计。
具体要求如下:
- 分别使用 IMGUI 和 UGUI 实现
- 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机
- 分析两种实现的优缺点
- 给出预制的使用方法
IMGUI实现
将以下脚本直接挂在对象上即可
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class IMGUI : MonoBehaviour {
private void OnGUI()
{
Vector3 worldPos = new Vector3(transform.position.x, transform.position.y, transform.position.z);
Vector2 screenPos = Camera.main.WorldToScreenPoint(worldPos);
GUI.HorizontalScrollbar(new Rect(screenPos.x - 50, screenPos.y, 100, 100), 0, 50, 0, 100);
}
}
UGUI实现
GameObject -> 3D Object -> Cube
在Cube下添加UI -> Canvas
在Canvas下添加 UI -> Slider
delete掉Slider下的Handle
修改Fill Area的left、right改为0,避免为Handel留的空白
修改Fill Area ->Fill下color为红色,表示血条
Github代码
游戏视频