How do I find my mouse point in a scene using SceneKit?

后端 未结 3 675
借酒劲吻你
借酒劲吻你 2020-12-01 04:11

I have set up a scene in SceneKit and have issued a hit-test to select an item. However, I want to be able to move that item along a plane in my scene. I continue to receive

3条回答
  •  粉色の甜心
    2020-12-01 04:22

    I used the code written by Steve and with little modification it worked for me.

    On mouseDown I save clickWorldCoordinates on a property called startClickWorldCoordinates.

    On mouseDragged I calculate the selectedPiece position in this way:

    SCNVector3 worldClickCoordinate = [(SCNView *) self.view unprojectPoint:clickCoordinates.x];
    
    newPiecePosition.x = selectedPiece.position.x + worldClickCoordinate.x - startClickWorldCoordinates.x;
    newPiecePosition.y = selectedPiece.position.y + worldClickCoordinate.y - startClickWorldCoordinates.y;
    newPiecePosition.z = selectedPiece.position.z + worldClickCoordinate.z - startClickWorldCoordinates.z;
    
    selectedPiece.position = newPiecePosition;
    
    startClickWorldCoordinates = worldClickCoordinate;
    

提交回复
热议问题