【ゲームエンジン】Unityなんでも質問スレpart12at GAMEDEV【ゲームエンジン】Unityなんでも質問スレpart12 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト248:名前は開発中のものです。 23/11/26 11:00:07.84 ap8K17/p.net こうなる↓ public class GameManager : MonoBehaviour { GameObject prefab; Hogehoge[] hogehoges; private void Start() { hogehoges = new Hogehoge[10]; for (int i = 0; i < hogehoges.Length; i++) { GameObject obj = Instantiate(prefab); // プレハブから複製オブジェクトを生成・配置する hogehoges[i] = obj.GetComponent<Hogehoge>(); // 複製オブジェクトからHogehogeコンポーネントを取得して、配列hogehogesにぶち込む obj.localPosition = new Vector3(i, 0f, 0f); // 位置を変更 obj.localPosition = Quaternion.identity; // 角度を変更 } } private void Update() { for (int i = 0; i < hogehoges.Length; i++) { hogehoges[i].変数A = hogehoges[i].変数A + 1; // 【A】 } } } こうすれば毎フレームのHogehogeのアクセスはクラス変数にキャッシュした値へのアクセスになるので、パフォーマンスは最適化されたことになる GetComponentもそうだしInstantiateもそうだけど、UnityEngine傘下で定義された変数や関数は高コストという認識でおk Hogehoge[] hogehoges; みたいに自分で作成したコンポーネントやクラスの傘下に定義された変数や関数なら低コスト 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch