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.
Asked
Active
Viewed 477 times
0
-
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 Answers
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