Đặt một hình ảnh giao diện người dùng giữa hai họa tiết 2D trong Unity


8

Tôi đang phát triển một trò chơi 2D với Unity.

Tôi có hai đối tượng sprite được sử dụng SpriteRenderer.

Với hệ thống UI mới, tôi muốn sử dụng nó để hiển thị một hình ảnh giữa hai họa tiết của tôi. Đó là, sprite đầu tiên của tôi có thứ tự sắp xếp là 100, sau đó UI Image của tôi có thứ tự sắp xếp là 200 và sau đó sprite thứ hai của tôi có thứ tự sắp xếp là 300.

Điều đó có thể không?

Tôi đã thử sử dụng các lớp sắp xếp, nhưng không có vấn đề gì, hình ảnh UI dường như luôn che phủ hai họa tiết của tôi.

Câu trả lời:


2

Điều này khá đơn giản để thực hiện, thực ra, Junxe đã đi đúng hướng, không cung cấp toàn bộ thông tin mà bạn cần.

Trước tiên, hãy tạo 2 họa tiết của bạn và Canvas giữ hình ảnh bạn muốn ở giữa. Đặt "Thứ tự trong lớp" thành 2 và 0 cho 2 Sprites bạn muốn ở chế độ nền hoặc tiền cảnh. Một số cao hơn có nghĩa là nó ở phía trước. Tất cả các yếu tố, bao gồm cả UI sẽ phải nằm trên cùng một Lớp sắp xếp.

Bây giờ, hãy nhấp vào Canvas của bạn và đặt Chế độ kết xuất thành Không gian thế giới , điều này là cần thiết để bạn thực sự có được tùy chọn để đi giữa các họa tiết trên thế giới. Bây giờ bạn đã có Lớp sắp xếp và thứ tự trong tùy chọn lớp trên Canvas của bạn. Đặt Thứ tự trong Lớp thành 1 và Lớp Sắp xếp giống như 2 Sprites !

Lưu ý: Nếu bạn không thể tìm thấy UI Image của bạn lưu ý rằng nó thực sự rất lớn trong cảnh, bạn sẽ phải giảm đáng kể kích thước và định vị hình ảnh (không phải khung vẽ). Nếu bạn muốn tìm thấy nó, hãy thu nhỏ thật nhiều và bạn sẽ bắt đầu thấy nó ( Mẹo: nếu đó thực sự là một hình ảnh nhỏ, bạn nên kích hoạt công cụ biến đổi để bạn biết vị trí hiện tại của nó).

Tôi chỉ tái tạo điều này trong một phút với hình ảnh ví dụ, chắc chắn hoạt động. Nếu bạn có bất kỳ câu hỏi nào chỉ cần bình luận. Tôi sẵn sàng giúp đỡ.


1

Bạn phải sử dụng Tham chiếu "Không gian thế giới" của Chế độ kết xuất: http://docs.unity3d.com/Manual/UICanvas.html


Với chế độ kết xuất "Không gian thế giới", hình ảnh sẽ biến mất. Tôi không thể nhìn thấy nó trong chế độ xem trò chơi.
Ôxít

Lời giải thích của anh ta khá là không đầy đủ. Khi chế độ kết xuất được đặt thành "Không gian thế giới", bạn sẽ phải định vị hình ảnh trong cảnh của mình. Bạn đã làm điểu đó?
jhocking

1
Câu trả lời này cần được cải thiện với thông tin bổ sung. Tại sao chế độ kết xuất đó nên được sử dụng? Vấn đề là giải quyết vấn đề gì? Có bất kỳ bước khác?
MichaelHouse

1

Tôi đã chiến đấu với điều này trong một giờ và cuối cùng tôi đã đưa ra một giải pháp.

Tôi đã làm việc với World Canvas UI và không thể làm cho nó hoạt động chính xác với các họa tiết: đầu tiên, các họa tiết luôn ở trên đầu, sau đó các họa tiết biến mất hoàn toàn ngay cả khi hình ảnh UI phía trên chúng không mờ hoàn toàn.

Vì vậy, dựa trên: http://answers.unity3d.com/questions/832834/unity-2d-46b-ui-why-are-instantiated-prefab-sprite.html

Bạn nên đặt "Thứ tự trong lớp" của "Sprite Renderer" của sprite nền của bạn thành 0.
Sau đó, đặt "Thứ tự trong lớp" của thành phần UI Canvas của bạn thành 1.
Sprite tiền cảnh "Thứ tự trong lớp" nên được đặt thành 2 .
lớp sắp xếp là mặc định cho 3 yếu tố.

Về cơ bản, bạn có thể làm việc với nhiều hơn một khung vẽ không gian thế giới và nhiều hơn một sprite (trong trường hợp bạn muốn có nhiều lớp của công cụ 2d) và đặt các lớp sắp xếp chính xác (hãy nhớ rằng bạn không thể đặt riêng từng lớp trong phần tử UI. được đặt theo thứ tự của GameObject trong cấu trúc phân cấp. Thay vào đó, bạn phải đặt Thứ tự trong Lớp cho Giao diện người dùng trong Canvas)

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.