How can i rotate a object more than once (90 degrees)?

Hey, maybe someone can help. I want two separate Sprite-Objects to rotate after clicking +90 degrees.
So that they rotate first from 0 to 90, than from 90 to 180, than from 180 to 270 and finally from 270 to 360/0. But not the Sprite-Object itself should rotate. They should linked to an Layer-Object, that rotates.
All of them, Layer-Object and Sprite-Objects, should rotate together and not on each own pivot point. So if i click on one Sprite-Object it becomes a child of the Layer-Object. After i clicked on the other Sprite-Object it also becomes a child of the Layer-Object, too.

Code for the Sprites:

``````    public GameObject Layer1;
public GameObject Layer2;
public GameObject Brick;

void Start () {

}

// if you click the Brick it becoming child of Layer
void OnMouseDown (){
if (Brick){
Brick.transform.parent = Layer1.transform;
}
print ("Brick is clicked");
}
``````

Ok, now they are both clicked and linked to the Layer. In the next step i check the numbers of children in the Layer-Object. If the Layer-Object has two children, it rotates from 0 to 90. That works. After this step, i want all children to be unlinked and send back to the normal Brick-Folder, where they belong. So that the Layer-Object is empty again. That works, too. But the next step doesn’t work: I want to click again on each Sprite-Object, so that the rotation repeats.
Finally it should be as follows: i want to click on two Sprite-Objects. They become children of the Layer-Object. The Layer-Object rotates with both children inside. After the rotation from 0 to 90 is completed, the Layer-Object should become “empty” again. This should be round one! If i repeat the click on the two Sprite-Objects, i want the next rotation of the Layer-Object from 90 to 180. And so on and on… Maybe someone can help.

Thanks and best Greetings. Simon

Code for the Layer:

``````public GameObject Bricks;
float t;
Quaternion initial = Quaternion.Euler (0,0,0) ;
Quaternion target = Quaternion.Euler (0,0,90) ;

void Start () {

}

void Update () {
print ("Number of Childs: "+transform.childCount);
Rotate ();
Unchild ();
}

public void Rotate () {
// if the Layer has two Children -> rotate
if (transform.childCount == 2) {
t += Time.deltaTime;
transform.rotation = Quaternion.Lerp(initial, target, t);  // <---------- how can i code that dynamic? that it goes automatic +90?
print ("rotate");
}
}

public void Unchild () {
// child should go in Bricks, after rotation
if (this.transform.rotation.eulerAngles.z == 90) {    // <---------- i want here something like, if the new rotation is done
foreach (Transform child in transform) {
child.transform.parent = Bricks.transform;
print ("Child is back in Bricks");
}
}
}
``````

Rather than do all this parenting and unparenting, why not use RotateAround?