STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    Xử Lý Toán Học trong Unity

    Giới thiệu các hàm toán học cơ bản trong Unity với Mathf.
    29/03/2016 24/09/2020 3 phút đọc
    Xử Lý Toán Học trong Unity

    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 floatint như sau:

    public static float Abs(float value);
    public static int Abs(int value);

    Asin - Acos - Atan - Sin- Cos - Tan

    Asin, Acos, Atan, Sin, CosTan 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 đó, minmax là 2 giá trị mút. Giá trị trả về của hàm sẽ luôn nằm giữa minmax, 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ỳ.
    0 Bình luận
    Lập Trình Game

    Lập Trình Game

    Kiến thức, kỹ thuật, kinh nghiệm lập trình game.

    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021