ฉันจะมองเห็นเลเยอร์พารัลแลกซ์ในเครื่องมือแก้ไขระดับได้อย่างไร


9

ฉันกำลังสร้างเกม 2D ใน Unity แต่สิ่งนี้จะนำไปใช้กับโปรแกรมเกม 2D ใด ๆ

ถ้าฉันใช้พารัลแลกซ์แบบทวีคูณกับกล้องออโธกราฟฟิคมันเป็นการยากที่จะจัดวางสไปรท์ของเลเยอร์พื้นหลังและรู้ว่าพวกมันจะเรียงแถวกับสไปรท์ในเลเยอร์อื่น ๆ ได้อย่างไร

สัญชาตญาณแรกของฉันคือใช้กล้องหลายตัวหนึ่งตัวสำหรับแต่ละเลเยอร์และลดความเร็วในการเคลื่อนที่ของกล้องสำหรับเลเยอร์พื้นหลัง หลีกเลี่ยงการย้ายพื้นหลังทั้งหมดไปทุกเฟรม ปัญหาคือเลเยอร์ที่เคลื่อนที่ด้วยความเร็วครึ่งหนึ่งจะใช้พื้นที่ครึ่งหนึ่งของเลเยอร์หลักเมื่อดูในเครื่องมือแก้ไข ดังนั้นจึงเป็นเรื่องยากที่จะทราบว่าจะวางสไปรต์ในขณะที่คุณกำลังวางแผนเล่นเกม ปัญหาแย่ลงมากเมื่อคุณเพิ่มจำนวนเลเยอร์

ฉันจะรับสิ่งนี้ได้อย่างไร ฉันได้ลองปรับขนาดเลเยอร์ผกผันด้วยความเร็วการเคลื่อนที่ที่ตั้งใจขณะทำงานกับพวกมันในเครื่องมือแก้ไข นั่นทำให้พื้นหลังสไปรต์ทั้งหมดอยู่ในตำแหน่งที่ถูกต้องซึ่งสัมพันธ์กับเลเยอร์หลัก แต่มันบิดเบี้ยวอย่างน่ากลัว

ฉันจำเป็นต้องดูดมันและสลับระหว่างตัวแก้ไขและเกมที่รันอยู่ตลอดเวลาเพื่อทดสอบภูมิหลังพารัลแลกซ์หรือไม่?


4
เมื่อฉันทำเกมเช่นนั้นฉันเพิ่งสร้างมันขึ้นมาเพื่อให้คุณสามารถลากกล้องไปรอบ ๆ ตัวแก้ไขและคุณสามารถดูว่าพารัลแลกซ์ทำงานอย่างไร ฉันไม่แน่ใจว่าจะทำสิ่งใดใน Unity ได้อย่างไร
Tetrad

คำตอบ:


1

ฉันไม่คุ้นเคยกับ Unity ดังนั้นฉันจึงไม่สามารถช่วยคุณในเรื่องเฉพาะ แต่ดูเหมือนว่าสิ่งที่คุณต้องการคือการนำ GUI มาใช้เพื่อปรับจูนค่าเหล่านั้นในระหว่างการใช้งานด้วยชุดตัวเลื่อนหรือเขตข้อมูลตัวเลข มันจะค่อนข้างง่ายในการปรับใช้ฟิลด์เพื่อเปลี่ยนแปลงค่าใด ๆ ที่คุณกำลังกำหนด (สเกลความเร็ว ฯลฯ ) ในช่วงเวลาทำงาน สำหรับตำแหน่งคุณสามารถใช้ฟิลด์หรือตำแหน่งด้วยตนเองด้วยการคลิกลาก (ซึ่งอาจนำไปใช้งานได้ยากขึ้นเล็กน้อย แต่ใช้งานง่ายกว่า)

สิ่งนี้ช่วยให้คุณควบคุมได้อย่างสมบูรณ์โดยไม่ต้องคอมไพล์และรันโค้ดสำหรับการเปลี่ยนแปลงเล็กน้อย เมื่อคุณมาถึงรูปลักษณ์และความรู้สึกที่คุณมีความสุขให้ใช้ค่าเหล่านั้นในรายการค่าคงที่ของคุณ หากสิ่งนี้น่ากลัวเกินไปเนื่องจากจำนวนตัวแปรที่คุณกำลังแก้ไข (เช่นสถานที่สไปรต์มากมายในหลายระดับ) คุณจะต้องนำไปใช้ในเครื่องมือแก้ไขระดับฉันจินตนาการว่าด้วยฟังก์ชั่นการปรับด้วยตนเองแบบเดียวกัน แต่ด้วย ผลของการสร้างและจัดเก็บข้อมูลที่ปรับ


ใช่ดูเหมือนว่าการใช้เครื่องมือแก้ไขระดับเป็นวิธีที่ดีที่สุดไม่ว่าจะเป็นการเขียนโค้ดของคุณเองหรือในกรณีของฉันด้วย Unity การตั้งค่าให้ทำงานกับโปรแกรมแก้ไขที่มีอยู่ ฉันเขียนรหัสการตั้งค่า paralax ด้วยวัตถุกล้องแยกต่างหากสำหรับแต่ละเลเยอร์และกล้องแต่ละตัวถูกย้ายอย่างเหมาะสมเมื่อเทียบกับกล้องหลักแต่ละเฟรม จากนั้นใช้ [ExecuteInEditMode] เพื่อให้พวกเขาอัปเดตแม้ว่ากล้องหลักจะถูกลากในตัวแก้ไข ฉันแค่จำไว้ว่าต้องขยับกล้องหลักโดยตรงเท่านั้น
TenFour04

1

ความคิด: ฉันคิดว่ากล้องสำหรับเลเยอร์ด้านหน้าก็เพียงพอแล้ว การวางสไปรต์เป็นระยะทางห่างจากที่อยู่บนระนาบ z และการอ่านระยะห่างจะทำให้คุณมีส่วนที่จะย้ายเลเยอร์หลัง

ตัวอย่างเช่นวัตถุระยะ 10 จากกล้องด้านหน้าเคลื่อนที่ 1/10 ในเลเยอร์พื้นหลัง วัตถุของระยะ 2 จะเคลื่อนที่ 1/2 ในเลเยอร์นั้น ๆ เป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.