ScreenPoint, ViewPoint và WorldPoint trong Unity3D
Bài viết giải thích sự khác biệt giữa ba cách biểu diễn điểm trong Unity3D: ScreenPoint (biểu diễn theo pixel của khung hình), ViewPoint (khung hình luôn có độ cao và rộng là 1), và WorldPoint (tọa độ thể hiện qua Transform.Position). Tác giả trình bày mục đích của việc có ba cách biểu diễn này là để giúp lập trình viên tạo game cross-platform linh hoạt hơn trên nhiều kích cỡ màn hình khác nhau.

Chào các bạn,
Hôm nay mình sẽ giúp các bạn phân biệt 3 khái niệm về biểu diễn điểm trong Unity3D là ScreenPoint, ViewPoint và WorldPoint.
ScreenPoint
ScreenPoint biểu diễn điểm theo Pixel của khung hình. Để biết được độ rộng, cao của khung hình là bao nhiêu, ta dùng lệnh Screen.Width và Screen.height
ViewPoint
Với ViewPoint, độ cao cao và rộng của khung hình luôn luôn là 1. Bottom left là (0,0), bottom right là (1,0).
WorldPoint
Worldpoint là tọa độ được thể hiện qua Transform.Position
Vậy mục đích của việc có 3 cách biểu diễn điểm này là gì?
Như các bạn đã biết, có nhiều loại thiết bị với nhiều kích cỡ màn hình khác nhau, việc có 3 cách biểu diễn điểm như vậy giúp người lập trình linh hoạt hơn để tạo ra game cross-platform. Ví dụ bạn làm game bắn máy bay, bạn chỉ muốn giới hạn cái máy bay chỉ bay từ góc bên trái sang góc bên phải thôi. Với màn hình 320x480 thì góc bên trái theo WorldPoint là x = -13 và góc bên phải là x = 13. Với màn hình 480x800 thì góc bên trái đã thay đổi thành x = -20 chẳng hạn.
Trong trường hợp trên, bạn có thể sử dụng Viewpoint vì bạn biết góc bên trái luôn luôn là (0,0), và bên phải luôn là (0,1), sau đó đổi nó sang WorldPoint. Unity đã có hỗ trợ các hàm để đổi qua lại giữa các kiểu ScreenPoint, ViewPoint và WorldPoint.
Related Posts
Discover more content you might enjoy

Sự khác nhau giữa Input.GetAxis và Input.GetAxisRaw
Bài viết giải thích sự khác biệt giữa hai hàm xử lý đầu vào trong Unity3D: Input.GetAxis và Input.GetAxisRaw. Input.GetAxis trả về giá trị từ -1 đến 1 với sự chuyển đổi mượt mà, phù hợp cho chuyển động trong game 3D, trong khi Input.GetAxisRaw chỉ trả về chính xác một trong ba giá trị -1, 0 hoặc 1, thích hợp hơn cho game 2D. Tác giả minh họa bằng ví dụ cụ thể và hướng dẫn khi nào nên sử dụng mỗi hàm.
![Sử dụng [System.Serializable] trong unity như thế nào?](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fkhoanguyen1505%2Fimage%2Fupload%2Fv1751210719%2Fkhoa_blog%2FS%25E1%25BB%25AD_d%25E1%25BB%25A5ng_SystemSerializable_trong_unity_nh%25C6%25B0_th%25E1%25BA%25BF_n%25C3%25A0o%2F0ed05238-8734-4b44-995d-953a2fbcff94_374x451.png.jpg&w=828&q=75)
Sử dụng [System.Serializable] trong unity như thế nào?
Bài viết giải thích cách sử dụng thuộc tính [System.Serializable] trong Unity để hiển thị các class và thuộc tính của chúng trong Inspector. Tác giả trình bày lợi ích của việc này giúp lập trình viên dễ dàng điều chỉnh các giá trị và tùy biến plugin, đồng thời minh họa bằng ví dụ cụ thể về cách khai báo và hiển thị một mảng các class được đánh dấu Serializable trong giao diện Inspector.

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Bài này không phải AI viết
Suy ngẫm chân thành về giá trị của việc viết thủ công trong kỷ nguyên AI. Dù AI có thể tạo nội dung hiệu quả, bài viết này là lời khẳng định về sự kết nối cá nhân và giá trị độc đáo mà con người mang lại cho văn bản của mình.

Tại sao nên làm một thẻ thanh toán quốc tế?
Bài viết giới thiệu về lợi ích của việc sở hữu thẻ thanh toán quốc tế như Visa và MasterCard, bao gồm khả năng thanh toán xuyên lục địa, mua sắm trực tuyến trên các nền tảng quốc tế, đăng ký PayPal và các ví điện tử khác, cùng với hướng dẫn cơ bản về cách làm thẻ tại ngân hàng ACB với chi phí hợp lý.

10 năm đọc sách - hành trình trưởng thành
Bài viết chia sẻ hành trình đọc sách 10 năm của tác giả, từ sinh viên năm nhất đến bộ sưu tập 265 cuốn sách hiện tại. Tác giả phản ánh về cách mỗi cuốn sách đã định hình tư duy và góp phần xây dựng con người mình, từ văn học Việt Nam và thế giới đến sách về phát triển cá nhân, kinh doanh và triết học. Đây là câu chuyện về sự trưởng thành thông qua việc đọc sách và những bài học quý giá thu được trong suốt hành trình.