Я хочу сделать игру с помощью scenekit для ios. Я начал с шаблона SceneKit, который дает нам Xcode (вращающийся самолет). Там уже был метод handleTap для распознавания касания экрана пользователем. Я хочу создать SCNBox и распознавать, нажимает ли на него пользователь, но я не понимаю, как работает handleTap. Нужно ли добавлять геометрию коробки в handleTap? Может кто-нибудь, пожалуйста, покажите мне, как бы вы разместили поле в центре экрана, чтобы распознать, если на него нажали.
Вот код handleTap:
- (void) handleTap:(UIGestureRecognizer*)gestureRecognize{
// retrieve the SCNView
SCNView *scnView = (SCNView *)self.view;
// check what nodes are tapped
CGPoint p = [gestureRecognize locationInView:scnView];
NSArray *hitResults = [scnView hitTest:p options:nil];
// check that we clicked on at least one object
if([hitResults count] > 0){
// retrieved the first clicked object
SCNHitTestResult *result = [hitResults objectAtIndex:0];
// get its material
SCNMaterial *material = result.node.geometry.firstMaterial;
// highlight it
//[SCNTransaction begin];
//[SCNTransaction setAnimationDuration:0.5];
// on completion - unhighlight
[SCNTransaction setCompletionBlock:^{
[SCNTransaction begin];
[SCNTransaction setAnimationDuration:0.5];
material.emission.contents = [UIColor blackColor];
[SCNTransaction commit];
}];
material.emission.contents = [UIColor redColor];
[SCNTransaction commit];
}
}