Xử lý tọa độ 2D và chia tỷ lệ trong Unity khá đơn giản, nhưng không rõ ràng và như bạn đã nhận thấy nó không giống như cách các công cụ dev khác hoạt động. Tại sao điều này xảy ra là vì Unity là một công cụ 3D gần đây có đồ họa 2D được ghép vào.
Cụ thể, 1 đơn vị trong Unity không nhất thiết phải là 1 pixel trong ảnh. Khi bạn nhập hình ảnh dưới dạng 2D Sprites, thực tế có cài đặt Pixels-to-units có thể được thực hiện theo tỷ lệ 1: 1 nhưng tôi khuyên bạn nên để nó ở mặc định 100: 1 vì một vài lý do (công cụ vật lý không hoạt động ngay ở 1: 1 và mặc định là tốt hơn để tương thích với mã của người khác).
Cài đặt chia tỷ lệ này có nghĩa là tất cả các vị trí được chia cho 100. Nó khá dễ dàng miễn là bạn luôn nhớ tỷ lệ; Khi bạn muốn di chuyển một sprite 256 pixel (giả sử) thì bạn di chuyển nó 2.56 Bạn cũng có thể muốn viết một hàm tiện ích để làm tròn số đến 2 chữ số thập phân / pixel gần nhất: Mathf.Round (float * 100) / 100f
Đối với việc thiết lập một máy ảnh hoàn hảo pixel, trước hết hãy đặt nó làm máy ảnh chính tả. Khi bạn chọn máy ảnh, trong cài đặt của nó là trình đơn thả xuống cho phép chiếu phối cảnh hoặc Chính tả; phối cảnh có nghĩa là mọi thứ sẽ trông 3D, trong khi hình chính tả hiển thị cảnh phẳng. Ngay dưới phần thả xuống này là Kích thước; đặt kích thước chính tả của máy ảnh thành một nửa kích thước pixel của màn hình bạn muốn.
Ví dụ: giả sử bạn muốn có màn hình 1024x768 pixel hoàn hảo. Điều đó có nghĩa là chiều cao camera phải là 384 pixel. Chia cho 100 (vì tỷ lệ pixel-đơn vị) và bạn nhận được 3,84 cho kích thước máy ảnh. Một lần nữa, toán học đó chỉ đơn giản là SCREEN_SIZE / 2 / 100f
(Tôi đã chờ xem câu trả lời nào khác xuất hiện trước, nhưng đã được vài ngày. Tôi đã thực hiện 2D trong Unity một thời gian bằng Bộ công cụ 2D , nhưng còn khá mới đối với các tính năng 2D tích hợp)