0

I want to be able to place an object randomly within a set radius(5-10 metres). the idea is that the user will walk around and eventually the object will come into view.

  • Generate a random angle and a random distance: `let randomDistanceFrom5To10 = Float(arc4random()) / Float(UInt32.max) * 5 + 5`. See https://stackoverflow.com/a/34765674/1033581 – Cœur Mar 08 '18 at 13:20

1 Answers1

0

Here is an example which uses @Coeur's randomDistance Function:

  /// Spawns 5 Nodes At Random Distances Away From The Camera
  func spwanRandomNodes(){

    //1. Create An Array Of Colours
    var colourArray: [UIColor] = [.red, .green, .yellow, .cyan, .white]

    //2. Create 5 Different Spheres With A Random Color & Position
    for i in 0...4{

        let nodeHolder = SCNNode()
        let nodeGeometry = SCNSphere(radius: 0.2)
        nodeGeometry.firstMaterial?.diffuse.contents = colourArray[i]
        nodeHolder.geometry = nodeGeometry

        //3. Create A Random Distance From 5 To 10 (Cœur's Answer)
        let randomDistanceFrom5To10 = Float(arc4random()) / Float(UInt32.max) * 5 + 5

        //4. Add The Node To The Scene Root
        augmentedRealityView?.scene.rootNode.addChildNode(nodeHolder)

        //5. Generate The Random SCNVector3

        /* Here I Have Added An XSpacer Simply For Testing */
        let xSpacer = Float(0.3 * Float(i))

        let randomVector =  SCNVector3 (xSpacer, 0, -(randomDistanceFrom5To10))

        //6. Set THe Nodes Positon
        nodeHolder.position = randomVector
    }

}
BlackMirrorz
  • 7,217
  • 2
  • 20
  • 31