ScreenPoint, ViewPoint và WorldPoint trong Unity3D

January 7, 2016
Categories:
Tags:

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.

Author: Khoa Nguyen
https://niviki.com
Thất nghiệp. Đang rủ rê nhiều người thất nghiệp. Nhận làm ứng dụng MVP để nhiều người bỏ việc. Hy vọng với NIVIKI.COM có thể lan toả tinh thần thất nghiệp đến với nhiều người hơn nữa.