Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static function RandomArray3D(quantity : int, randomMin : Vector3, randomMax : Vector3, distanceApart : float) : Vector3[]
- {
- var positions = new Vector3[quantity];
- for (i = 0; i < positions.length; i++)
- {
- positions[i] = Vector3(
- Random.Range(randomMin.x, randomMax.x),
- Random.Range(randomMin.y, randomMax.y),
- Random.Range(randomMin.z, randomMax.z)
- );
- }
- var anyOverlapping = true;
- while (anyOverlapping)
- {
- anyOverlapping = false;
- for (var p1n = 0; p1n < positions.Length-1; ++p1n) {
- for (var p2n = (p1n+1); p2n < positions.Length; ++p2n) {
- var p1 = positions[p1n];
- var p2 = positions[p2n];
- // add check for if p1=p2 here!
- var delta = p2n-p1n;
- var distance = delta.magnitude;
- if (distance < threshold) {
- var resolveDist = (threshold-distance) * 0.5;
- positions[p1n] = p1 - delta.normalized * resolveDist;
- positions[p2n] = p2 + delta.normalized * resolveDist;
- anyOverlapping = true;
- }
- }
- }
- }
- return positions;
- }
Add Comment
Please, Sign In to add comment