Toán học rất quan trọng trong việc phát triển game dù là ở nền tảng nào. Unity cung cấp lớp Mathf
hỗ trợ lập trình viên thao tác với các hàm toán học thuận tiện hơn.
Mathf
là 1 trong số các bộ chứa các biến và hàm toán học tiện ích do Unity cung cấp.
Abs
Là hàm trả về giá trị tuyệt đối của tham số.
2 prototype của hàm cho kiểu dữ liệu float
và int
như sau:
public static float Abs(float value); public static int Abs(int value);
Asin - Acos - Atan - Sin- Cos - Tan
Asin
, Acos
, Atan
, Sin
, Cos
và Tan
là các hàm hỗ trợ tính toán giá trị của các hàm lượng giác và lượng giác ngược.
Cú pháp cho hàm Sin
như sau:
public static float Sin(float f);
Các hàm lượng giác khác cũng được sử dụng tương tự.
Giá trị f
truyền vào là góc lượng giác tính bẳng radian. Sử dụng hằng số Mathf.PI
để tính toán trên radian hoặc chuyển đổi sang radian bằng cách nhân góc với hằng số Mathf.Deg2Rag
.
Min - Max
- Hàm
Min
sẽ trả về giá trị nhỏ nhất trong danh sách tham số. - Hàm
Max
sẽ trả về giá trị lớn nhất trong danh sách tham số.
Danh sách tham số có thể bao gồm hai hoặc nhiều các giá trị. Kiểu dữ liệu của các giá trị có thể là số thực hoặc số nguyên.
Đối với việc so sánh 2 giá trị:
public static float Min( float a, float b); public static float Max( float a, float b);
Nếu có nhiều hơn 2 giá trị cần so sánh, sử dụng mảng để chứa các giá trị đó và sử dụng hàm được override như sau:
public static float Min(params float[] values); public static float Max(params float[] values);
Clamp
Hàm Clamp
có tác dụng giới hạn giá trị của 1 đối tượng trong phạm vi cho phép. Tuỳ vào nhu cầu, có thể sử dụng hàm Clamp
để giới hạn bất cứ khả năng nào của đối tượng.
Một số ví dụ về ứng dụng của hàm Clamp
:
- Giới hạn toạ độ của đối tượng trong phạm vi màn hình.
- Giới hạn góc quay của 1 khẩu súng.
- Giới hạn tốc độ, damage, các chỉ số sức mạnh, ... của 1 nhân vật trong game.
Prototype của hàm như sau:
public static float Clamp(float value, float min, float max);
Trong đó, min
và max
là 2 giá trị mút. Giá trị trả về của hàm sẽ luôn nằm giữa min
và max
, bất kể giá trị của biến value
.
PingPong
PingPong
là hiệu ứng mà 1 đối tượng luôn di chuyển ở giữa 2 đầu mút của nó. Nó làm liên tưởng đến trò chơi bóng bàn, khi quả bóng được đánh qua lại giữa 2 người chơi.
Hàm PingPong
trong Mathf
có nguyên mẫu của hàm như sau:
public static float PingPong(float t, float length);
Trong đó, length
chính là giá trị lớn nhất mà hàm có thể trả về. Giá trị trả về này sẽ nằm trong khoảng [0, length]
.
Một số hàm khác và chức năng
Ngoài các hàm trên, lớp Mathf
còn một số hàm khác:
PI | Hằng số PI (3.1415926535...), không được phép chỉnh sửa. |
Deg2Rag | Hằng số chuyển đổi từ độ thông thường sang radians. |
Rag2Deg | Hằng số chuyển đổi từ radians sang độ thông thường. |
Approximately | So sánh giá trị của 2 số thực nếu chúng tương đương nhau. |
IsPowerOfTwo | Trả về true nếu giá trị là luỹ thừa của 2. |
ClosetPowerOfTwo | Trả về giá trị luỹ thừa của 2 gần nhất. |
NextPowerOfTwo | Trả về giá trị luỹ thừa của 2 lớn hơn gần nhất. |
Log | Tính giá trị logarit của 1 số với cơ số tuỳ ý. |
Log10 | Tính giá trị logarit của 1 số với cơ số 10. |
Round | Trả về số nguyên gần nhất với giá trị truyền vào. |
Sqrt | Tính căn bậc hai của 1 số. |
Pow | Tính luỹ thừa của 1 số với số mũ bất kỳ. |