1. 定制一个刻度条相关的控件,如下:
基本原理是继承Graphic类,并重写OnPopulateMesh函数,用到一些基本的OpenGL画矩形的算法。比较有参考的是制作控件的习惯和编辑器的使用,从而使工程模块化,提供工作效率。
代码如下:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
[ExecuteInEditMode]
public class BloodBar : Graphic {
public float _bloodNum = 7;
public float bloodNum {
get {
return _bloodNum;
}
set {
_bloodNum = value;
if(_bloodNum < 1) {
_bloodNum = 1;
Debug.LogWarningFormat("The number should not less than 1!");
}
SetAllDirty();
}
}
private float lineWidth = 1f;
private float deltaWidth = 1;
/// <summary>
/// Update the UI renderer mesh.
/// </summary>
protected o