[Hướng Dẫn] Hướng dẫn làm thanh máu (Health Point)

FreyrFreyr Posts: 14Registered
edited August 2019 in Unity
[align=center]Untitled-19jpg[/align]

Bài này sẽ giúp các bạn có thể bắt đầu làm một game nhập vai (RPG) với thành phần cơ bản không thể thiếu đó là thanh máu (Hay còn gọi là HP - Health Point) bằng cách sử dụng GUI trong C#.

Hãy tự gõ code chứ đừng copy nhá :D

B1. Khởi động Unity và vào File | New Project và điều chỉnh như sau:

Untitled-1jpg

B2. Vào Game Object | Creat Other | Cube như hình sau để tạo một khối hộp.

Untitled-2jpg

B3. Tại thẻ Inspector, bấm vào hình bánh răng và chọn Reset để trả các giá trị tọa độ hay độ căng lại vị trí ban đầu.

Untitled-3jpg

B4. Nhập giá trị cho Scale thành X = 100, Y = 1 và Z = 100 như hình sau:

Untitled-4jpg

B5.  Tại thẻ Project, truy cập vào thư mục Assets | Standard Assets | Character Controllers và kéo thả First Person Controller.prefab vào khung nhìn Scene.

Untitled-6jpg

B6. Nhấp chọn vào prefab vừa đưa vào khung nhìn Scene và điều chỉnh giá trị tọa độ tại thẻ Inspector như sau:

Untitled-7jpg

B7. Nhấp chuột phải vào thư mục Assets trong thẻ Project và chọn Create | Folder và đặt tên là Script.

Untitled-8jpg

B8. Nhấp chuột phải vào thư mục Script và chọn Creat | C# Script và đặt tên là PlayerHealth.

Untitled-9jpg

B9. Double click vào file C# PlayerHealth vừa tạo và gõ đoạn code sau vào:
using UnityEngine;
using System.Collections;

public class PlayerHealth : MonoBehaviour {
 
 public int maxHealth = 100;
 public int curHealth = 100;
 
 public float healthBarLength;
 
 // Use this for initialization
 void Start () {
  healthBarLength = Screen.width / 2;  
 }
 
 // Update is called once per frame
 void Update () {
  AddjustCurrentHealth(0);
 }
 
 void OnGUI(){
  GUI.Box(new Rect(10,10, healthBarLength, 20), curHealth + "/" + maxHealth);
 }
 
 public void AddjustCurrentHealth(int adj) {
  curHealth += adj;
  
  if(curHealth < 0)
   curHealth = 0;
  
  if(curHealth > maxHealth)
   curHealth = maxHealth;
  
  if(maxHealth < 1)
   maxHealth = 1;
  
  healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
 }
}

B10. Trở lại làm việc với Unity Editor, tại thẻ Hierarchy đổi tên First Person Controller thành Player.

Untitled-10jpg

B11. Kéo thả file C# Player Health vào Player như hình sau:

Untitled-11jpg

B12. Nhấp chọn Main Camera trong thẻ Hierarchy và ấn Delete để xóa đối tượng này.

B13. Nhấp chuột phải vào Cube trong thẻ Hierarchy và chọn Rename rồi đổi tên thành Plane. Sau đó ấn Play để kiểm tra thành quả.

Untitled-13jpg

Untitled-12jpg

B14. Tiếp tục thực hiện thanh máu cho Enemy. Vào Game Object | Creat Other | Cube và điều chỉnh các giá trị tại thẻ Inspector như sau:

Untitled-14jpg

B15. Nhấp chuột phải vào thư mục Script trong thẻ Project và chọn Creat | C# Script và đặt tên là EnemyHealth.

Untitled-15jpg

B16. Double click vào file C# EnemyHealth vừa tạo và nhập đoạn code sau vào:
using UnityEngine;
using System.Collections;

public class EnemyHealth : MonoBehaviour {
 
 public int maxHealth = 100;
 public int curHealth = 100;
 
 public float healthBarLength;
 
 // Use this for initialization
 void Start () {
  healthBarLength = Screen.width / 2;  
 }
 
 // Update is called once per frame
 void Update () {
  AddjustCurrentHealth(0);
 }
 
 void OnGUI(){
  GUI.Box(new Rect(10, 40, healthBarLength, 20), curHealth + "/" + maxHealth);
 }
 
 public void AddjustCurrentHealth(int adj) {
  curHealth += adj;
  
  if(curHealth < 0)
   curHealth = 0;
  
  if(curHealth > maxHealth)
   curHealth = maxHealth;
  
  if(maxHealth < 1)
   maxHealth = 1;
  
  healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
 }
}

B17. Kéo thả file C# EnemyHealth vào Evil Cube như hình sau:

Untitled-16jpg

B18. Vào GameObject | Creat Other | Directional Light và điều chỉnh thông số tại thẻ Inspector như sau:

Untitled-17jpg

B19. Cuối cùng, ấn nút Play để kiểm tra thành quả.

Untitled-19jpg


Nguồn : http://vietunity3d.blogspot.com/

Comments

Sign In or Register to comment.