2016-12-16 33 views
0

私は手動で(エディタから)ボックスで空のオブジェクトを作成します。それは中心を中心に回転します。 しかし、私はスクリプトからボックスで同じオブジェクトを作成する場合。それは私のために未知の点を中心に回転します。 原因を見つけました。ボックスにはスケール(0.1、0.2、0.1)があるために起こります。私が(1,1,1)を設定すれば、それは機能します。 修正方法?私は小さな箱が欲しい。空のオブジェクトを中心に回転

var wall = new GameObject(); 
    //wall.transform.parent = room.transform; 
    wall.transform.name = "Wall"; 
    wall.transform.position = new Vector3(0,0,0); 

    for (int x = -3; x < width-3; x++) 
    { 
     for (int y = -3; y < height-3; y++) 
     { 
      var plate = Instantiate(SimplePlate); 

      var pos = plate.transform.position; 
      float posZ = pos.z - (x * plate.transform.lossyScale.z); 
      float posY = pos.y + (y * plate.transform.lossyScale.y); 

      var newPos = new Vector3(0, posY, posZ); 
      plate.transform.position = newPos; 
      plate.transform.parent = wall.transform; 
      plate.name = "Plate " + x; 
     } 
    } 

答えて

0

もう1つの空のゲームオブジェクトを作成し、内部にボックスを埋め込むことができます。作成した親を回転させますか?

また、(0,0,0)のスケールでオブジェクトを回転させる方法もあります。あなたは(1,1,1)を意味しましたか?

+0

はい(1,1,1)。ボックス(1,1,1)が入っている空のGameObjectを回転させると、正常に動作します。 GameObjectがボックス(0.1,1.1,0.1)を含む空のGameObjectを回転させると、GameObjectはピボットの周りをボックス(1,1,1)のcontainsのように回転します。 – Vostrugin

+0

おそらく私はそれを試してみるだろう:http://answers.unity3d.com/questions/12453/how-do-i-offset-the-scaling-center-for-a-cube.html – rmTheZ

関連する問題