2
ตรวจสอบว่าองค์ประกอบของวัตถุในเกมสามารถถูกทำลายได้หรือไม่
การพัฒนาเกมใน Unity ฉันใช้ประโยชน์อย่างมากมาย[RequireComponent(typeof(%ComponentType%))]เพื่อให้แน่ใจว่าส่วนประกอบต่างๆมีการพึ่งพาทั้งหมด ตอนนี้ฉันกำลังใช้ระบบการสอนที่เน้นวัตถุ UI ต่างๆ เพื่อทำการไฮไลต์ฉันกำลังอ้างอิงถึงGameObjectในฉากจากนั้นฉันโคลนด้วย Instantiate () จากนั้นปลดส่วนประกอบทั้งหมดที่ไม่จำเป็นสำหรับการแสดงซ้ำ ปัญหาคือว่าด้วยการใช้งานอย่างเสรีRequireComponentในองค์ประกอบเหล่านี้หลายคนไม่สามารถลบออกได้ในลำดับใด ๆ เนื่องจากมันขึ้นอยู่กับส่วนประกอบอื่น ๆ ซึ่งยังไม่ถูกลบ คำถามของฉันคือ: มีวิธีการตรวจสอบว่าComponentสามารถลบออกจากที่GameObjectแนบมากับปัจจุบันได้หรือไม่ รหัสที่ฉันโพสต์ใช้งานได้ทางเทคนิค แต่มันมีข้อผิดพลาด Unity (ไม่ติดในบล็อค try-catch ดังที่เห็นในภาพ นี่คือรหัส: public void StripFunctionality(RectTransform rt) { if (rt == null) { return; } int componentCount = rt.gameObject.GetComponents<Component>().Length; int safety = 10; int allowedComponents = 0; while (componentCount …