2016-01-04 7 views
6

कुछ बिंदु पर overlaySKScene का उपयोग कर इंटरनेट पर कुछ ओवरले ट्यूटोरियल हैं।मैं स्विफ्ट में एससीएनएससीन पर एसकेसीसीन कैसे ओवरले कर सकता हूं?

यह मेरी परियोजना में किसी भी तरह से संभव नहीं है, जैसा कि (मुझे लगता है) मेरा विचार किसी भी बिंदु पर SCNView के निर्माता का उपयोग नहीं करता है (overlaySKScene का एक हिस्सा है)।

ViewController के viewDidLoad में, मूल रूप से केवल MainScene बनाई गई है:

viewDidLoad() { 
self.sceneView = MainScene(view: self.view)) } 

... जो यहाँ जाता है (ध्यान दें: SCNView के बजाय SCNScene):

class MainScene: SCNScene, SCNPhysicsContactDelegate {... 
init(view:UIView) { 
scnView = view as! SCNView 
super.init() 
scnView.scene = self; (...) } 

दृश्य पूरी तरह से बनाया जाता है , अब मैं एक एसकेएससीन ओवरले करना पसंद करूंगा। क्या किसी को पता है कि कैसे?

+0

दृश्य और विचार दो अलग-अलग चीजें हैं, self.sceneView = MainScene – Knight0fDragon

+0

नहीं होना चाहिए यदि ओवरलेस्क्रीन काम नहीं कर रहा है, ऐसा इसलिए है क्योंकि आपने अपने मुख्यसेन कोड – Knight0fDragon

उत्तर

6

स्प्राइटकिट ओवरले दृश्य दृश्य दृश्य पर नहीं, दृश्य दृश्य दृश्य पर चला जाता है। यह थोड़ा उलझन में है क्योंकि आप एक दृश्य पर एक दृश्य ओवरले कर रहे हैं।

self.sceneView = MainScene(view: self.view)) 
परिभाषित रिटर्न एक SCNScene रूप

:

मैं कई संभावित त्रुटि के सूत्रों को देखते हैं। आप उस संपत्ति को असाइन कर रहे हैं जो SCNView की अपेक्षा करता है। जब तक view रिटर्न एक ठीक से SCNView उदाहरण जुड़े

लाइन

scnView = view as! SCNView 

दुर्घटना होगा। लेकिन init परिभाषा जिसे आपने लिखा है UIView की अपेक्षा करता है।

कहीं, आपको अपना विचार SCNView होना चाहिए। यह दृश्य, क्योंकि यह प्रोटोकॉल SCNSceneRenderer के अनुरूप है, इसमें overlaySKScene संपत्ति होगी (overlaySKScene उस प्रोटोकॉल से आता है, SCNView से नहीं)। यही वह जगह है जहां आप अपना SKScene उदाहरण असाइन कर सकते हैं।

आपको लगता है कि किया है, तो फिर उसे अपने कोड कुछ की तरह

scnView.scene = self 
scnView.overlaySKScene = theSKScene 

मैं एक SKScene एक SCNView पर आच्छादित का एक सरल उदाहरण है लगेगा https://github.com/halmueller/ImmersiveInterfaces/tree/master/Tracking%20Overlay

भी देखें How do I create a HUD on top of my Scenekit.scene पर।

+0

में स्प्राइटकिट आयात नहीं किया है, उदाहरण के लिए धन्यवाद !! लेकिन दृश्य में एक से अधिक ओवरले जोड़ने के लिए कैसे? प्रदान किए गए नमूने में केवल एक ओवरले जोड़ा जाता है। एकाधिक ग्रंथों और एकाधिक नोड्स के लिए प्रदान किए गए उदाहरण (https://github.com/halmueller/ImmersiveInterfaces/tree/master/Tracking%20Overlay) में प्रदान की गई वही जानकारीऑवरलेसेन का पुन: उपयोग कैसे करें? – yaali

+0

ओवरले दृश्य जितना जटिल हो उतना जटिल हो सकता है। यदि आपको लगता है कि आपको कई दृश्यों की आवश्यकता है, तो यह अपने स्वयं के प्रश्न का हकदार है। –

संबंधित मुद्दे

 संबंधित मुद्दे