Thứ Hai, 21 tháng 10, 2013

Project RPG Bài 1. Hướng dẫn làm thanh máu (HP)



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#.


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


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


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.

 

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

 

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.

Click vào hình để xem chi tiết

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:


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.


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.


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.


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

Click vào hình để xem chi tiết

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ả.




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:

 
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.


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:


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


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




Không có nhận xét nào:

Đăng nhận xét