[過去ログ] 【3Dゲームエンジン】Unity質問スレッド14 [転載禁止]©2ch.net (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
116
(5): 名無しさん@そうだ選挙に行こう 2014/12/13(土)21:00 ID:pHafisVb(1) AAS
スクリプト内で、cubeのプレハブにレンガのマテリアルを貼り付けて
Instantiateしてるんですが、InstantiateすればするほどDrawCallが増えていきます。
色々なサイトにResources.Loadを使用すればDrawCallは増えないと書いてあったので、
その通りにしているつもりなのですが。
どうにかしてDrawCallを増やさないようにできないでしょうか?

コードは下記の通りです。

for (int i=0; i<100; i++) {
省3
122
(1): 名無しさん@そうだ選挙に行こう 2014/12/13(土)22:48 ID:VWU9dyGs(7/7) AAS
>>116
後からMaterialをResource.Loadで貼り付けてるから別の(newされたMaterial)になってる
Prefab自体にあらかじめマテリアルをつけておけば同じ参照を持つようになる。
124
(1): 116 2014/12/14(日)00:47 ID:uXGnrAMa(1/3) AAS
>>122

外部リンク:tokyo.supersoftware.co.jp

上記ページに
Resource.Loadを使用し、且つInstantiateを使用しなければ
Materialの実態を1つに保つことが可能と記述してあるのですが、
間違いでしょうか?

なお、Prefab自体に予めMaterialを付けてもダメでした。
省1
131
(1): 名無しさん@そうだ選挙に行こう 2014/12/14(日)04:34 ID:2iGreumT(1/2) AAS
>>116
このコードのマテリアルを貼ってる行をコメントアウトすると本当にDrawCall減る?
もしかしたら別の要因で増えてる可能性もあるのかなと思った
133
(3): 116 2014/12/14(日)08:29 ID:uXGnrAMa(2/3) AAS
>>125
for文の外にResources.Loadを移動しても結果変わらずでした。

var mat = Resources.Load("Materials/wall01") as Material;
for (int i=0; i<100; i++) {
var obj = Instantiate (this.WallCubePrefab) as GameObject;
obj.transform.renderer.material = mat;
}
省13
149
(2): 116 2014/12/14(日)21:38 ID:uXGnrAMa(3/3) AAS
>>136
マテリアル一切貼らずにチャレンジしてみました。
結果としては、状況変わらずDrawCallが増加しました。

ということは、プレハブが原因ですかね。
Cubeをプレハブ化してるだけなんですが。。。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s