[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
307: 2018/08/03(金)21:11 ID:g4hffkLt(2/3) AAS
>>305
俺もそれ思った。
308(1): 2018/08/03(金)21:13 ID:y6ZFjsSR(2/3) AAS
ohiohiまた威勢のいい○○が沸いてきやがった
すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな
>Serialized data
そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い
309: 2018/08/03(金)21:57 ID:g4hffkLt(3/3) AAS
>>308
シリアライズされたデータだろ。プレハブには複数のゲームオブジェクト、複数のコンポーネントがシリアライズされて保存されてる訳だけど、型って何?
310(1): 2018/08/03(金)22:40 ID:y6ZFjsSR(3/3) AAS
>ゲームオブジェクト
>コンポーネント
これらはとどのつまりはクラス。
クラスとは何か?
311: 2018/08/03(金)23:17 ID:5oCXpdg6(1) AAS
アプデしたらいつも調子悪くなる
312(5): 2018/08/04(土)04:54 ID:nYTIxyUA(1) AAS
基本的にゲームプログラミングでは
シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね?
for文でその配列の要素回して抜き出したり。
でもUnityの2Dシューティングとかのチュートリアルを確認してみると
次々と生み出された敵を配列に入れ込む処理が見当たりませんが
これ、個々のオブジェクトの把握はどうやってるんですか?
313(1): 2018/08/04(土)05:19 ID:uwGBYqQ5(1/5) AAS
>>310
なるほど、型か!ってなんねーよww
シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。
ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。
314: 2018/08/04(土)06:49 ID:jfygBgbK(1/2) AAS
おまえら日本語で話せよ
315: 2018/08/04(土)07:35 ID:uwGBYqQ5(2/5) AAS
>>312
7.2は読んだか?
316(1): 2018/08/04(土)09:43 ID:8h4ounWr(1/3) AAS
>>313
わかったわかった
お前の人生は大ハズレだな
インスタンスについて基本的な理解が不足してるぞ
ヒエラル木も結局は型定義と初期値に関するシリアライズされたデータの集まりで、プレビュー時や実行時に初めてインスタンス化されてるんだよ
317(2): 2018/08/04(土)10:32 ID:uwGBYqQ5(3/5) AAS
>>316
プレハブの話だよ、ヒエラルキーからゲームオブジェクトをドラッグしてプレハブ作成した時点でヒエラルキー上のはプレハブインスタンスになるだろ。
そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。
このプレハブソースを型だったて言い張るのは無理があると言う話だ。だからどんな意味で型と言ってるか聞いたんだ。雛形って意味なら俺も納得。
318: 2018/08/04(土)10:36 ID:uwGBYqQ5(4/5) AAS
>>317
あ、ヒエラルキー上のプレハブインスタンスはソースと変更の参照でOOPで言うインスタンスじゃないのはわかってるから。
319: 2018/08/04(土)10:41 ID:uwGBYqQ5(5/5) AAS
>>317
>そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。
ヒエラルキー上のプレハブインスタンスが、実行時やプレビュー時にデシアライズ、と付け加えとく
320(1): 2018/08/04(土)10:55 ID:8h4ounWr(2/3) AAS
>ヒエラル木
デバッグ時にはモニタできるから、「シリアライズされた初期値およびデバッグ実行時の現在値」という表現が良いのか
しかしなぜ「シリアライズ」という言葉を使うんだろうか
ヒエラル木を構成する連続した要素の一つに組み込むという意味なのか
321(1): 2018/08/04(土)11:19 ID:qIP9aSz0(1/8) AAS
>>320
お前ら何でプレファブの中身見て見ないの?
YAMLで書かれたファイルだって一発で分かるだろ、つまりシリアライズされて保存されてるファイルって事だよ。
一方ヒエラルキーに見えてるのもファイル。
再生実行した時だけ、メモリに展開されてる。
わかった?
322: 2018/08/04(土)13:22 ID:8h4ounWr(3/3) AAS
1000回日本語文章読んでもバカには無理w
323(1): 2018/08/04(土)13:36 ID:ASd5/j6X(1) AAS
>>321
へー、ヒエラルキーに表示されているのはシーン上のオブジェクトのリストじゃなくてファイルなんだぁ。
ファイルシステムのどこにそのファイルがありますか?またシーンビューで編集しているときはメモリ上にはなくてディスク上にあるんですか?
公式のマニュアルとは違う説明で混乱しそうです。
324(1): 2018/08/04(土)13:52 ID:qIP9aSz0(2/8) AAS
>>323
右上のケバDebugにするとLocalIdentifierInfileってでてくんだろ。
隠蔽されてるが、あるんだよ。それアクセスされると色々ぶっこわれるからな。
325: 弟子 ◆rZPPjYuxmQ 2018/08/04(土)13:55 ID:+VI6JuUR(1/5) AAS
初心者スレでマウント取りたいのは分かるから巣に帰って
ちゃんと新しいの作ったからさ
【3Dゲームエンジン】Unity質問スレッド37
2chスレ:gamedev
326(1): 2018/08/04(土)14:04 ID:qIP9aSz0(3/8) AAS
初心者に分かるように言ってんじゃん。
紙パンツスレ飽きちゃったんか?あっちで吠えてろよ
327: 2018/08/04(土)14:29 ID:jfygBgbK(2/2) AAS
おまえらの話は誰にも通じてないし役にもたってないぞ
328(2): 弟子 ◆rZPPjYuxmQ 2018/08/04(土)14:41 ID:+VI6JuUR(2/5) AAS
>>326
YAMLとは?
シリアライズとは?
ケバdeaugとは?
初心者なんでまったく訳わかんないですわ
329(2): 2018/08/04(土)14:43 ID:yHEIRFFR(1/2) AAS
>>324
それってシーンファイルに書いてある識別IDじゃない。んでシーンを保存するまで0だよ。保存する前のヒエラルキーはどう説明するのさ。
330(1): 2018/08/04(土)14:45 ID:yHEIRFFR(2/2) AAS
>>328
初心者スレで聞いてみれば。
331: 2018/08/04(土)14:50 ID:cpg8UDOV(1) AAS
>>328
知らなくても作れるけどな。
332(1): 2018/08/04(土)15:05 ID:qIP9aSz0(4/8) AAS
>>329
Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。
シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。
未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。
保存前のヒエラルキーは見た目だよ、ドラフト扱いな。
もう少しEditorとUnityEngineの違い分かった方がいいな。
333(1): THE・シンプル先生 2018/08/04(土)15:07 ID:KOItUBKr(1/2) AAS
>>312
自分で工夫する事で昔の「main()ループ」に近い物が作れる。
?:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。
?:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。
?:?を?にアタッチ
?:?の中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy;
?:?の"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new GameObject[3];
?:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject;
?:後はGameObject[0]を使う
当然他のやり方も無数にある。
334(1): THE・ステップアップ先生 2018/08/04(土)15:19 ID:KOItUBKr(2/2) AAS
>>312
次の内容はおまけなので意味不明な場合は気にしなくていいよ。
ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。
今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。
旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。
とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。
じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと
中〜大規模のゲーム作成も想定して作られてるのもあると思う。
この規模になると次の事を実現しないといけない。
・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル
・もともと非常に重い3D物理演算を実用レベルで運用する
・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする
これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり
MMOやオープンワールド系のゲームを作れるポテンシャルを実現している。
FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。
実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより
オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。
余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。
今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。
アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。
335(1): 弟子 ◆rZPPjYuxmQ 2018/08/04(土)16:23 ID:+VI6JuUR(3/5) AAS
>>330
それはどこですか?
誘導お願いします
ここは、そういうスレなので教えてください
336(1): 2018/08/04(土)16:28 ID:qIP9aSz0(5/8) AAS
>>335
ほらよ、君にうってつけだ
2chスレ:gamedev
上下前次1-新書関写板覧索設栞歴
あと 666 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.016s