我想用Scene套件创建一个应用来解决Rubix Cube.我有自己的dae文件用于多维数据集.这是我在viewDidLoad中的设置代码
let myscene = SCNScene(named: "Rubik1.scnassets/Rubiks_Cube.dae")
scene.rootNode.addChildNode((myscene?.rootNode)!)
// retrieve the SCNView
let scnView = self.view as! SCNView
// set the scene to the view
scnView.scene = scene
geometryNode = (scnView.scene?.rootNode.childNodeWithName("Cube",recursively: true))!
let panRecognizer = UIPanGestureRecognizer(target: self, action: "panGesture:")
scnView.addGestureRecognizer(panRecognizer)
Run Code Online (Sandbox Code Playgroud)
在识别平移手势以旋转立方体时
func panGesture(gestureRecognize: UIPanGestureRecognizer){
let translation = gestureRecognize.translationInView(gestureRecognize.view!)
let x = Float(translation.x)
let y = Float(-translation.y)
let anglePan = sqrt(pow(x,2)+pow(y,2))*(Float)(M_PI)/180.0
var rotationVector = SCNVector4()
rotationVector.x = -y
rotationVector.y = x
rotationVector.z = 0
rotationVector.w = anglePan
geometryNode.rotation = rotationVector
//geometryNode.transform …Run Code Online (Sandbox Code Playgroud) 我想用Scene套件创建一个应用来解决Rubix Cube.我有自己的dae文件用于多维数据集.接触开始后,我有被击中的物体
func tapGesture(sender: UITapGestureRecognizer){
// check what nodes are tapped
var p = sender.locationInView(sceneView)
var hitResults = sceneView.hitTest(p, options: nil)
if hitResults.count > 0
{
var hitnode = (hitResults.first)!.node
print("\nName of node hit is \(hitnode.name)")
//var indexvalue = hitResults.first?.faceIndex
//print(indexvalue)
}
}
Run Code Online (Sandbox Code Playgroud)
如何确切地找到立方体的哪个面?
** 编辑/重新措辞 **
在对我的问题进行了一些很好的回答之后,我编辑了问题中的代码,以尽可能清楚地说明我不明白的内容。
我有一个 withErrorHandler ,它将用作许多独立组件的 hoc 。
其中一个组件是 MyComponent。
withErrorHandler 的 componentWillMount 中的代码按预期工作,但由于它是一个废弃的方法,我必须将它移到某个地方。
位置 - ComponentDidMount 拦截器将无法拦截错误。
位置 - 构造函数拦截器将拦截错误,但不会向用户显示 withError 处理程序中的 Modal。
这里到底发生了什么?
import React from 'react';
import Modal from '../../components/UI/Modal/Modal';
import Aux from '../Aux/Aux';
const withErrorHandler = (WrappedComponent, axiosInstance) => {
return class extends React.Component {
constructor(props) {
super(props);
this.state= {
error: null
};
}
componentWillMount() {
let { request, response} = axiosInstance.interceptors;
this.requestInterceptor = request.use(req => {
this.setState({error: null});
return req;
})
this.responseInterceptor = response.use(resp …Run Code Online (Sandbox Code Playgroud) scenekit ×2
constructor ×1
hittest ×1
javascript ×1
react-native ×1
reactjs ×1
rotation ×1
setstate ×1
swift ×1