2017-02-10 5 views
0

GameObjectsを画面上部でインスタンス化して落ちるコードです。Unity:GameObjectを画面上部でインスタンシエートします。それに自分の高さを加えます。

float RandX = GetRandomXPos(); 
float RandY = screenSize.y; 
Vector3 ballPos = new Vector3(RandX,RandY,0); 
GameObject clone = Instantiate(BallPrefab, ballPos, transform.rotation) as GameObject; 

これは正常に動作しますが、彼らはただ存在に点滅して、それはでそれらを画面の上部をを生みます。私は画面の上部にプレハブの高さとそれが見えないように見えるように、そして視界に落ちるようにそれらをスポーンしたい。

私がオフセットする必要がある高さを得る最も良い方法は何ですか?

答えて

0

プレハブのサイズを取得するには、プレハブにあるレンダラの情報を取得する必要があります。

は、あなたがその階層内のコンポーネントを取得する必要があり、これを行うには、GetComponentInChildren < レンダラを使用してこれを行うことができます>()

あなたはレンダラを得た後は、あなたが境界のサイズにアクセスすることができますrenderer.bounds.size

これは、高さがY成分され、物体の寸法を有するのVector3あります。あなたはGetComponentsInChildren < レンダラ>()でそれらのすべてを取得する必要がありますので、

あなたはプレハブ内に複数のレンダラを有することができます。 boundsを使用してすべての境界の合計を計算します。カプセル化

var renderer = target.GetComponentInChildren<Renderer>(); 
var height = renderer.bounds.size.y; 
関連する問題