2016-07-16 19 views
0

私は私のプレハブインスタンス化プレハブサイズが大きすぎるユニティC#の

 copyOfSpellObject = (GameObject)Instantiate(gameObject, transform.position, transform.rotation); 
     Item_Spell itemSpell = copyOfSpellObject.GetComponent<Item_Spell>(); 
     itemSpell.SpellObject = GetComponent<Item_Spell>().SpellObject; 
     copyOfSpellObject.transform.SetParent(transform, false); 
     copyOfSpellObject.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(transform.position.x, transform.position.y, 0)); 
     copyOfSpellObject.transform.SetParent(transform.parent.parent.parent, false); 

をインスタンス化するとそれは超ビッグ

ノーマルになっているhttp://prntscr.com/btgzke

それはなぜですか?この問題は、特定の親に、より具体的には、この後の各親がthisを含む問題の原因となるtransform.parent.parent.parentを子として入れた場合にのみ発生します。

+0

親を2回設定しています。それには理由がありますか?また、2番目の呼び出しは変わったように見えますが、代わりにtransform.rootを使用したいかもしれません。 – Everts

答えて

0

階層内のオブジェクトをインスタンス化した後、そのオブジェクトをクリックします。 'scale'プロパティ(変換コンポーネント内)に大きな数字がありますか?もしそうなら、それらの数字をすべて1に設定し、それがあなたが望むサイズかどうかを調べてみてください。そして、ちょうどこのようなあなたのコード内で1(または任意のサイズあなたが好き)にオブジェクトのスケールを設定します。

copyOfSpellObject = (GameObject)Instantiate(gameObject, transform.position, transform.rotation); 
    Item_Spell itemSpell = copyOfSpellObject.GetComponent<Item_Spell>(); 
    itemSpell.SpellObject = GetComponent<Item_Spell>().SpellObject; 
    copyOfSpellObject.transform.SetParent(transform, false); 
    copyOfSpellObject.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(transform.position.x, transform.position.y, 0)); 
    copyOfSpellObject.transform.SetParent(transform.parent.parent.parent, false); 
    copyOfSpellObject.transform.localScale = new Vector3(1,1,1); 

変換は、もともと親なしで作成されたインスタンス化されたオブジェクトを子育てするとき、本当に奇妙な取得する傾向があります。

これが役に立ったら教えてください

+0

これは私の問題を解決します。親を 'transform.root'にするとそれはまだ大きすぎます。 – PreqlSusSpermaOhranitel

+0

@preqlsusspermaohranitel実際のプレハブはどこで作成しましたか?オブジェクトを(親なしで)作成し、それをプレハブとして保存しましたか?あなたがした場合、おそらくあなたの問題がどこにあるのでしょうか。エディタ内の親の中にオブジェクトを作成し、サイズを好みに合わせて調整し、それをプレハブとして保存する必要があります。オブジェクトをインスタンス化するときには、すべてが同じままでなければなりません。 –

関連する問題