Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Rotating a group of instantiated objects

Discussion in 'Scripting' started by ctsteve123, Aug 13, 2008.

  1. ctsteve123

    ctsteve123

    Joined:
    Sep 13, 2007
    Posts:
    51
    I would like to rotate a group of instantiated objects.

    When I try to rotate the gameObject holding a group of cylinders by 90 degrees on the x axis ( using the inspector), they rotate individually . Not as a group


    Code (csharp):
    1. function OnDrawGizmos(){
    2.     Gizmos.color = Color.blue;
    3.     var gizmoPos = transform.position;
    4.     gizmoPos.x += 4;
    5.     Gizmos.DrawLine( transform.position ,   gizmoPos );
    6.    
    7. }
    8.  
    9.  
    10. var prefab : GameObject;
    11. var gridX = 2;
    12. var gridY = 2;
    13. var gridZ = 2;
    14. var spacing = 1;
    15.  
    16. function Start () {
    17.     var startPos = transform.position;
    18.     var tubePos = transform.position;
    19.     for ( var y = 0 ; y < gridY ; y++){
    20.         for ( var x = 0 ; x < gridX ; x++ ){
    21.            
    22.             var aTube = Instantiate( prefab , tubePos , transform.rotation );
    23.              
    24.             aTube.transform.localPosition = Vector3( x,y, 0);
    25.          
    26.         }
    27.     }
    28.    
    29. }
     

    Attached Files:

  2. ctsteve123

    ctsteve123

    Joined:
    Sep 13, 2007
    Posts:
    51
    This gives me results closer to what I am looking for. I now have to figure out how to rotate the group in its center instead of on the edge.

    Code (csharp):
    1. var prefab : GameObject;
    2. var gridX = 2;
    3. var gridY = 2;
    4.  
    5.  
    6. function Start () {
    7.      
    8.      
    9.     for ( var y = 0 ; y < gridY ; y++){
    10.         for ( var x = 0 ; x < gridX ; x++ ){
    11.                        
    12.             var aTube = Instantiate( prefab , transform.position,  transform.rotation );
    13.            aTube.transform.Translate( x , 0, y );
    14.          }
    15.     }
    16.    
    17.      
    18. }
     
  3. StarManta

    StarManta

    Joined:
    Oct 23, 2006
    Posts:
    8,773
    You're probably wanting to make the group all under one parent object, and you can rotate the parent. In your code, the way to do that would be:

    aTube.transform.parent = myParent;
    myParent.rotation = whatever;