Làm cách nào để hình dung các lớp thị sai trong trình chỉnh sửa cấp?


9

Tôi đang tạo một trò chơi 2D trong Unity, nhưng điều này sẽ áp dụng cho bất kỳ công cụ trò chơi 2D nào.

Nếu tôi triển khai thị sai đa điểm với máy ảnh chính tả, rất khó để bố trí các họa tiết của lớp nền và biết nơi chúng sẽ xếp hàng với các họa tiết trong các lớp khác.

Bản năng đầu tiên của tôi là sử dụng nhiều camera, mỗi camera cho một lớp và giảm tốc độ di chuyển của camera cho các lớp nền. Điều này tránh phải di chuyển tất cả các họa tiết nền mọi khung hình. Vấn đề là một lớp di chuyển với tốc độ một nửa sẽ chiếm một nửa không gian của lớp chính khi được xem trong trình chỉnh sửa. Vì vậy, thật khó để biết nơi đặt các sprite khi bạn đang đặt trò chơi. Vấn đề trở nên tồi tệ hơn theo cấp số nhân khi bạn tăng số lượng lớp.

Làm thế nào để tôi có được xung quanh này? Tôi đã thử nhân rộng các lớp theo tốc độ di chuyển dự định của chúng trong khi làm việc với chúng trong trình chỉnh sửa. Điều đó đặt tất cả các họa tiết nền ở các vị trí chính xác so với lớp chính, nhưng chúng bị biến dạng khủng khiếp.

Tôi có cần phải hút nó lên và liên tục chuyển đổi giữa trình chỉnh sửa và trò chơi đang chạy để kiểm tra nền thị sai không?


4
Khi tôi làm một trò chơi như vậy tôi chỉ làm nó để bạn có thể kéo xung quanh máy ảnh trong trình chỉnh sửa và bạn có thể thấy thị sai hoạt động như thế nào. Mặc dù vậy, tôi không chắc chắn làm thế nào để thực hiện một cách cụ thể như thế trong Unity.
Tetrad

Câu trả lời:


1

Tôi không quen thuộc với Unity, vì vậy tôi không thể giúp bạn về chi tiết cụ thể, nhưng có vẻ như điều bạn cần là triển khai một phương tiện GUI để tinh chỉnh các giá trị đó trong thời gian chạy với, một bộ thanh trượt hoặc trường số. Sẽ khá đơn giản để thực hiện các trường để thay đổi bất kỳ giá trị nào bạn xác định (tỷ lệ, tốc độ, v.v.) trong thời gian chạy mang lại cho bạn phản hồi ngay lập tức. Đối với vị trí, bạn có thể sử dụng một trong hai trường hoặc vị trí thủ công bằng cách kéo nhấp chuột (có thể khó thực hiện hơn một chút, nhưng trực quan hơn nhiều).

Điều này cho phép bạn kiểm soát hoàn toàn mà không cần biên dịch và chạy mã cho từng phần nhỏ của thay đổi. Khi cuối cùng bạn cũng nhìn thấy và cảm thấy hạnh phúc, hãy sử dụng các giá trị đó trong danh sách các hằng số của bạn. Nếu điều này quá khó khăn vì số lượng biến bạn đang chỉnh sửa (giả sử, nhiều vị trí sprite ở nhiều cấp độ), bạn sẽ muốn triển khai nó trong trình chỉnh sửa cấp độ, tôi tưởng tượng, với cùng chức năng điều chỉnh thủ công nhưng với kết quả của việc tạo và lưu trữ dữ liệu điều chỉnh.


Đúng, có vẻ như sử dụng trình chỉnh sửa cấp là cách tốt nhất để thực hiện, cho dù đó là mã hóa của riêng bạn hay trong trường hợp của tôi với Unity, thiết lập nó để hoạt động với trình chỉnh sửa hiện có. Tôi đã mã hóa thiết lập paralax của mình bằng một đối tượng camera riêng cho từng lớp và mỗi camera được di chuyển một cách thích hợp tương ứng với camera chính mỗi khung hình. Sau đó sử dụng [ExecuteInEditMode] để yêu cầu họ cập nhật ngay cả khi camera chính được kéo trong trình chỉnh sửa. Tôi chỉ cần nhớ là chỉ di chuyển camera chính trực tiếp.
TenFour04

1

Một ý tưởng: Tôi sẽ nghĩ rằng một máy ảnh cho lớp phía trước là đủ. Đặt sprite cách một khoảng cách so với trên mặt phẳng z và việc nới lỏng khoảng cách sẽ cho bạn một phần để di chuyển lớp đó trở lại.

Ví dụ, một đối tượng khoảng cách 10 từ camera trước di chuyển 1/10 trong lớp nền. Một đối tượng có khoảng cách 2, sẽ di chuyển 1/2 trong lớp tương ứng, v.v.

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.