2
ทำไม Unity layer masks จำเป็นต้องใช้การเลื่อนบิต?
ในที่สุดฉันก็พบว่าทำไมเลเยอร์มาสก์ของฉันสำหรับรหัสการชนกันของพื้นไม่ทำงาน ฉันกำลังใช้NameToLayer()เพื่อให้ได้เลเยอร์ที่ฉันต้องการ แต่เลเยอร์มาสก์ใช้การเลื่อนบิตเพื่อตั้งค่าเลเยอร์มาสก์จริง นี่เป็นสิ่งที่ผิดปกติอย่างยิ่งและฉันไม่เห็นเหตุผลว่าทำไมสิ่งนี้ถึงไม่ได้รับการจัดการในโค้ดด้านหลัง ทำไมเราต้องใช้รหัสเช่นนี้: mask = 1 << LayerMask.NameToLayer("Default"); เมื่อสิ่งนี้: mask = LayerMask.NameToLayer("Default"); ใช้งานได้ง่ายขึ้นและทำงานคล้ายกับส่วนที่เหลือของ Unity API หรือไม่