1 名前:名前は開発中のものです。 [2018/06/06(水) 10:45:19.46 ID:3pAIyBsg.net] フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 ■注意事項 「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く 次スレは>>950 以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 関連スレ 【3Dゲームエンジン】Unity質問スレッド35 https://mevius.5ch.net/test/read.cgi/gamedev/1523771570/
300 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 15:13:38.43 ID:euFxSDg2.net] ここはクソコテ弟子が初心者相手にマウント取るために立てたスレなんで 初心者以外が質問、回答すると通報されてしまいますよ。
301 名前:名前は開発中のものです。 [2018/08/03(金) 17:18:58.52 ID:XE8vIJkM.net] 決まったobjectの当たり判定内にいるかつボタンを押したときのスクリプトが組めません、、&&を使えばいいという知識でやったところコンパイルエラーが出てしまいました。名前の一致などは確認済みですこんなタイミングですが教えてもらえると助かります。、、
302 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 17:26:14.84 ID:Tb6IvIdd.net] エラー文とその行を貼れ。 まずはそれからだ。テンプレ
303 名前:名前は開発中のものです。 [2018/08/03(金) 17:32:30.72 ID:XE8vIJkM.net] 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 です
304 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 17:36:02.42 ID:Tb6IvIdd.net] collision.gameobject.name をログ出力できるかやってみ?
305 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 17:37:26.76 ID:Tb6IvIdd.net] ちな、&&は全角じゃないよね?
306 名前:名前は開発中のものです。 [2018/08/03(金) 17:43:20.14 ID:XE8vIJkM.net] ログ出力がなにかいまいちわかってなくて、、すみません。 &&は半角にしてもビジュアルスタジオ上で無効ですと書かれてしまいます
307 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 17:52:35.95 ID:y6ZFjsSR.net] Unityの「シリアライズ」というのは、インスペクタみたいなのに表示できるようにする為などに、データをUnity内部機構が読み込める独自様式に変換するという意味だろ プレハブはあくまで型と初期値の定義であって、プレビュー時や実行時にシーンに生成されて初めてメモリ上に占有領域が確保されて情報が記憶される(メモリ上オブジェクトとしてインスタンス化される) だからUnityプロジェクト中のヒエラル木も、厳密には型と初期値の定義でしかなく、インスタンス化されたメモリ上オブジェクトではない Unityゲームオブジェクトやプレハブのインスタンス化は、Unity内部様式向けにシリアライズされた型と初期値の定義の情報に基づいて「デシリアライズ」することで行われる あと日本語の解説ページは分かりにくい さらにあと「スナップショット」は通常、システム全体の一時的状態を指すから、システムの構成要素(プレハブ)に使うのはニュアンスがずれてる
308 名前:名前は開発中のものです。 [2018/08/03(金) 17:53:09.72 ID:s8alTO1O.net] >>293 if文の最後にセミコロンあるよね。 それをまず消してみて。
309 名前:名前は開発中のものです。 [2018/08/03(金) 17:54:46.53 ID:XE8vIJkM.net] 消しました。特に変化なしです
310 名前:名前は開発中のものです。 [2018/08/03(金) 17:56:40.41 ID:s8alTO1O.net] >>294 俺もそれ思った。スナップショットだとvmを思い浮かべてしまうわ。 ストレージの技術感のが高いよな
311 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 19:05:27.40 ID:Tb6IvIdd.net] >>290 Debug.Log (collision.gameobject.name); で、何が表示されるか?
312 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 19:12:48.91 ID:Tb6IvIdd.net] >>290 if( (collision.gameobject.name =="Perfect")&&(Input.GetKeyDown(KeyCode.LeftShift))) { Destroy(gameobject); } こうかな?
313 名前:名前は開発中のものです。 [2018/08/03(金) 20:24:49.31 ID:XE8vIJkM.net] >>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); } } }
314 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 20:25:58.25 ID:BofVo0Am.net] gameObjectじゃないの?
315 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 20:28:13.30 ID:Tb6IvIdd.net] >>300 >>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね? で、これで表示された内容は?
316 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 20:33:47.70 ID:Tb6IvIdd.net] >>301 これですね。
317 名前:名前は開発中のものです。 [2018/08/03(金) 20:38:06.67 ID:XE8vIJkM.net] このプログラムに関する項目じゃないオブジェクトの詳細のようなものが追加されました
318 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 20:46:54.61 ID:BofVo0Am.net] collisionが唐突にでてきてるけど根本的に間違ってるんじゃね OnCollisionEnterもつかってないし
319 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 20:56:53.50 ID:g4hffkLt.net] >>294 プレハブが型と初期値の定義なんてどこに書いてあるよwww日本語と英語には書いてないから、あとは俺が読めない韓国語か? gameObjectとコンポーネントのSerialized dataだって書いてあんだろ。
320 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 21:11:35.02 ID:g4hffkLt.net] >>305 俺もそれ思った。
321 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 21:13:54.44 ID:y6ZFjsSR.net] ohiohiまた威勢のいい○○が沸いてきやがった すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな >Serialized data そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い
322 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 21:57:13.
] [ここ壊れてます]
323 名前:06 ID:g4hffkLt.net mailto: >>308 シリアライズされたデータだろ。プレハブには複数のゲームオブジェクト、複数のコンポーネントがシリアライズされて保存されてる訳だけど、型って何? [] [ここ壊れてます]
324 名前:名前は開発中のものです。 mailto:sage [2018/08/03(金) 22:40:26.78 ID:y6ZFjsSR.net] >ゲームオブジェクト >コンポーネント これらはとどのつまりはクラス。 クラスとは何か?
325 名前:名前は開発中のものです。 [2018/08/03(金) 23:17:18.29 ID:5oCXpdg6.net] アプデしたらいつも調子悪くなる
326 名前:名前は開発中のものです。 [2018/08/04(土) 04:54:34.40 ID:nYTIxyUA.net] 基本的にゲームプログラミングでは シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね? for文でその配列の要素回して抜き出したり。 でもUnityの2Dシューティングとかのチュートリアルを確認してみると 次々と生み出された敵を配列に入れ込む処理が見当たりませんが これ、個々のオブジェクトの把握はどうやってるんですか?
327 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 05:19:51.58 ID:uwGBYqQ5.net] >>310 なるほど、型か!ってなんねーよww シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。 ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。
328 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 06:49:36.83 ID:jfygBgbK.net] おまえら日本語で話せよ
329 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 07:35:21.25 ID:uwGBYqQ5.net] >>312 7.2は読んだか?
330 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 09:43:45.62 ID:8h4ounWr.net] >>313 わかったわかった お前の人生は大ハズレだな インスタンスについて基本的な理解が不足してるぞ ヒエラル木も結局は型定義と初期値に関するシリアライズされたデータの集まりで、プレビュー時や実行時に初めてインスタンス化されてるんだよ
331 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 10:32:45.75 ID:uwGBYqQ5.net] >>316 プレハブの話だよ、ヒエラルキーからゲームオブジェクトをドラッグしてプレハブ作成した時点でヒエラルキー上のはプレハブインスタンスになるだろ。 そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。 このプレハブソースを型だったて言い張るのは無理があると言う話だ。だからどんな意味で型と言ってるか聞いたんだ。雛形って意味なら俺も納得。
332 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 10:36:45.24 ID:uwGBYqQ5.net] >>317 あ、ヒエラルキー上のプレハブインスタンスはソースと変更の参照でOOPで言うインスタンスじゃないのはわかってるから。
333 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 10:41:25.18 ID:uwGBYqQ5.net] >>317 >そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。 ヒエラルキー上のプレハブインスタンスが、実行時やプレビュー時にデシアライズ、と付け加えとく
334 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 10:55:45.37 ID:8h4ounWr.net] >ヒエラル木 デバッグ時にはモニタできるから、「シリアライズされた初期値およびデバッグ実行時の現在値」という表現が良いのか しかしなぜ「シリアライズ」という言葉を使うんだろうか ヒエラル木を構成する連続した要素の一つに組み込むという意味なのか
335 名前:名前は開発中のものです。 [2018/08/04(土) 11:19:34.99 ID:qIP9aSz0.net] >>320 お前ら何でプレファブの中身見て見ないの? YAMLで書かれたファイルだって一発で分かるだろ、つまりシリアライズされて保存されてるファイルって事だよ。 一方ヒエラルキーに見えてるのもファイル。 再生実行した時だけ、メモリに展開されてる。 わかった?
336 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 13:22:29.52 ID:8h4ounWr.net] 1000回日本語文章読んでもバカには無理w
337 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 13:36:44.18 ID:ASd5/j6X.net] >>321 へー、ヒエラルキーに表示されているのはシーン上のオブジェクトのリストじゃなくてファイルなんだぁ。 ファイルシステムのどこにそのファイルがありますか?またシーンビューで編集しているときはメモリ上にはなくてディスク上にあるんですか? 公式のマニュアルとは違う説明で混乱しそうです。
338 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 13:52:20.56 ID:qIP9aSz0.net] >>323 右上のケバDebugにするとLocalIdentifierInfileってでてくんだろ。 隠蔽されてるが、あるんだよ。それアクセスされると色々ぶっこわれるからな。
339 名前:弟子 mailto:sage [2018/08/04(土) 13:55:14.77 ID:+VI6JuUR.net] 初心者スレでマウント取りたいのは分かるから巣に帰って ちゃんと新しいの作ったからさ 【3Dゲームエンジン】Unity質問スレッド37 mevius.5ch.net/test/read.cgi/gamedev/1533351108/
340 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 14:04:46.49 ID:qIP9aSz0.net] 初心者に分かるように言ってんじゃん。 紙パンツスレ飽きちゃったんか?あっちで吠えてろよ
341 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 14:29:50.67 ID:jfygBgbK.net] おまえらの話は誰にも通じてないし役にもたってないぞ
342 名前:弟子 mailto:sage [2018/08/04(土) 14:41:43.17 ID:+VI6JuUR.net] >>326 YAMLとは? シリアライズとは? ケバdeaugとは? 初心者なんでまったく訳わかんないですわ
343 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 14:43:13.78 ID:yHEIRFFR.net] >>324 それってシーンファイルに書いてある識別IDじゃない。んでシーンを保存するまで0だよ。保存する前のヒエラルキーはどう説明するのさ。
344 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 14:45:18.52 ID:yHEIRFFR.net] >>328 初心者スレで聞いてみれば。
345 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 14:50:04.55 ID:cpg8UDOV.net] >>328 知らなくても作れるけどな。
346 名前:名前は開発中のものです。 [2018/08/04(土) 15:05:56.25 ID:qIP9aSz0.net] >>329 Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。 シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。 未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。 保存前のヒエラルキーは見た目だよ、ドラフト扱いな。 もう少しEditorとUnityEngineの違い分かった方がいいな。
347 名前:THE・シンプル先生 mailto:sage [2018/08/04(土) 15:07:18.36 ID:KOItUBKr.net] >>312 自分で工夫する事で昔の「main()ループ」に近い物が作れる。 @:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。 A:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。 B:Aを@にアタッチ C:Aの中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy; D:Aの"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new GameObject[3]; E:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject; F:後はGameObject[0]を使う 当然他のやり方も無数にある。
348 名前:THE・ステップアップ先生 mailto:sage [2018/08/04(土) 15:19:06.70 ID:KOItUBKr.net] >>312 次の内容はおまけなので意味不明な場合は気にしなくていいよ。 ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。 今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。 旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。 とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。 じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと 中〜大規模のゲーム作成も想定して作られてるのもあると思う。 この規模になると次の事を実現しないといけない。 ・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル ・もともと非常に重い3D物理演算を実用レベルで運用する ・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり MMOやオープンワールド系のゲームを作れるポテンシャルを実現している。 FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。 実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。 余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。 今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。 アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。
349 名前:弟子 mailto:sage [2018/08/04(土) 16:23:58.28 ID:+VI6JuUR.net] >>330 それはどこですか? 誘導お願いします ここは、そういうスレなので教えてください
350 名前:名前は開発中のものです。 [2018/08/04(土) 16:28:00.38 ID:qIP9aSz0.net] >>335 ほらよ、君にうってつけだ mevius.5ch.net/test/read.cgi/gamedev/1531742192/
351 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 17:03:05.01 ID:u4pCimN6.net] >>332 >>>329 >Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。 >シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。 ヒエラルキーの表示じゃなくて、ヒエラルキーに表示されている、シーン上のオブジェクトの話をしてたつもりなんですけど。 >未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。 未保存のときもlocal identfierfile 0のままシーンビューやヒエラルキービューで編集出来ますけど、そのオブジェクトはメモリ上じゃなくてどこで動いてるんですか?
352 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 17:27:38.46 ID:qIP9aSz0.net] >>337 シーン情報はシーンにある。プレファブ情報はプレファブファイルにある。 てか見たんだろ?ファイルにあるわ。 もちろん画面に表示したり、編集させるにはメモリを使ってる。だけど電源オフったら消える通りストックはされておらん。 編集はできとるが、これがそのまま再生実行時に使われると思ってるところがあんたが嵌ってるところだ。 新規作成したらEditor用のメモリに展開はされる。 だけど電源オフったら消える通りストックはされておらん。 未保存データは再生実行時には使われておらん。 再生実行時に保存データを使ってEditor用のメモリに一旦展開する。これがデシリアライズな。 分かった?
353 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 18:23:45.38 ID:bPWDdaDo.net] >>338 誰か再生実行時の話してましたっけ?プレハブを作る場面の話だったと思いますけど。 ヒエラル木とか言ってる人に合わせて、ヒエラルキー上にリストされているシーン上のオブジェクトの事を指して、またはオブジェクトの階層構造自体の事をヒエラルキーって言ってたのが悪かったかな。 ヒエラルキーのリストは確かにファイル。 んで、編集中にプレハブを作りました。そのプレハブをシーン上に配置しました。シーン上に配置した時点でオブジェクト化されたんじゃないかと思うのですが、このときはプレハブソースからのデシリアライズは起きないのですか?
354 名前:名前は開発中のものです。 [2018/08/04(土) 18:30:26.82 ID:sBxajZWZ.net] playerキャラとかNPCキャラとか複数のオブジェクトで使い回すような自作関数ってそれぞれにアタッチしてるスクリプトに書く?それとも1つ関数をまとめたオブジェクトを作ってそこに書いておいてその都度それぞれが参照する感じのほうがいいですか? 例えばオブジェクトの現在の座標とか着地判定を取得する関数とか
355 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 19:26:52.87 ID:qIP9aSz0.net] >>339 インスタンス化とデシリアライズの話が出たから、そのタイミングである再生実行の話をしただけで、いきなり誰かしたかと言うのはおかしい話。 プレハブから配置したのは、あくまでEditor上でシーン情報を作っただけで、デシリアライズは再生の時に起きるっての分かる為なんだが まあ、ちょっとデシリアライズを誤解してるってか、話がどんどん逸れそうだからな。行間読むわ 多分言いたいのは、プレハブをシーンに置いた時に、プレハブ情報からシーン情報が構築されないのか?って言いたいんだろう。 一旦Editorのメモリ上では構築される。 そんで、再生や保存で、その時に当然Dirtyな置かれたオブジェクトがファイルに保存される。 再生の初期にシーンファイルを読み込んで、デシリアライズしてメモリ展開する。 オブジェクト化は再生の初期やInstantiateの時に起こる。これをインスタンス化と呼ぶ。 じゃあ、エディタで見えてるのは何なの?って言うと、編集のためにファイルをエディタ用のメモリに展開してるだけ。 最初にプレハブを置く=テンプレートからのエディタ用メモリへのコピー 保存=シーン情報の構築 ヒエラルキー=再生時のメモリ構築用データ と思えば良い。 まだダメかな?いい加減疲れてきたぞ。をい
356 名前:名前は開発中のものです。 [2018/08/04(土) 19:33:40.98 ID:qIP9aSz0.net] >>340 人それぞれかな。 俺の場合は、それぞれにアタッチしてる。だが種類は極小でなるべく余計な物はアタッチしないって方針 一個だけアタッチするなら、代表するオブジェクトに持たせたり、シングルトン使ってそいつにコンポーネント生やしたりもする。 シングルスレッドならUnirx辺りを使ってアタッチしないで生やしたりもできる。 それぞれ一長一短だから全部やってみるとええ。
357 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 20:34:14.45 ID:Ter6X2ca.net] >>340 良いか悪いか。 仕様に基づいて、一番最適な設計を行って実装するのがプログラマだから、察するに現時点の貴方のレベルからすると、342さんも言ってるように、とにかく実装経験を積むことが近道になると思う。
358 名前:名前は開発中のものです。 mailto:sage [2018/08/04(土) 20:47:00.20 ID:s81iLtQ9.net] >>341 でもさ、公式のマニュアルに https://docs.unity3d.com/ja/current/Manual/Prefabs.html 単に、プレハブアセットをプロジェクトビューからシーンビューにドラッグするだけで、プレハブのインスタンスを作成します。 プレハブのインスタンスとして作成されたオブジェクトは、ヒエラルキービューで青色の文字として表示されます(通常のオブジェクトは黒の文字で表示されます)。 て書いてあるのよ。 プレハブはシアライズされたファイルで、そのシリアライズされたファイルからインスタンスを作成するんだからデシアライズじゃないの?Unityではデシアライズとよばないの?
359 名前:弟子 mailto:sage [2018/08/04(土) 23:08:11.76 ID:+VI6JuUR.net] >>336 君はスレタイ読めないのかな?
360 名前:弟子 mailto:sage [2018/08/04(土) 23:10:17.86 ID:+VI6JuUR.net] >>344 呼び方とかどうでもいいのよ、動けば 議論したいなら他行くか、自分でスレ建ててそっちでやってね
361 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 00:07:41.56 ID:iaL/bkNc.net] 弟子realize ↑ 低能特有の神経質な悪臭が半端ないな なんなんだこのゴミ
362 名前:弟子 mailto:sage [2018/08/05(日) 00:15:41.23 ID:9xb2C49y.net] >>347 そのゴミが建てたスレに来て何言ってんの
363 名前:312 [2018/08/05(日) 01:31:28.80 ID:CyFJgm7j.net] >>334 とても勉強になる回答内容に感激しました。 私はその昔ながらのmain()ループのやり方で生きて来たクチなので Unityのマニュアルやチュートリアルに目を通し(熟読はしていませんが、 非常に困惑しているところだったんです。 ステップアップ先生の話を聞いた限り、仮にUnityでFCマリオを制作するとしても、 昔ながらのmain()ループのやり方をUnityで実行するより、 本来はUnityモデルを覚えて作った方が"ラク"だよ、ということですよね? 例えば当たり判定〜のくだりは確かにそっちの方が確実にラクなのが理解できますし。 それとも「いや、FCマリオくらいのゲームしか作る気ないなら、 この先Unityを覚えて制作せずとも、>>333 のUnityの中で擬似main()ループで作る方が断然ラクだよ」とかですか? というのもmain()ループのやり方が染み付いてしまっている私自体、 ゲームの処理には中心となるがループを置いて、 そこからすべての流れを構想してしまうオツムなんです。 Unityモデルは全オブジェクトが個々で処理され、バラバラに存在している感じ?というか 各オブジェクトや処理に非常にふあふあしていると感じました。 もちろん自分のUnity理解度がまだ足りないせいなのは重々承知してますが アセットやツールで解決するそれぞれの処理がブラックボックスすぎて、 初心者としてはそれらの応用が難しい。 アニメーション描画も、正直配列に各画像を入れ込んでフレームで回す方がラクなのに、 AnimationEventを使ってメモリを動かしてイベントの制作をしなければならない?のも余計ややこしく感じます。 結局、ソースだけで解決できないエンジンなので例えFCマリオであっても Unityを覚えないと作れないことにちょっと面食らっています。 それらもステップアップ先生のおっしゃる通り 3Dや中〜大規模のゲーム作成も想定されたUnityだからこその仕様なのだと理解しましたが どうなんでしょうか、私が2Dオンリーのゲーム制作目的であっても Unityモデルで制作方法を覚えた方があとあと必ずラクになりますか? 変な相談ですみません。
364 名前:まあ、人それぞれやな先生 [2018/08/05(日) 02:07:48.11 ID:bE8Y0pws.net] まあ、人それぞれやな
365 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 03:32:42.76 ID:IZ2haYgx.net] 自分のやり方でやってみれば unityでも十分できると思うよ 一元管理のほうがコード書きやすいし チュートリアルみたいなコードは手練れてないと無理じゃね
366 名前:THE・ステップアップ先生 mailto:sage [2018/08/05(日) 04:35:33.53 ID:PSh59YKG.net] >>349 mainループ式は、シングルスレッドとかシングルタスク的な動きを連想させるけど Unity式は、マルチスレッドとかマルチタスクとか非同期的みたいな動きだから慣れていないと取っつきにくいだろうね。 どちらかというと、Webのサーバークライアントプログラムの扱いに似てるかもね。 これは慣れだよ。 最初は四苦八苦かもしれないけど 旧式でもゲームを作れる技量があるのなら、触っている内に必ず非同期的な作りにも慣れる。 慣れるとメリットの多さに気づける。 Unity式のやり方を覚えた方が絶対に得だよ。 作れる物の幅も広がるしステップアップに繋がる。 そしてソースが非常に簡略化する時が多い。 例えば動きを実現するのにmainループ型では30行必要だった処理が1行で済むなんてこともあるよ。 最初から全てをUnity式のやり方にする必要はなくて 慣れてるmainループ式で作り、Unity式にしたほうが便利そうな部分だけそっちにする感じでいいんじゃないかな? 実際のゲーム作りも、ほとんどが「main()ループ式 + Unity式のハイブリット型」になると思う。 main()ループ式だけとか、Unity式だけという作りにはならないと思うよ。 他の人はどうなのかは知らないけど自分の場合は必ずゲーム全体を管理するmainループ的なスクリプトが存在するよ。 mainループはゲーム全体の状態をコントロール(ゲーム中なのか?ゲームオーバーなのか?などの状態)したり、 ラジコンを動かすプロポ代わりとなり、各GameObjectに実装した関数へ「待機」とか「アクションAの動きを実行せよ」とか指示をだして操作してるようなイメージ。 各GameObjectには渡された引数で色々な動作をするように記述したC#スクリプトをアタッチさせておき、指示を受けて動くロボット的なイメージ。 人によっては"GameMain"に相当する部分を"GameMgr(ゲームマネージャー)"みたいな名称にしてるかもね。
367 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 07:32:27.22 ID:7w+AZmvn.net] >>346 俺には初心者がそれなりにマニュアル読みつつ、独自解釈のエラそうな知ったかを追い出そうとしてるように見えるけど?
368 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 09:16:54.78 ID:1CW9jcvb.net] さすがお盆休みだなぁ。
369 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 09:22:07.75 ID:1CW9jcvb.net] >>348 初心者スレなんていう公共的なスレタイ付けといて言うセリフじゃないぞ。個人的なスレにしたいならもっとスレタイ考えろ。 初心者スレはお前が立てなくてももっと普通の奴が立てるからでしゃばんな。
370 名前:弟子 mailto:sage [2018/08/05(日) 11:17:58.00 ID:9xb2C49y.net] >>355 夏やなぁ 通常質問スレが36間でいっても初心者スレ建たなかったんだよなぁ
371 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 11:56:29.79 ID:s2ZX6Afg.net] ネトゲじゃないんだから雑談や初心者質問スレなんか需要無いんだよ。 次は復帰者スレでも建てるの?
372 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 15:59:20.45 ID:Zg/i6Juh.net] ヘックスマップ作りたいんだけど こういうマップチップてプレハブ並べて作るの?
373 名前:312 [2018/08/05(日) 16:09:57.60 ID:CyFJgm7j.net] >>352 昔ながらのゲーム制作方法を交えてアドバイスして頂けること 非常にわかりやすく助かります。ありがたいです。 そのため、どうしてもこの機会にアドバイスを受けたいのですが シンプルに説明しますと、私のやってきたことは ゲームマネージャーを作り、そこですべてを把握させ、 各オブジェクトは属性を振り、配列に入れ、属性同士でコリジョン判定。 真になった場合に相手を見てそれぞれの処理をする (厳密には、プレイヤーなどは専用にコリジョン判定を回したり)。 各マップチップとの判定も同じで、ブロックごとに属性を振り配列に入れ込んで判定します。 シーン遷移についてもシーンマネージャーを作り、マネージャーより命令がくれば指定のシーンに飛ぶ、それだけです。 サウンドもシーン遷移の要領でサウンドマネージャーを作り、命令がくれば切り替える感じです(SEは各オブジェクト内で鳴らします)。 もちろんこれらはご存知かと思いますが、ソースは多かれどこんなシンプルなものでしたので 今はUnityの方が面倒に感じて、参っております。 理解度が低いのはもちろん、ご指摘を受け、全部Unityのやり方でやろうとしていたせいだと思いますし、 確認してみたチュートリアルが昔ながらの作成方法では無い説明ばかりなのも弊害のひとつですし、 あとネットで探す場合3Dの方の情報とこんがらがっているのも弊害といえます。 私の様な時代錯誤なゲーム制作者が、初Unityで試しにFCマリオみたいな 2Dアクションゲーム(もちろん簡単なレベルに落とします)を制作してみるとして、 どこの処理を「Unity式のハイブリット型」を選ぶのがベターなんでしょうか。 古きも新しきも理解し、両方の比較ができるステップアップ先生 どうか教えて頂けませんでしょうか。
374 名前:名前は開発中のものです。 [2018/08/05(日) 19:46:20.43 ID:HJil90QJ.net] オープンワールド的な大きなterrainにするために(見えるように)キャラとかオブジェクトのScaleを0.1にするとかお前ら的にはアリ?ナシ? terrain分割系のアセット使うのは無しの方向で terrain自体のサイズは実質2000x2000くらいが限界なんだよなぁ
375 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 22:20:17.60 ID:1CW9jcvb.net] 何ここ、壮大な自演スレ?
376 名前:弟子 mailto:sage [2018/08/05(日) 22:41:53.80 ID:9xb2C49y.net] >>361 そだよ だから、でしゃばんな
377 名前:弟子 mailto:sage [2018/08/05(日) 23:12:55.61 ID:9xb2C49y.net] >>358 六角形のスプライト用意してタイルマップでいけるんじゃないかな
378 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 23:27:14.09 ID:vRj4lIfD.net] >>358 この質問お願いします
379 名前:名前は開発中のものです。 mailto:sage [2018/08/05(日) 23:28:36.82 ID:UInf7wuX.net] >>358 アセットがあればヘックスマップも作れると思いますよ
380 名前:名前は開発中のものです。 mailto:sage [2018/08/06(月) 01:10:06.69 ID:shQcteCQ.net] >>363 >>365 ありがとう 調べてみます
381 名前:弟子 mailto:sage [2018/08/06(月) 01:30:05.16 ID:b1K9g2Lf.net] >>366 最新のUnityになってからかどうかわかりませんが 自分のUnity2018.2.2f1の環境だと、2D ObjectにHexagonal TileMap というのがあって こんな感じ https://i.gyazo.com/b0fc26516bf806e40e323a15c1314ba0.png https://i.gyazo.com/72ac988887f2427e0d21ed7f5348fd3b.png ちょっと配置しただけなので隙間とかあるけど、調整すればいけるんじゃないかな
382 名前:THE・ステップアップ先生 mailto:sage [2018/08/06(月) 05:22:26.33 ID:rSQN2TxT.net] >>359 説明を見てる限りだと結構Unity式で出来てるように感じるよ? "属性"の部分を"レイヤー機能"に置き換えれそうなくらいじゃないかな。 既にレイヤー機能を使っているようなら気にしないでくださいな。 自分もUnity式はまだまだ発展途上であり完璧に理解してるわけではありませんよ。 またそれが面白いのです。 FCマリオを作るとしたら自分は以下をUnity式でやると思います ・当たり判定全般はUnityのコライダーとレイヤー機能に任せる(プレイヤー⇔マップ、プレイヤー⇔アイテム、プレイヤー⇔敵、敵⇔敵、敵⇔マップ) ・Sceneファイル1つにつき1ステージとファイルを分けて、ステージ遷移はSceneファイルの変更で行いたい ・Unityエディッタ上で直接マップ構成や敵の配置をやってしまい、別途BGエディッター見たいなものを使用しない ・つまりmainループ式だと行う必要があった背景などの画面スクロール処理は一切不要。カメラ移動に任せる。 これ以外はmainループ式でやるかな? 当たり判定部分は物理エンジンを使うか否かで多少変わってくるかもです。 実際に作ってみるとこのように行かない場面も多々出てくるかもしれませんが。 うまくまとめればUnityエディッタ=ちょっと複雑なマリオメーカー的な気分で作れちゃうかもしれませんね。
383 名前:名前は開発中のものです。 mailto:sage [2018/08/06(月) 07:24:48.60 ID:kCqrej/c.net] 画像付きで解説優しい! 2018.2にアップデートしたらヘックスタイルマップが追加されました 物凄くタイミングが良かった ありがとうございます!
384 名前:名前は開発中のものです。 mailto:sage [2018/08/06(月) 20:49:47.90 ID:elMC6huJ.net] >>359 横からだが、俺自身も昔ながらのゲーム開発からUnity開発へ移行した口だけど、結局のところ昔ながらのことをしないとパフォーマンス稼げないことが多々出てくるから、どっちのやり方も知っていいとこ取りをするのがベストだと思っている あとチュートリアルはお作法というより機能や出来ることの説明がメインだから、設計という意味ではあまり参考にならないかと
385 名前:名前は開発中のものです。 [2018/08/06(月) 23:48:58.31 ID:pjnXk9Sd.net] >>368 ありがとうございます! モチベーションが上がって来ました。 それを参考に私も頑張ってみます。 >>370 >機能や出来ることの説明がメインだから そうなんですよ、Unityモデルでの昔ながらの作成方法な 設計の参考になるものが皆無なんで、困ってます。
386 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 05:33:02.72 ID:qUQ4iHYs.net] シーンに空のオブジェクト置いてfixedupdateを mainループとみなしてそこからすべて操作するだけ
387 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 07:23:29.46 ID:7twjrWhc.net] unityでそのままの方法でできるんだから悩む必要ないぞ スクリプトをプレイヤーにつけるか敵につけるか空のオブジェクトにつけるかの違いだから チュートリアルみたいに分散させるとどこに書いたかわからなくなって混乱の元になるし 一箇所に集めて配列管理でいいんじゃね
388 名前:名前は開発中のものです。 [2018/08/07(火) 11:30:26.00 ID:fUL+ini3.net] エディタ拡張やってる人いますか? inspectorに何かを表示したりそこにオブジェクトを生成するような簡単な処理はできるようになったんだけど、そこから先のやり方が全くわからない 例えば、既存のterrainの上部のボタンみたいなものを作って独自の機能を自作したりシーン上でクリック等の操作をできるようにしたりする方法教えてください
389 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 15:03:44.07 ID:XJ39evIU.net] >>374 anchan828.github.io/editor-manual/web/index.html
390 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 15:17:47.36 ID:XJ39evIU.net] >>374 スマホだとわかりにくいけど、目次からweb版(無料)が見られるよ。探せなければpcで。それだけできてるなら6.10、17.2あたり見ればヒントになると思うよ。
391 名前:名前は開発中のものです。 [2018/08/07(火) 17:12:34.80 ID:fUL+ini3.net] >>37
392 名前:6 ありがとう ボタン設置やハンドルの表示は分かるんだけど、例えばシーン上のどこかをクリックしたらその座標にオブジェクトを生成するとして、それだけなら出来るんだけど他のオブジェクトをクリックしたときに、そのオブジェクトを選択したことになってしまうんです terrainで編集中だとシーン上で他のオブジェクトをクリックしたとしても、そのオブジェクトが選択されたりしないよね? まずは、シーン上でオブジェクトをクリックしても選択しないようにしたい 単純に「シーン上でオブジェクトを選択不可にする方法」ってのはぐぐったら出てきたんだけど、スクリプト込の記事がないんだよね あとは、例えばterrainならterrainDataいじってterrainの新しい機能を作りたいと思ってるんですけどね [] [ここ壊れてます]
393 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 19:10:53.89 ID:qu27Ep4Q.net] https://i.imgur.com/amXVxen.jpg https://i.imgur.com/twb7p6A.jpg https://i.imgur.com/sPHv2uG.jpg https://i.imgur.com/PcvppLs.jpg ど素人質問&画像直撮りですみません マウスクリックでスプライトのアニメーションを変えるスクリプトらしいんですがイマイチよく分かりません 一番最初、「Animator」で記述すると「」がc#では使えないと出たり その横のanimeDataが「フィールド'PlayerMove.animeData'は割り当てられません」と出ます 初歩的なことで申し訳ないのですが教えていただきたいです
394 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 20:07:03.30 ID:iOrv/KJ+.net] >>378 解説本はその解説本が対応しているバージョンのUnityで行いましょう
395 名前:弟子 mailto:sage [2018/08/07(火) 20:21:33.60 ID:3KKwqbLg.net] >>378 一番最初というと [SerializeField]「Animator」 animeData; という部分ですね 恐らくで申し訳ないがこれは animeDataというAnimator型の変数を定義していると思うので [SerializeField] Animator animeData; でいいかと思います その次のfloat定義も float minPoint = -2; てなってますし。
396 名前:名前は開発中のものです。 [2018/08/07(火) 20:32:48.91 ID:4Dd8RRWT.net] >>372 すみません、空オブジェクトのUpdateでは無く、 FixedUpdateである方が良い理由を教えてください。
397 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:09:14.11 ID:qu27Ep4Q.net] >>379 >>380 回答ありがとうございます 参考にしつつ手順の漏れがないか最初からやり直してみます
398 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:19:26.85 ID:7twjrWhc.net] [SerializeField]ってことはインスペクタでanimeDataを指定しないといけない たぶんぴーたんをドラッグドロップするんだろう
399 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:33:22.06 ID:iXlByqKN.net] >>381 フレームレート60に設定するとfixedupdateは秒間60回呼ばれる updateは何回呼ばれるか決まってない 昔のゲームプログラムはフレームレート固定だったので 昔風に書くならfixedupdateがおすすめ
400 名前:名前は開発中のものです。 mailto:sage [2018/08/07(火) 21:55:56.43 ID:iXlByqKN.net] >>381 https://youtu.be/Ju4ILgpuVHE?t=836 この動画を見るとfixedupdateがよくわかる