Làm thế nào để tôi thiết lập một cảnh cho hai người chơi?


7

Tôi đã hoàn thành một trò chơi trong Unity, nhưng tôi có một yêu cầu mới: làm cho nó trở thành nhiều người chơi. Tôi sẽ làm điều này bằng cách chia đôi màn hình và chạy hai trường hợp.

Có cách nào để chiếu một cảnh hai lần cùng một lúc và khiến chúng trở thành hai phần khác nhau của màn hình không? Alternativley, cách tiếp cận tốt nhất để đạt được điều này là gì?

Câu trả lời:


11

Nếu bạn muốn tạo nhiều người chơi cục bộ với màn hình chia nhỏ, cách tốt nhất là có hai camera và thay đổi chế độ xem trực tiếp của chúng:

https://docs.unity3d.com/ScriptReference/Camera-rect.html

Đối với màn hình chia dọc: (x, y, chiều rộng, chiều cao)

  • Camera thứ 1: (0, 0, 0,5, 1) ► trái
  • Camera thứ 2: (0,5, 0, 0,5, 1) ► phải

Màn hình dọc

Đối với màn hình chia ngang: (x, y, chiều rộng, chiều cao)

  • Camera thứ 1: (0, 0,5, 1, 0,5) ► trên cùng
  • Camera thứ 2: (0, 0, 1, 0,5) ► dưới cùng

Màn hình ngang


Không cần phải có hai thế giới. Tuy nhiên, nếu bạn muốn người chơi có GUI riêng, bạn sẽ phải xem mặt nạ loại bỏ

https://docs.unity3d.com/ScriptReference/Camera-cullingMask.html

Đặt tất cả các đối tượng của người chơi 1 vào một lớp mới ("Player1Layer"), tất cả các đối tượng của người chơi 2 trong một đối tượng khác ("Player2Layer") và đảm bảo rằng máy ảnh của người chơi 1 không có "Player2Layer" được kiểm tra loại bỏ mặt nạ trong khi máy ảnh của người chơi 2 không được kiểm tra "Player1Layer" trong mặt nạ loại bỏ.

LƯU Ý QUAN TRỌNG

Có vẻ như cần phải có cấu hình bổ sung để hiển thị GUI cho một trình phát cụ thể. Tôi thực sự không biết tại sao.

Mỗi người chơi phải có cái riêng:

  1. Camera chính có:

    • Đúng khung nhìn trực quan
    • Một Depthgiá trị thiết lập để 0
    • Một mặt nạ loại bỏ Everything, ngoại trừ Player1LayerPlayer2Layer
  2. Một camera thứ hai có:

    • Đúng khung nhìn trực quan
    • Một Depthgiá trị thiết lập để 1
    • Một mặt nạ loại bỏ Player1Layer(hoặc Player2Layercho người chơi thứ 2)
  3. Một bức tranh chuyên dụng với:

    • Chế độ kết xuất được đặt thành Không gian màn hình - Camera
    • Máy ảnh chính xác được định cấu hình ở # 2

Để đơn giản, hãy gắn hai camera của một người chơi nhất định vào một phụ huynh duy nhất và di chuyển cha mẹ để hai camera sẽ theo sau. Có lẽ, bạn có thể giữ máy ảnh số 2 ở (0, 0, 0). Tôi chưa thử.


Cho đến nay tôi đã không thể sao chép vấn đề mà bạn mô tả bên dưới "Lưu ý quan trọng". Trong thử nghiệm của tôi, chỉ cần có hai camera và hai khung vẽ, mỗi khung được đặt thành "Không gian màn hình - Camera" và được ánh xạ tới Camera kết xuất phù hợp, tôi thấy giao diện người dùng của mỗi người chơi được hiển thị chính xác trong một nửa màn hình của họ. Bạn có thể giải thích về những tình huống hoặc vấn đề cần một camera bổ sung cho mỗi người chơi không?
DMGregory

Cần thêm camera vì khi tôi kiểm tra, các đối tượng 3D được hiển thị trước giao diện người dùng khi máy ảnh được đặt thành Không gian màn hình - Camera. (Vấn đề này không có ý nghĩa gì vì chúng ta đang ở trong không gian màn hình )
Hellium

Bạn đã thử điều chỉnh khoảng cách máy bay trên vải chưa? Điều này cho phép tôi kéo UI của mình ra trước các đối tượng mà không cần thêm camera.
DMGregory

Có tôi đã làm, nhưng các đối tượng 3D vẫn có thể được hiển thị trước giao diện người dùng của bạn. Dù sao, nếu giải pháp của tôi phù hợp với nhu cầu của bạn, nó hoàn hảo! : D
Hellium
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.