Tỷ lệ
Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 33 trên 85.
transform.localScale nhân kích thước của đối tượng theo từng trục. Một khối lập phương mặc định có mỗi cạnh dài 1 đơn vị, vì vậy khối lập phương có localScale (4, 1, 0.5) rộng 4 đơn vị, cao 1 đơn vị và sâu nửa đơn vị. Để tăng kích thước đồng đều, hãy nhân với Vector3.one, có giá trị (1, 1, 1). Bong bóng xà phòng này lớn thêm 0.3 đơn vị mỗi giây cho đến khi rộng 3 đơn vị:
public float size = 1f;
void Update()
{
size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
transform.localScale = Vector3.one * size;
}Mathf.Min(a, b) trả về số nhỏ hơn trong hai số, vì vậy size tăng cho đến khi đạt 3 rồi giữ nguyên ở mức 3.
Tỷ lệ được tính quanh điểm chốt của đối tượng. Với các hình dạng có sẵn của Unity, điểm chốt nằm ở tâm. Khối lập phương có cạnh dài 1 đơn vị đặt trên mặt đất có tâm tại y = 0.5. Nếu tăng chiều cao của khối lên 3 đơn vị, khối vươn lên 1.5 đơn vị và xuống 1.5 đơn vị tính từ tâm, nên một nửa khối sẽ chìm xuống đất. Để đứng trên mặt đất, tâm khối phải nằm ở độ cao bằng một nửa chiều cao của khối: y = 1.5.
Kích thước của đối tượng con được nhân với kích thước của đối tượng cha: đối tượng con có localScale (1, 1, 1) nằm dưới đối tượng cha được tăng tỷ lệ lên 2 sẽ được vẽ lớn gấp đôi. transform.lossyScale đọc kích thước cuối cùng đó trong thế giới và chỉ có thể đọc; bạn đặt giá trị cho localScale.
Thử thách
Trung bìnhLàm tan khối băng xuống còn 0.4, giữ khối băng trên mặt đất.
- Thêm một trường
float size = 1f;. TrongUpdate(), đặtsize = Mathf.Max(size - melt * Time.deltaTime, 0.4f);. - Đặt
transform.localScale = Vector3.one * size;. - Giữ đáy khối băng ở y = 0: đặt y của vị trí thành
size / 2, giữ nguyên x và z.
Nhấn Chơi: khối băng co lại và vẫn nằm trên mặt đất. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Melt : MonoBehaviour
{
public float melt = 0.2f;
void Update()
{
// Thu nhỏ theo giá trị melt mỗi giây cho đến khi còn 0.4, giữ đáy chạm mặt đất
}
}
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity