ในการจบด่านคุณต้องมีทริกเกอร์ สร้างลูกบาศก์สำหรับสิ่งนี้และปรับขนาดตามที่คุณต้องการ
เลือกแกน Y และสลับไปยังมุมมองภาพสามมิติด้วยลูกบาศก์ ลากลูกบาศก์ของคุณไปที่จุดสิ้นสุดของระดับหรือไปยังตำแหน่งที่ระดับควรจะสิ้นสุด
เช่น ตั้งป้ายกำกับว่า End เนื่องจากคุณไม่ต้องการให้มองเห็นทริกเกอร์ในเกม ให้ปิดการใช้งานตัวเรนเดอร์แบบตาข่าย ที่ Collider ต้องเปิดใช้งาน “is Trigger”
เลือกไอคอนสีในหน้าต่างตัวตรวจสอบเพื่อให้คุณยังคงเห็นกล่องนั้น
หากมองไม่เห็นไอคอน ให้เปิด Gizmos ใน Unity และเปิดใช้งานไอคอน 3D ด้วยแถบเลื่อนและเลื่อนแถบเลื่อน จากนั้นคุณจะจำทริกเกอร์ของคุณได้แม้ว่าจะมองไม่เห็นก็ตาม
สร้างสคริปต์ชื่อ EndTrigger
ทริกเกอร์อยู่กับ
เป็นโมฆะ OnTriggerEnter () ตรวจพบ
จำเป็นต้องมีการอ้างอิงถึง GameManager
คุณสร้างตัวแปร: GameManager gameManager สาธารณะ;
ด้วยการอ้างอิงถึง GameManager คุณต้องมีฟังก์ชันใหม่ใน GameManager นั่นเป็นเหตุผลที่ตอนนี้คุณเปิดสคริปต์ GameManager
ในนั้นคุณสร้างตัวแปรใหม่:
โมฆะสาธารณะ CompleteLevel ()
ตอนนี้คุณได้สร้างฟังก์ชันใหม่ใน GameManager แล้ว:
ตอนนี้คุณสามารถเรียกใช้ฟังก์ชันนี้ในสคริปต์ EndTrigger:
gameManager.CompleteLevel ();
TriggerScript ตอนนี้มีลักษณะดังนี้:
ตอนนี้คุณลาก GameManager ลงในพื้นที่ว่างของสคริปต์
เนื่องจากขณะนี้มีข้อความปรากฏขึ้นเฉพาะในคอนโซล เราจึงต้องสร้าง UI สำหรับโปรแกรมเล่น
ดังนั้นให้สร้างแผง UI ใน Canvas เปลี่ยนเป็นโหมด 2D และโฟกัสด้วย F ลบภาพพื้นหลังเพื่อให้ UI มองเห็นได้
ตั้งชื่อมันว่า LevelComplete คลิกขวาและ UI เพื่อเพิ่มข้อความ
ปรับขอบเขตสำหรับข้อความของคุณ สุดท้าย ตั้งศูนย์ไว้ เปลี่ยนแบบอักษร เพิ่มขนาดตัวอักษรเป็น z ข. 100
เปลี่ยนข้อความเป็นระดับ ตั้งชื่อ TextObject เป็นระดับด้วย ทำซ้ำวัตถุและตั้งชื่อให้เสร็จสมบูรณ์ ตั้งค่าฟอนต์ที่ 2 ตามต้องการ หากคุณทำเครื่องหมายวัตถุทั้งสองพร้อมกัน คุณสามารถย้ายวัตถุทั้งสองเข้าด้วยกันได้
ในตอนท้ายปิดใช้งาน "ระดับเสร็จสมบูรณ์"
จำเป็นต้องมีการอ้างอิงใน GameManager อีกครั้ง
คุณสามารถทำได้ด้วยตัวแปรใหม่:
GameObject สาธารณะ CompleteLevelUI;
นอกจากนี้ คุณเพิ่มฟังก์ชันตอนนี้ภายใต้
โมฆะสาธารณะ CompleteLevel ()
{
completeLevelUI.SetActive (จริง);
นี้จะเปิดใช้งานฟังก์ชัน
สคริปต์ตอนนี้มีลักษณะดังนี้:
ตอนนี้ลาก LevelComplete ไปที่ GameManager
เมื่อคุณเสร็จสิ้นระดับ ระดับเสร็จสมบูรณ์ จะปรากฏขึ้น
ต่อไปเราจะเพิ่มแอนิเมชั่น ก่อนเปิดใช้งาน UI อีกครั้ง ตอนนี้คุณต้องการหน้าต่างแอนิเมชั่น
สร้างโฟลเดอร์สำหรับภาพเคลื่อนไหว ตั้งชื่อภาพเคลื่อนไหวใหม่ว่า "LevelComplete" ตอนนี้คุณจะพบทรัพย์สินสองรายการในโฟลเดอร์โครงการ
อย่างแรกคือตัวอนิเมชั่นเอง ปิดใช้งานลูป เนื่องจากแอนิเมชั่นควรเล่นเพียงครั้งเดียว
ประการที่สองคือตัวควบคุมแอนิเมชั่นที่ปรากฏในแอนิเมชั่น สามารถใช้แอนิเมเตอร์เพื่อประกอบและเชื่อมโยงแอนิเมชั่นที่ซับซ้อนได้
แอนิเมชั่น LevelComplete ถูกเน้นด้วยสีส้ม ซึ่งหมายความว่าจะเล่นเป็นแอนิเมชั่นแรกเมื่อระดับเสร็จสิ้น
กลับไปที่หน้าต่างแอนิเมชั่น หากเปิดใช้งานโหมดบันทึกหรือโหมดบันทึก ระบบจะบันทึกทุกการเปลี่ยนแปลงของวัตถุเป็นคีย์เฟรม
ตัวอย่างเช่น เลือก 1:00 น. และลดโหมดอัลฟาของสีลง คีย์เฟรมจะถูกสร้างขึ้นโดยอัตโนมัติในตอนเริ่มต้น ซึ่งโหมดอัลฟ่ายังคงสมบูรณ์อยู่ สลับตำแหน่งของคีย์เฟรม เป็นผลให้ระดับที่สมบูรณ์ปรากฏขึ้นภายใต้โหมดอัลฟ่าเพิ่มขึ้น ไปที่ประมาณ 0:50 และลดโหมดอัลฟาสำหรับสีแบบอักษรจาก UI สลับคีย์เฟรมที่สอดคล้องกับคีย์เฟรมด้านหน้า
ปิดใช้งาน LevelComplete UI อีกครั้ง ในตอนท้ายของระดับ UI ควรแสดงระดับเสร็จสมบูรณ์
หลังจากนั้นไม่กี่วินาที ระดับใหม่ควรจะโหลดหลังจากผ่านไปสองสามวินาที เมื่อต้องการทำเช่นนี้ ให้เพิ่มเหตุการณ์ก่อนเครื่องหมาย 2 วินาที
เหตุการณ์ภาพเคลื่อนไหวช่วยให้คุณเลือกฟังก์ชันได้
เราต้องการสคริปต์สำหรับอ็อบเจ็กต์ LevelComplete สคริปต์นี้โหลดระดับใหม่ ตั้งชื่อองค์ประกอบใหม่: LevelComplete
ในสคริปต์ใหม่เพิ่ม:
โมฆะสาธารณะ LoadNextLevel ()
เครื่องบิน Ein
ตอนนี้คุณสามารถเลือก LoadNextLevel เป็นฟังก์ชันได้
เมื่อใดก็ตามที่แอนิเมชั่นมาถึงจุดนี้ ฉากใหม่จะถูกโหลด
จากนั้นฉากควรเปลี่ยน
สำหรับสิ่งนี้คุณต้องมีตัวจัดการฉาก:
ใช้ UnityEngine.SceneManagement;
ภายใต้โมฆะสาธารณะมา:
SceneManager.LoadScene ()
ตอนนี้ควรโหลดเฉพาะฉากที่เกี่ยวข้องเท่านั้น อย่างไรก็ตาม ฉากที่จะโหลดขึ้นอยู่กับระดับ ดังนั้นจึงใช้ BuildIndex สำหรับการโหลด
ภายใต้ไฟล์ -> สร้างการตั้งค่า Unity จะแสดงฉากของคุณ คุณอาจต้องลากเข้าไป ในตอนท้ายดัชนีการสร้างจะปรากฏขึ้น Unity ควรโหลดฉากตามดัชนีการสร้างหรือฉากปัจจุบัน +1
ภายใต้โมฆะสาธารณะ LoadNextLevel มา:
SceneManager.LoadScene (SceneManager.GetActiveScene (). BuildIndex + 1);
สคริปต์มีลักษณะดังนี้:
ตรวจสอบให้แน่ใจว่ามีฉากใหม่อยู่เสมอหลังจากนั้น มิฉะนั้น Unity จะแสดงข้อผิดพลาด
โพสต์โพสต์ครั้งแรกเมื่อ 2020-06-10 18:11:00