Sự khác biệt giữa các lớp Sprite và Texture2D của Unity là gì?


19

Unity có cả một Texture2Dlớp và một Sprite(có liên quan SpriteRenderer). Sự khác biệt giữa hai lớp này là gì? Cả hai đều đại diện cho một hình ảnh, đối với các trò chơi 2D, tôi có nên ưu tiên cái này hơn cái kia không?

Có phải sự khác biệt chính giữa hai cái mà Spritetôi không cần phải tự tạo ra "bảng quảng cáo" không? Và rằng Spriteluôn luôn được kết xuất trực tiếp với máy ảnh?

Câu trả lời:


16

Bạn đúng - phần nào. Sprites, theo mặc định được hiển thị trực tiếp trên máy ảnh, tuy nhiên bạn có thể dễ dàng thay đổi điều này nếu bạn đang sử dụng Trình kết xuất Sprite trong cảnh 3D.

Sprites là các đối tượng vật lý trong cảnh của bạn, trong khi Texture2D chính xác như những gì nó nói. Một kết cấu. Một kết cấu phải được gắn vào một vật liệu và vật liệu cho một đối tượng trò chơi (ví dụ như một mặt phẳng).

Quay trở lại Unity 3.x ngày bạn không có hỗ trợ sprite ngay lập tức nên bạn phải cuộn Trình quản lý / Lớp học Sprite của riêng bạn (hoặc bạn có tùy chọn mua một tài sản khỏi cửa hàng tài sản đã cố gắng khắc phục sự phiền toái này ). Unity thực sự không bao giờ có nghĩa là hỗ trợ các trò chơi 2D (tuy nhiên các nhà phát triển đã tìm ra cách để biến nó thành hiện thực), cho đến 4.x, khi Unity Developers cuối cùng đã cung cấp hỗ trợ tích hợp cho các trò chơi 2D (sprite, sprite sheet, 2D vật lý).

Nếu bạn đang chơi trò chơi 2D, luôn cố gắng sử dụng lớp Sprite. Nó tốt hơn là tự lăn, và cung cấp quá đủ.


AFAIK Spritescũng sẽ tự động được Unity đóng gói vào các tập phát sóng nếu bạn muốn.
bummzack

Điều đó chỉ đúng trong Unity Pro, những kẻ lừa đảo gian xảo
bắt đầu

4
Tôi tin rằng điều này hiện miễn phí với Unity 5
Chris Hawkes

@ChrisHawkes Quả thực là như vậy - chỉ để xác nhận tuyên bố :) - các sprite có thể được đóng gói thành tập trung (và nó được khuyến nghị thực hành) thông qua Window> Sprite Packer
AgentKnopf

6

Đây là một số ưu điểm tôi yêu thích về Sprite:

  1. Tất cả SpriteRenderer đều sử dụng cùng một vật liệu theo mặc định, Sprite-Default mặc dù tất cả chúng đều có hình ảnh / tập bản đồ khác nhau, do đó tự động đáp ứng một điều kiện của khối động của Unity.
  2. Bạn có thể áp dụng các tông màu khác nhau (thông qua trình kiểm tra của SpriteRenderer) cho mỗi sprite mặc dù tất cả chúng đều có cùng một vật liệu Sprite-Default. Điều này là không thể trong cách tiếp cận dựa trên Texture2D mà thuộc tính 'màu' sẽ được gắn với vật liệu. Điều này cũng rất hữu ích để làm mờ dần sprite thông qua giá trị alpha của màu.
  3. Hỗ trợ tạo khối động với tỷ lệ không đồng đều.
  4. Có chế độ đơn / nhiều chế độ để bạn có thể lấy từng hình ảnh dưới dạng sprite riêng biệt từ tập bản đồ kết cấu của bạn với nhiều chế độ.
  5. Bạn có thể lấy góc của sprite trong chế độ xem cảnh để chia tỷ lệ hoặc xoay nó mà không thay đổi thành tỷ lệ / xoay công cụ gizmo.

4
6. Unity tự động tạo hình học phù hợp với các đường viền của các phần không trong suốt của sprite. Điều này có thể làm giảm việc rút tiền, so với kết xuất cùng một sprite như một hình tứ giác và cho phép bạn / Unity đóng gói spritea chặt chẽ hơn trong một tập bản đồ.
DMGregory
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.