3D可旋转的立方体与两侧可点击的区域

我想要完成的是带有3D旋转立方体的iPad应用程序,并且在立方体的每一侧我想要定义多个区域,在这些区域中,一旦点击就会进入另一个视图或显示一个popup窗口。

  1. 这可以通过一些从头开始在Xcode中使用OpenGL ES来实现,或者我应该使用3D框架,如果是的话,那么最简单的框架是什么? (我只听说过Unity和它相当昂贵的)

  2. 有没有人有一个很好的教程,我学习如何做到这一点?

我已经尝试过3D CSS3转换,但是我想把它作为最后的手段。

如果你想要的只是一个字面的3D立方体,你可以使用Core Animation来做这个。 看看CATransformLayer 。 您可以使用CATransformLayer很容易地CATransformLayer真正的三维层次结构。 Joe Ricioppo有一篇很酷的文章 ,以及一些示例代码和video。 它与3D CSS3变换类似,只是操作代表3D层次结构的单个图层而不是单独变换每个子图层要容易得多。 只要最初旋转所有的立方体面,并定位它们,使它们形成一个立方体。 然后,您可以将变换应用到变换图层本身,并且会自动执行所有的花式math变换您的子图层。

这个问题的最大问题是触摸处理如何工作。 您无法CATransformLayer上使用-hitTest:因为它无法将2D触摸映射到其自己的3D层次结构。 你也许可以用自己的hitTest:实现来解决这个问题,但是它几乎感觉到比它的价值更多的工作。 我不知道OpenGL为2D到3D触摸转换提供了什么规定,但这可能是您唯一的select。

试试这个代码

 CATransition *transition = [CATransition animation]; transition.delegate = self; transition.duration = 0.8; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; NSString *types[4] = {@"cube", @"rippleEffect", @"cube", @"alignedCube"}; NSString *subtypes[4] = {kCATransitionFromTop, kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromBottom}; transition.type = types[0]; transition.subtype = subtypes[1]; [self.view.layer addAnimation:transition forKey:nil]; 

也许不完全是你在找什么,但我们已经产生了一些function上可以帮助你的代码: http : //www.chupamobile.com/products/details/2106/Cube+Selector/

它function齐全,可随时使用