[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild1 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
268: THE・シンプル先生 [sage] 2018/08/03(金) 04:00:21.11 ID:gwkzOX1I >>266 説明に間違いなし。 名前の通り初心者にシンプルに説明するのが目的で細かい説明は全てカットしてる。 初心者には自信を持って 『敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK』 この説明を推す。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/268
269: THE・ステップアップ先生 [sage] 2018/08/03(金) 04:11:45.63 ID:gwkzOX1I >>266-267 中級者以上の知識がある人達には ゲームオブジェクト自体もクラスと説明すれば分かってもらえるかと。 ソースコード上で行うインスタンス生成を Unity的な言葉に直したものがプレハブと呼ぶにすぎない。 相当細かく説明すると厳密には違うかもしれないけどね。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/269
270: 名前は開発中のものです。 [sage] 2018/08/03(金) 07:25:47.78 ID:UvI2T87H Instantiateなんてもんがわざわざあのになんでインスタンスにこだわるん? プログラミングの知識あるならシーンに設置したオブジェクトがインスタンスって方がわかりやすいぞ シーン内に個別に設置(インスタンス)したオブジェクトの値を変更してもプレハブ(クラス)には影響がないが プレハブ(クラス)の値を変更したら個別に設置(インスタンス)したものにも影響がある インスタンスからクラスに無理やり影響を与えるのがApply http://mevius.5ch.net/test/rea
d.cgi/gamedev/1528249519/270
271: 名前は開発中のものです。 [sage] 2018/08/03(金) 07:26:59.37 ID:/74BHbXn ほーんじゃあプレハブからクローンしたゲームオブジェクトはなんなんですかね あれこそインスタンスじゃないんですかね http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/271
272: 名前は開発中のものです。 [sage] 2018/08/03(金) 08:42:46.93 ID:Z5jah2NB プレハブはプレハブでいいじゃないか。いちいち既知の概念に置き換えないと理解できないの? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/272
273: 名前は開発中のものです。 [sage] 2018/08/03(金) 08:57:39.72 ID:8Qhd0PCF 再利用しやすくするものくらいの認識でいいんじゃね? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/273
274: 名前は開発中のものです。 [sage] 2018/08/03(金) 09:13:10.67 ID:Tb6IvIdd 博識のある方達は、やはり呼び名とか拘らないといけないんですね大変ですね。 私なんかは、インスタンスとか未だに理解していません、できてません。 ただスクリプトで複製したり、親子入れ替えたり消したり、ここに置いときゃいい、ぐらいの知識で十分作れてますから、初心者レベルは楽で良いですよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/274
275: 名前は開発中のものです。 [sage] 2018/08/03(金) 09:29:06.72 ID:Z5jah2NB あえて言うとプレハブはインスタンスのスナップショットな。instntiateはクラスのインスタンス化とはまた違った仕組みだし。無理矢理他言語の経験持ち込まずに、素直にマニュアル読んだが利口。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/275
276: 名前は開発中のものです。 [sage] 2018/08/03(金) 10:05:56.53 ID:Z5jah2NB >>270 >>271 シリアライズ機構を調べて出直しておいで。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/276
277: 名前は開発中のものです。 [sage] 2018/08/03(金) 10:12:09.26 ID:Z5jah2NB >>268 惜しい、インスタンスを保存したもの、だったら合格点。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/277
278: 名前は開発中のものです。 [sage] 2018/08/03(金) 10:52:55.93 ID:+s2o5GnK 盛り上がってますね。 プレファブはテンプレート化されたファイルですよ。 クラスをインスタンス化したものと言うのはメモリ展開されたクラスです。不正解。 プレファブはキャッシュされる前のファイルです。 まあ、キャッシュして書き換える事も出来ますが、どこぞのボッキングが、アセット書き変わった言って嘆いてましたんで、注意が必要です。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/278
279: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/03(金) 11:30:14.45 ID:M8FCr8g3 ここ初心者用に建てたスレなんで議論とか他でやって http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/279
280: 名前は開発中のものです。 [sage] 2018/08/03(金) 11:58:41.31 ID:udevAjot 初心者は議論なんかするなってか そりゃ永遠に初心者やな http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/280
281: 名前は開発中のものです。 [sage] 2018/08/03(金) 13:15:54.04 ID:+vZr26Ym >>279 お前には自分で立てた専用スレがあんだろ。あ、ここもでしたね、失礼しました。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/281
282: 名前は開発中のものです。 [sage] 2018/08/03(金) 13:27:05.32 ID:+vZr26Ym 匿名かつ初心者ばっかりだからこそ出来る、このいい加減な議論。楽しいじゃないか。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/282
283: 名前は開発中のものです。 [] 2018/08/03(金) 14:04:55.92 ID:lMgrnDzV まあ、弟子さんも十分初心者なんで、議論みて行って下さいな。 アレですよ?ここで、出てきたキーワード、分からなかったら、ググると良いですよ〜 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/283
284: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/03(金) 14:08:09.19 ID:M8FCr8g3 スレチなマウンター共は 【質問以外なんでもOK】Unity雑談スレッドその1 http://mevius.5ch.net/test/read.cgi/gamedev/1531742192/ で遊んであげるからここにこないでね、迷惑だから http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/284
285: 名前は開発中のものです。 [sage] 2018/08/03(金) 14:10:34.37 ID:KvMBRbxy 昨日からの酷い流れを見て感じたけど 初心者同士で馴れ合ってても百害あって一利なし 正しい知識を習得するのが大事 調べ物は公式マニュアル見る習慣を 最低限公式チュートリアルの初級(英語版)はやったほうがいい http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/285
286: 名前は開発中のものです。 [sage] 2018/08/03(金) 14:27:57.12 ID:lMgrnDzV 紙パンチに興味持てんわ 285さんのは正論ですね。 でも超概要として、こういうやり合い見るのも有りじゃないすかね。 自分も知らない事結構出てくるし。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/286
287: 名前は開発中のものです。 [sage] 2018/08/03(金) 15:13:38.43 ID:euFxSDg2 ここはクソコテ弟子が初心者相手にマウント取るために立てたスレなんで 初心者以外が質問、回答すると通報されてしまいますよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/287
288: 名前は開発中のものです。 [] 2018/08/03(金) 17:18:58.52 ID:XE8vIJkM 決まったobjectの当たり判定内にいるかつボタンを押したときのスクリプトが組めません、、&&を使えばいいという知識でやったところコンパイルエラーが出てしまいました。名前の一致などは確認済みですこんなタイミングですが教えてもらえると助かります。、、 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/288
289: 名前は開発中のものです。 [sage] 2018/08/03(金) 17:26:14.84 ID:Tb6IvIdd エラー文とその行を貼れ。 まずはそれからだ。テンプレ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/289
290: 名前は開発中のものです。 [] 2018/08/03(金) 17:32:30.72 ID:XE8vIJkM if (collision.gameobject.name == "Perfect")&& (Input.GetKeyDown(KeyCode.LeftShift)); { Destroy(gameobject); } の部分です。エラーは多いんですが ・`UnityEngine.Collision' does not contain a definition for `gameobject' and no extension method `gameobject' of type `UnityEngine.Collision' could be found. Are you missing an assembly reference? ・Only assignment, call, increment, decrement, await, and new object expressions can be
used as a statement ・The name `gameobject' does not exist in the current context です http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/290
291: 名前は開発中のものです。 [sage] 2018/08/03(金) 17:36:02.42 ID:Tb6IvIdd collision.gameobject.name をログ出力できるかやってみ? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/291
292: 名前は開発中のものです。 [sage] 2018/08/03(金) 17:37:26.76 ID:Tb6IvIdd ちな、&&は全角じゃないよね? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/292
293: 名前は開発中のものです。 [] 2018/08/03(金) 17:43:20.14 ID:XE8vIJkM ログ出力がなにかいまいちわかってなくて、、すみません。 &&は半角にしてもビジュアルスタジオ上で無効ですと書かれてしまいます http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/293
294: 名前は開発中のものです。 [sage] 2018/08/03(金) 17:52:35.95 ID:y6ZFjsSR Unityの「シリアライズ」というのは、インスペクタみたいなのに表示できるようにする為などに、データをUnity内部機構が読み込める独自様式に変換するという意味だろ プレハブはあくまで型と初期値の定義であって、プレビュー時や実行時にシーンに生成されて初めてメモリ上に占有領域が確保されて情報が記憶される(メモリ上オブジェクトとしてインスタンス化される) だからUnityプロジェクト中のヒエラル木も、厳密には型と初期値の定義でしかなく、インスタンス化さ
れたメモリ上オブジェクトではない Unityゲームオブジェクトやプレハブのインスタンス化は、Unity内部様式向けにシリアライズされた型と初期値の定義の情報に基づいて「デシリアライズ」することで行われる あと日本語の解説ページは分かりにくい さらにあと「スナップショット」は通常、システム全体の一時的状態を指すから、システムの構成要素(プレハブ)に使うのはニュアンスがずれてる http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/294
295: 名前は開発中のものです。 [] 2018/08/03(金) 17:53:09.72 ID:s8alTO1O >>293 if文の最後にセミコロンあるよね。 それをまず消してみて。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/295
296: 名前は開発中のものです。 [] 2018/08/03(金) 17:54:46.53 ID:XE8vIJkM 消しました。特に変化なしです http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/296
297: 名前は開発中のものです。 [] 2018/08/03(金) 17:56:40.41 ID:s8alTO1O >>294 俺もそれ思った。スナップショットだとvmを思い浮かべてしまうわ。 ストレージの技術感のが高いよな http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/297
298: 名前は開発中のものです。 [sage] 2018/08/03(金) 19:05:27.40 ID:Tb6IvIdd >>290 Debug.Log (collision.gameobject.name); で、何が表示されるか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/298
299: 名前は開発中のものです。 [sage] 2018/08/03(金) 19:12:48.91 ID:Tb6IvIdd >>290 if( (collision.gameobject.name =="Perfect")&&(Input.GetKeyDown(KeyCode.LeftShift))) { Destroy(gameobject); } こうかな? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/299
300: 名前は開発中のものです。 [] 2018/08/03(金) 20:24:49.31 ID:XE8vIJkM >>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね? いただいたプログラム打ちましたが駄目でした、、一応全文載せてみます using System.Collections; using System.Collections.Generic; using UnityEngine; public class judgePerfect : MonoBehaviour { void Update() { if ((collision.gameobject.name == "Perfect") && (Input.GetKeyDown(KeyCode.LeftShift))) { Destroy(gameobject); } } } htt
p://mevius.5ch.net/test/read.cgi/gamedev/1528249519/300
301: 名前は開発中のものです。 [sage] 2018/08/03(金) 20:25:58.25 ID:BofVo0Am gameObjectじゃないの? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/301
302: 名前は開発中のものです。 [sage] 2018/08/03(金) 20:28:13.30 ID:Tb6IvIdd >>300 >>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね? で、これで表示された内容は? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/302
303: 名前は開発中のものです。 [sage] 2018/08/03(金) 20:33:47.70 ID:Tb6IvIdd >>301 これですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/303
304: 名前は開発中のものです。 [] 2018/08/03(金) 20:38:06.67 ID:XE8vIJkM このプログラムに関する項目じゃないオブジェクトの詳細のようなものが追加されました http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/304
305: 名前は開発中のものです。 [sage] 2018/08/03(金) 20:46:54.61 ID:BofVo0Am collisionが唐突にでてきてるけど根本的に間違ってるんじゃね OnCollisionEnterもつかってないし http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/305
306: 名前は開発中のものです。 [sage] 2018/08/03(金) 20:56:53.50 ID:g4hffkLt >>294 プレハブが型と初期値の定義なんてどこに書いてあるよwww日本語と英語には書いてないから、あとは俺が読めない韓国語か? gameObjectとコンポーネントのSerialized dataだって書いてあんだろ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/306
307: 名前は開発中のものです。 [sage] 2018/08/03(金) 21:11:35.02 ID:g4hffkLt >>305 俺もそれ思った。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/307
308: 名前は開発中のものです。 [sage] 2018/08/03(金) 21:13:54.44 ID:y6ZFjsSR ohiohiまた威勢のいい○○が沸いてきやがった すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな >Serialized data そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/308
309: 名前は開発中のものです。 [sage] 2018/08/03(金) 21:57:13.06 ID:g4hffkLt >>308 シリアライズされたデータだろ。プレハブには複数のゲームオブジェクト、複数のコンポーネントがシリアライズされて保存されてる訳だけど、型って何? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/309
310: 名前は開発中のものです。 [sage] 2018/08/03(金) 22:40:26.78 ID:y6ZFjsSR >ゲームオブジェクト >コンポーネント これらはとどのつまりはクラス。 クラスとは何か? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/310
311: 名前は開発中のものです。 [] 2018/08/03(金) 23:17:18.29 ID:5oCXpdg6 アプデしたらいつも調子悪くなる http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/311
312: 名前は開発中のものです。 [] 2018/08/04(土) 04:54:34.40 ID:nYTIxyUA 基本的にゲームプログラミングでは シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね? for文でその配列の要素回して抜き出したり。 でもUnityの2Dシューティングとかのチュートリアルを確認してみると 次々と生み出された敵を配列に入れ込む処理が見当たりませんが これ、個々のオブジェクトの把握はどうやってるんですか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/312
313: 名前は開発中のものです。 [sage] 2018/08/04(土) 05:19:51.58 ID:uwGBYqQ5 >>310 なるほど、型か!ってなんねーよww シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。 ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/313
314: 名前は開発中のものです。 [sage] 2018/08/04(土) 06:49:36.83 ID:jfygBgbK おまえら日本語で話せよ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/314
315: 名前は開発中のものです。 [sage] 2018/08/04(土) 07:35:21.25 ID:uwGBYqQ5 >>312 7.2は読んだか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/315
316: 名前は開発中のものです。 [sage] 2018/08/04(土) 09:43:45.62 ID:8h4ounWr >>313 わかったわかった お前の人生は大ハズレだな インスタンスについて基本的な理解が不足してるぞ ヒエラル木も結局は型定義と初期値に関するシリアライズされたデータの集まりで、プレビュー時や実行時に初めてインスタンス化されてるんだよ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/316
317: 名前は開発中のものです。 [sage] 2018/08/04(土) 10:32:45.75 ID:uwGBYqQ5 >>316 プレハブの話だよ、ヒエラルキーからゲームオブジェクトをドラッグしてプレハブ作成した時点でヒエラルキー上のはプレハブインスタンスになるだろ。 そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。 このプレハブソースを型だったて言い張るのは無理があると言う話だ。だからどんな意味で型と言ってるか聞いたんだ。雛形って意味なら俺も納得。 http://mevius.5ch.net
/test/read.cgi/gamedev/1528249519/317
318: 名前は開発中のものです。 [sage] 2018/08/04(土) 10:36:45.24 ID:uwGBYqQ5 >>317 あ、ヒエラルキー上のプレハブインスタンスはソースと変更の参照でOOPで言うインスタンスじゃないのはわかってるから。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/318
319: 名前は開発中のものです。 [sage] 2018/08/04(土) 10:41:25.18 ID:uwGBYqQ5 >>317 >そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。 ヒエラルキー上のプレハブインスタンスが、実行時やプレビュー時にデシアライズ、と付け加えとく http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/319
320: 名前は開発中のものです。 [sage] 2018/08/04(土) 10:55:45.37 ID:8h4ounWr >ヒエラル木 デバッグ時にはモニタできるから、「シリアライズされた初期値およびデバッグ実行時の現在値」という表現が良いのか しかしなぜ「シリアライズ」という言葉を使うんだろうか ヒエラル木を構成する連続した要素の一つに組み込むという意味なのか http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/320
321: 名前は開発中のものです。 [] 2018/08/04(土) 11:19:34.99 ID:qIP9aSz0 >>320 お前ら何でプレファブの中身見て見ないの? YAMLで書かれたファイルだって一発で分かるだろ、つまりシリアライズされて保存されてるファイルって事だよ。 一方ヒエラルキーに見えてるのもファイル。 再生実行した時だけ、メモリに展開されてる。 わかった? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/321
322: 名前は開発中のものです。 [sage] 2018/08/04(土) 13:22:29.52 ID:8h4ounWr 1000回日本語文章読んでもバカには無理w http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/322
323: 名前は開発中のものです。 [sage] 2018/08/04(土) 13:36:44.18 ID:ASd5/j6X >>321 へー、ヒエラルキーに表示されているのはシーン上のオブジェクトのリストじゃなくてファイルなんだぁ。 ファイルシステムのどこにそのファイルがありますか?またシーンビューで編集しているときはメモリ上にはなくてディスク上にあるんですか? 公式のマニュアルとは違う説明で混乱しそうです。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/323
324: 名前は開発中のものです。 [sage] 2018/08/04(土) 13:52:20.56 ID:qIP9aSz0 >>323 右上のケバDebugにするとLocalIdentifierInfileってでてくんだろ。 隠蔽されてるが、あるんだよ。それアクセスされると色々ぶっこわれるからな。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/324
325: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/04(土) 13:55:14.77 ID:+VI6JuUR 初心者スレでマウント取りたいのは分かるから巣に帰って ちゃんと新しいの作ったからさ 【3Dゲームエンジン】Unity質問スレッド37 http://mevius.5ch.net/test/read.cgi/gamedev/1533351108/ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/325
326: 名前は開発中のものです。 [sage] 2018/08/04(土) 14:04:46.49 ID:qIP9aSz0 初心者に分かるように言ってんじゃん。 紙パンツスレ飽きちゃったんか?あっちで吠えてろよ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/326
327: 名前は開発中のものです。 [sage] 2018/08/04(土) 14:29:50.67 ID:jfygBgbK おまえらの話は誰にも通じてないし役にもたってないぞ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/327
328: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/04(土) 14:41:43.17 ID:+VI6JuUR >>326 YAMLとは? シリアライズとは? ケバdeaugとは? 初心者なんでまったく訳わかんないですわ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/328
329: 名前は開発中のものです。 [sage] 2018/08/04(土) 14:43:13.78 ID:yHEIRFFR >>324 それってシーンファイルに書いてある識別IDじゃない。んでシーンを保存するまで0だよ。保存する前のヒエラルキーはどう説明するのさ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/329
330: 名前は開発中のものです。 [sage] 2018/08/04(土) 14:45:18.52 ID:yHEIRFFR >>328 初心者スレで聞いてみれば。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/330
331: 名前は開発中のものです。 [sage] 2018/08/04(土) 14:50:04.55 ID:cpg8UDOV >>328 知らなくても作れるけどな。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/331
332: 名前は開発中のものです。 [] 2018/08/04(土) 15:05:56.25 ID:qIP9aSz0 >>329 Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。 シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。 未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。 保存前のヒエラルキーは見た目だよ、ドラフト扱いな。 もう少しEditorとUnityEngineの違い分かった方がいいな。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/332
333: THE・シンプル先生 [sage] 2018/08/04(土) 15:07:18.36 ID:KOItUBKr >>312 自分で工夫する事で昔の「main()ループ」に近い物が作れる。 ?:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。 ?:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。 ?:?を?にアタッチ ?:?の中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy; ?:?の"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new Game
Object[3]; ?:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject; ?:後はGameObject[0]を使う 当然他のやり方も無数にある。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/333
334: THE・ステップアップ先生 [sage] 2018/08/04(土) 15:19:06.70 ID:KOItUBKr >>312 次の内容はおまけなので意味不明な場合は気にしなくていいよ。 ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。 今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。 旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。 とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。
じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと 中〜大規模のゲーム作成も想定して作られてるのもあると思う。 この規模になると次の事を実現しないといけない。 ・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル ・もともと非常に重い3D物理演算を実用レベルで運用する ・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり MMOやオープンワールド系のゲームを作
れるポテンシャルを実現している。 FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。 実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。 余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプ
ト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。 今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。 アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/334
335: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/04(土) 16:23:58.28 ID:+VI6JuUR >>330 それはどこですか? 誘導お願いします ここは、そういうスレなので教えてください http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/335
336: 名前は開発中のものです。 [] 2018/08/04(土) 16:28:00.38 ID:qIP9aSz0 >>335 ほらよ、君にうってつけだ http://mevius.5ch.net/test/read.cgi/gamedev/1531742192/ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/336
337: 名前は開発中のものです。 [sage] 2018/08/04(土) 17:03:05.01 ID:u4pCimN6 >>332 >>>329 >Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。 >シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。 ヒエラルキーの表示じゃなくて、ヒエラルキーに表示されている、シーン上のオブジェクトの話をしてたつもりなんですけど。 >未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。 未保存のときもlocal identfierfile 0のままシーンビュー
やヒエラルキービューで編集出来ますけど、そのオブジェクトはメモリ上じゃなくてどこで動いてるんですか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/337
338: 名前は開発中のものです。 [sage] 2018/08/04(土) 17:27:38.46 ID:qIP9aSz0 >>337 シーン情報はシーンにある。プレファブ情報はプレファブファイルにある。 てか見たんだろ?ファイルにあるわ。 もちろん画面に表示したり、編集させるにはメモリを使ってる。だけど電源オフったら消える通りストックはされておらん。 編集はできとるが、これがそのまま再生実行時に使われると思ってるところがあんたが嵌ってるところだ。 新規作成したらEditor用のメモリに展開はされる。 だけど電源オフったら消える通りストックはされておらん。 未保
存データは再生実行時には使われておらん。 再生実行時に保存データを使ってEditor用のメモリに一旦展開する。これがデシリアライズな。 分かった? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/338
339: 名前は開発中のものです。 [sage] 2018/08/04(土) 18:23:45.38 ID:bPWDdaDo >>338 誰か再生実行時の話してましたっけ?プレハブを作る場面の話だったと思いますけど。 ヒエラル木とか言ってる人に合わせて、ヒエラルキー上にリストされているシーン上のオブジェクトの事を指して、またはオブジェクトの階層構造自体の事をヒエラルキーって言ってたのが悪かったかな。 ヒエラルキーのリストは確かにファイル。 んで、編集中にプレハブを作りました。そのプレハブをシーン上に配置しました。シーン上に配置した時点でオブジェクト化された
んじゃないかと思うのですが、このときはプレハブソースからのデシリアライズは起きないのですか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/339
340: 名前は開発中のものです。 [] 2018/08/04(土) 18:30:26.82 ID:sBxajZWZ playerキャラとかNPCキャラとか複数のオブジェクトで使い回すような自作関数ってそれぞれにアタッチしてるスクリプトに書く?それとも1つ関数をまとめたオブジェクトを作ってそこに書いておいてその都度それぞれが参照する感じのほうがいいですか? 例えばオブジェクトの現在の座標とか着地判定を取得する関数とか http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/340
341: 名前は開発中のものです。 [sage] 2018/08/04(土) 19:26:52.87 ID:qIP9aSz0 >>339 インスタンス化とデシリアライズの話が出たから、そのタイミングである再生実行の話をしただけで、いきなり誰かしたかと言うのはおかしい話。 プレハブから配置したのは、あくまでEditor上でシーン情報を作っただけで、デシリアライズは再生の時に起きるっての分かる為なんだが まあ、ちょっとデシリアライズを誤解してるってか、話がどんどん逸れそうだからな。行間読むわ 多分言いたいのは、プレハブをシーンに置いた時に、プレハブ情報からシーン情
報が構築されないのか?って言いたいんだろう。 一旦Editorのメモリ上では構築される。 そんで、再生や保存で、その時に当然Dirtyな置かれたオブジェクトがファイルに保存される。 再生の初期にシーンファイルを読み込んで、デシリアライズしてメモリ展開する。 オブジェクト化は再生の初期やInstantiateの時に起こる。これをインスタンス化と呼ぶ。 じゃあ、エディタで見えてるのは何なの?って言うと、編集のためにファイルをエディタ用のメモリに展開してるだけ。 最初にプレハブを置く=テンプレートからのエディタ用メモリへのコピー 保存=シ
ーン情報の構築 ヒエラルキー=再生時のメモリ構築用データ と思えば良い。 まだダメかな?いい加減疲れてきたぞ。をい http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/341
342: 名前は開発中のものです。 [] 2018/08/04(土) 19:33:40.98 ID:qIP9aSz0 >>340 人それぞれかな。 俺の場合は、それぞれにアタッチしてる。だが種類は極小でなるべく余計な物はアタッチしないって方針 一個だけアタッチするなら、代表するオブジェクトに持たせたり、シングルトン使ってそいつにコンポーネント生やしたりもする。 シングルスレッドならUnirx辺りを使ってアタッチしないで生やしたりもできる。 それぞれ一長一短だから全部やってみるとええ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/342
343: 名前は開発中のものです。 [sage] 2018/08/04(土) 20:34:14.45 ID:Ter6X2ca >>340 良いか悪いか。 仕様に基づいて、一番最適な設計を行って実装するのがプログラマだから、察するに現時点の貴方のレベルからすると、342さんも言ってるように、とにかく実装経験を積むことが近道になると思う。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/343
344: 名前は開発中のものです。 [sage] 2018/08/04(土) 20:47:00.20 ID:s81iLtQ9 >>341 でもさ、公式のマニュアルに https://docs.unity3d.com/ja/current/Manual/Prefabs.html 単に、プレハブアセットをプロジェクトビューからシーンビューにドラッグするだけで、プレハブのインスタンスを作成します。 プレハブのインスタンスとして作成されたオブジェクトは、ヒエラルキービューで青色の文字として表示されます(通常のオブジェクトは黒の文字で表示されます)。 て書いてあるのよ。 プレハブはシアライズされたファイルで、そのシリアライ
ズされたファイルからインスタンスを作成するんだからデシアライズじゃないの?Unityではデシアライズとよばないの? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/344
345: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/04(土) 23:08:11.76 ID:+VI6JuUR >>336 君はスレタイ読めないのかな? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/345
346: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/04(土) 23:10:17.86 ID:+VI6JuUR >>344 呼び方とかどうでもいいのよ、動けば 議論したいなら他行くか、自分でスレ建ててそっちでやってね http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/346
347: 名前は開発中のものです。 [sage] 2018/08/05(日) 00:07:41.56 ID:iaL/bkNc 弟子realize ↑ 低能特有の神経質な悪臭が半端ないな なんなんだこのゴミ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/347
348: 弟子 ◆rZPPjYuxmQ [sage] 2018/08/05(日) 00:15:41.23 ID:9xb2C49y >>347 そのゴミが建てたスレに来て何言ってんの http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/348
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 654 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s