- Home /
Create a full circle/chain of hinge joints!
Hello,
I've used the following script to create 108ish spheres, which I wanted to make as a full circle. I've set the connectedBody to one starting sphere for the sphere 1 and 108, but it still persists to create a straight line. Manipulating the variables during game play doesn't seem to yield any results.
What would be the solution to this? Use another type of joint? I'm still somewhat new so please go easy on me. :) <3
private var arr : GameObject[]; private var number:int = 0; private var max:int = 109; private var round:int = 1; private var i:int;
public var beadPrefab : GameObject;
function Start() { arr = new GameObject[max];
for (i = 0; i < max; i++)
{
var newbead : GameObject = Instantiate (beadPrefab, Vector3(292 , 68, 32 +i*5), Quaternion.identity);
newbead.name = "bead" + i;
if (i == 0) //head bead
{
newbead.transform.localScale *= 1.5;
newbead.name = "bead0head";
}
if (i>0)
{
if (i == 108)
{
newbead.hingeJoint.connectedBody = arr[0].rigidbody;
//arr[1].hingeJoint.connectedBody = newbead.rigidbody;
}
else
if (i <= 108)
newbead.hingeJoint.connectedBody = arr[i-1].rigidbody;
}
arr[i] = newbead;
}
}
function Update() { // move to next bead }
$$anonymous$$mm I'm not sure if it'd matter which type of physics joint I use. The issue lays in the connected bodies... I'll keep thinking and post a response!
Also I tried to move the last bead towards the first one with code, but it didn't nudge.
Then tried to set the last bead's coords to the first one, but it seems if the last bead moves closer, it turns into a snake effect as the head bead moves further away.
Answer by Nath0rn · Sep 28, 2010 at 01:15 PM
Not sure why but when using the Unity3 it linked up fine,
also referring to here helped http://answers.unity3d.com/questions/21458/instantiate-prefabs-in-a-circle-or-elipsoid