- Home /
Question by
biggestgeek · Sep 04, 2013 at 11:33 AM ·
rotationaligninstantiating
Instantiating track in correct orientation
private int toSpawnTrack;
//Track Locations Vectors
private Transform currentTrackLocation;
private Vector3 nextTrackLocation;
public void generateTrack()
{
print ("generate Track Called");
//////////////////////////////////////////////////////////////////////////////////
// 1 = straight
// 2 = Curve Left
// 3 = Curve Right
//////////////////////////////////////////////////////////////////////////////////
//Setting the location on next track in line
if(toSpawnTrack == 1)
{
nextTrackLocation = currentTrackLocation.transform.TransformPoint(Vector3.forward * 10);
}
if(toSpawnTrack == 2)
{
nextTrackLocation = currentTrackLocation.transform.TransformPoint(Vector3.left * 10);
}
if(toSpawnTrack == 3)
{
nextTrackLocation = currentTrackLocation.transform.TransformPoint(Vector3.right * 10);
}
//toSpawnTrack = Random.Range(1,4);
toSpawnTrack = 2;
print("toSpawnTrack " + toSpawnTrack);
//Spawn Straight Track
if(toSpawnTrack == 1)
{
//Instancing the next track in line
GameObject trackInstance = Instantiate(planeStraightPreFab, nextTrackLocation, Quaternion.identity) as GameObject;
//Node position for a straight track
Vector3 tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,-5);
nodesList[0] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,0);
nodesList[1] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,5);
nodesList[2] = tempPos;
//Updateing of the current track location
currentTrackLocation = trackInstance.transform;
//Changing the name of the next iTween path so it does not conflict
trackInstance.GetComponent<iTweenPath>().pathName = "InstPath" + trackCount.ToString();
print ("Spawned Straight Track");
}
//Spawn Curved Left Track
if(toSpawnTrack == 2)
{
Quaternion tempRot = currentTrackLocation.transform.rotation;
print ("tempRot =" + tempRot);
//tempRot = Quaternion.Euler(0,-90,0);
//Instancing the next track in line
GameObject trackInstance = Instantiate(planeCurvedLeft, nextTrackLocation, tempRot) as GameObject;
//Node position for a straight track
Vector3 tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,-5);
nodesList[0] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,0);
nodesList[1] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(-5,1,0);
nodesList[2] = tempPos;
//Updateing of the current track location
currentTrackLocation = trackInstance.transform;
//Changing the name of the next iTween path so it does not conflict
trackInstance.GetComponent<iTweenPath>().pathName = "InstPath" + trackCount.ToString();
print ("Spawned Curved Left Track");
}
//Spawn Curved Right Track
if(toSpawnTrack == 3)
{
//Instancing the next track in line
GameObject trackInstance = Instantiate(planeCurvedRight, nextTrackLocation, Quaternion.Euler(Vector3.right)) as GameObject;
//Node position for a straight track
Vector3 tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,-5);
nodesList[0] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(0,1,0);
nodesList[1] = tempPos;
tempPos = trackInstance.gameObject.transform.TransformPoint(5,1,0);
nodesList[2] = tempPos;
//Updateing of the current track location
currentTrackLocation = trackInstance.transform;
//Changing the name of the next iTween path so it does not conflict
trackInstance.GetComponent<iTweenPath>().pathName = "InstPath" + trackCount.ToString();
print ("Spawned Curved Right Track");
}
//Changing the pos of the nodes to new position in relation to
//the instanced prefab.
//print ("1 " + nodesList[0]);
//print ("2 " + nodesList[0]);
//print ("3 " + nodesList[0]);
trackCount++;
pathSwitch();
}
I'm trying to spawn the track so they will flow with each other. Right now only the straight path is working. When I attempt to spawn curved paths, the curved paths either do not align up or facing in a totally different direction. I know its a problem with the rotation of the object when instantiating them and can't seem to work out how to fix it.
Comment
Your answer
Follow this Question
Related Questions
Slight rotation of identical objects 0 Answers
Flip over an object (smooth transition) 3 Answers
Align an axis to a plane 0 Answers