2
จะสร้างวัตถุ SceneKit SCNSkinner ในโค้ดได้อย่างไร?
ฉันมีแอป Swift ที่ใช้ SceneKit สำหรับ iOS 8 ฉันโหลดฉากจากไฟล์. แดที่มีเมชที่ควบคุมโดยโครงกระดูก ในรันไทม์ฉันต้องแก้ไขพิกัดพื้นผิว การใช้การแปลงไม่ใช่ตัวเลือก - ฉันต้องคำนวณ UV ใหม่ที่แตกต่างกันโดยสิ้นเชิงสำหรับจุดยอดแต่ละจุดในตาข่าย ฉันรู้ว่ารูปทรงเรขาคณิตไม่เปลี่ยนรูปใน SceneKit และฉันได้อ่านว่าแนวทางที่แนะนำคือการทำสำเนาด้วยตนเอง ฉันพยายามทำเช่นนั้น แต่ฉันมักจะขัดข้องเมื่อพยายามสร้างSCNSkinnerโค้ดใหม่อีกครั้ง ความผิดพลาดเป็นภายในEXC_BAD_ACCESS C3DSourceAccessorGetMutableValuePtrAtIndexน่าเสียดายที่ไม่มีซอร์สโค้ดสำหรับสิ่งนี้ดังนั้นฉันจึงไม่แน่ใจว่าทำไมมันถึงขัดข้อง ฉันได้ จำกัด ให้แคบลงตามSCNSkinnerวัตถุที่ติดกับโหนดตาข่าย ถ้าไม่ตั้งค่าก็ไม่เกิดปัญหาและดูเหมือนว่าสิ่งต่างๆจะใช้งานได้ แก้ไข:นี่คือกลุ่มการโทรที่สมบูรณ์ยิ่งขึ้นของความผิดพลาด: C3DSourceAccessorGetMutableValuePtrAtIndex C3DSkinPrepareMeshForGPUIfNeeded C3DSkinnerMakeCurrentMesh C3DSkinnerUpdateCurrentMesh __CFSetApplyFunction_block_invoke CFBasicHashApply CFSetApplyFunction C3DAppleEngineRenderScene ... ฉันไม่พบเอกสารประกอบหรือรหัสตัวอย่างเกี่ยวกับวิธีสร้างSCNSkinnerวัตถุด้วยตนเอง เนื่องจากฉันเพิ่งสร้างมันขึ้นมาจากตาข่ายที่ใช้งานได้ก่อนหน้านี้จึงไม่น่าจะยากเกินไป ฉันกำลังสร้างSCNSkinnerตามเอกสาร Swift โดยส่งผ่านสิ่งที่ถูกต้องทั้งหมดไปยัง init อย่างไรก็ตามมีคุณสมบัติโครงกระดูกSCNSkinnerที่ฉันไม่แน่ใจว่าจะตั้งค่าอย่างไร ฉันตั้งค่าเป็นโครงกระดูกที่อยู่บนSCNSkinnerตาข่ายเดิมที่ฉันกำลังคัดลอกซึ่งฉันคิดว่าน่าจะใช้ได้ ... แต่มันไม่ได้ เมื่อตั้งค่าคุณสมบัติโครงกระดูกดูเหมือนว่าจะไม่ได้รับมอบหมาย การตรวจสอบทันทีหลังจากงานที่มอบหมายแสดงว่ายังคงเป็นศูนย์ จากการทดสอบฉันพยายามตั้งค่าคุณสมบัติโครงกระดูกของตาข่ายเดิมเป็นอย่างอื่นและหลังจากงานที่ได้รับมอบหมายก็ไม่ถูกแตะต้องเช่นกัน มีใครช่วยให้ความกระจ่างเกี่ยวกับสิ่งที่เกิดขึ้นได้บ้าง? …