在SpriteKit项目中,我开始使用一些3D对象来获得视觉效果。使用。{1}}将一个场景文件放到屏幕上使用。{1}}非常容易,但是我一直无法触摸到场景中的3D对象,因此我可以相应地处理它们
我有一个通过静态方法实例化的SK3DNode子类。初始化方法没有做任何与SK3DNode属性相关的事情:
SK3DNode
然后,在同一个子类中,我有touchesBegan方法,它试图从3D场景中取消投影点并使其在SpriteKit的2D坐标系中可用。但是,我的screenCoordinates变量始终为零:
SceneKitManager *sceneKitManager = [SceneKitManager nodeWithViewportSize:sprite.size];
[sceneKitManager setPosition: sprite.position];
[sceneKitManager setPlaying:YES];
[sceneKitManager setScnScene:[SCNScene sceneNamed:@"file.scn"]];
[sceneKitManager setUserInteractionEnabled:YES];
SCNNode *pov = [sceneKitManager.scnScene.rootNode childNodeWithName:@"camera" recursively:NO];
[sceneKitManager setPointOfView:pov];
[sceneKitManager initialize];
return sceneKitManager;
任何帮助当然值得赞赏,如果我遗漏了任何内容,我可以提供更多细节或背景。