Bài này 3DVietpro hướng dẫn các bạn tạo đông hồ đo tốc độ trong game đua xe
Bạn cần tạo 2 hình ảnh trên photoshop (cung đơn vị đo tốc độ, và kim đo tốc độ) để chúng ta có thể điều khiển chúng
Bước 1: Khai báo biến và attach hình ảnh vào biếnTrích dẫn:
//Cung đơn vị đo tốc độ, và kim đo tốc độ
public GUIStyle speedDial;
public GUIStyle speedPointer;
public int minAngle = -90;
public int maxAngle = 180;
public float maxSpeed = 40;
public float speed;
//Script dùng để lấy biến tốc độ xe
private CarSpeed stCar;
Bước 2: Tìm đến đối tượng xe điều khiển lấy các thành phần trong tệp (CarSpeed có chưa các lệnh điều khiển xe)Trích dẫn:
void Start () {
stCar= GameObject.FindGameObjectWithTag("Car").GetComponent<CarSpeed>();
}
Bước 3: Liên tục lấy tốc độ của xe đang chạyTrích dẫn:
void Update () {
speed = stCar.currentSpeed;
}
Bước 4: điều khiển kim tốc độ xoay xung quanh cung tròn với vận tốc tối đa là maxSpeed void OnGUI()
{
GUI.Box(new Rect(Screen.width - 300, Screen.height - 300, 300, 300),"", speedDial);
float speedFactor = speed / maxSpeed;
float rotateAngle;
if (speed >= 0)
{
rotateAngle = Mathf.Lerp(minAngle, maxAngle, speedFactor);
}
else
{
rotateAngle = Mathf.Lerp(minAngle,maxAngle,-speedFactor);
}
GUIUtility.RotateAroundPivot(rotateAngle,new Vector2(Screen.width-150, Screen.height-150));
GUI.Box(new Rect(Screen.width - 300, Screen.height - 300, 300, 300),"", speedPointer);
}