- nakamura001
- 29398
- 46
- 6
- 148
一万個のオブジェクトをシーンに生成するのにかかる時間 ・ゲームオブジェクトをAddComponentする(6.5ms ・シーンに配置する(23.5ms ・InstantiateでCloneする(4ms #Unity道場
2016-12-22 20:05:39ゲームを構築する際には ・シーンに配置 ・実行時に構築 どちらが良いか ⇛実行時に構築が1番早い(Clone) #unity道場
2016-12-22 20:07:09AddComponentは、シーンからロードした場合、パラメータを流し込むところが負荷が高い。 ScriptableObjectを使って参照する仕組みにすると高速化できる。 #Unity道場
2016-12-22 20:07:58emptyなGame ObjectをInstantiateして、AddComponentするのがCreateの方か コンポーネントも全部ついてるPrefabからInstantiateするのがCloneかな? #Unity道場
2016-12-22 20:08:11ScriptableObjectで作るというアプローチが有効。nested prefabはいつか来ますとのことw #Unity道場
2016-12-22 20:08:46ただしClone(Instance)の場合は注意点がある ⇛SetParentの処理が重い ⇛解決策として Instantiate(newObj,parentTransform)と生成時に親を指定すると良い #unity道場
2016-12-22 20:10:57オブジェクトプールを作る場合、負荷が高い。 Instantiateするときに、親のTransformを引数に渡す! 高速化できる! #Unity道場
2016-12-22 20:11:05Transform.SetParent()がちょっと重かったらしくGameObject.Instantiate(newGo, parentTransform)が5.4当たりから追加されているらしい #Unity道場
2016-12-22 20:11:13GameObject.Instantiate(newGo, parentTransform)、作るタイミングで同時に親を決める。ヒープ上で都度探してたのが、まとまって見つけ易くなる。故に早くなる。#Unity道場
2016-12-22 20:11:32GameObjectの親子関係を変えるのは負荷が高い。Instantiateに親を指定できるようになったので使おう。 docs.unity3d.com/ja/current/Scr… #unity道場
2016-12-22 20:12:31parentTransform.hierarchyCapacityを使うと生成・破棄コストが安くなる!が、親が変わる場合はコストがあがるので注意。。。#Unity道場
2016-12-22 20:12:49parentTransform.hierarchyCapacity = 1000; ・GameObject生成・破棄のコストが安くなる ・親の変更コストが上がる #unity道場
2016-12-22 20:12:57parentTransform.hierarchyCapacity = 1000; docs.unity3d.com/ScriptReferenc… 後で調べたい #Unity道場
2016-12-22 20:13:01プールオブジェクトにhierarchyCapacityを設定する。 ただし注意点。この設定をしたプールオブジェクトを別のオブジェクトの子にしたりするのは、重くなっちゃうよー! #Unity道場
2016-12-22 20:13:28#Unity道場 hierarchyCapacity ってルートになるparentで設定すると子もそれと同値になるとかじゃなかったっけ。
2016-12-22 20:15:26