[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild2 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
938: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:12:40.84 ID:c/TDM3Pm >>935 MonoBehaviour を継承して、Update() とか FixedUpdate() とか様々なフックハンドラを実装してく作法だよ。 しいて言えば、GoFのObserver パターンに近いんじゃない。Unity 内部の実装は違うらしけど。 GameObject を継承するんじゃなくて、GameObject に上記の MonoBehaviour 継承クラスを紐づけて動作をさせる。 この仕様だと、GameObject が "複数"の MonoBehaviour 継承クラスの動作を行うことが出来る。 C# は多重継承出来ないでしょ、Unity よく考えられてるシステムだよね。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/938
939: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:25:51.83 ID:c/TDM3Pm 自分も最初 Unity のスクリプトに違和感というか、なんだろうこれは? と思った。 Unity 以外の他言語経験者というか、自分も職業プログラマの端くれなんで、 Player クラスとか、Enemy クラスを定義するんだよな。とか勝手に思って最初そのように書こうとしてた。 でも、Unity には GameObject という規定クラスがあり、それらに対する作用を MonoBehaviour 継承クラスに 記述して GameObject にアタッチ(紐づけ)するという仕組みを理解してからは、腑に落ちたというか納得出来た。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/939
940: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:42:58.57 ID:c/TDM3Pm 書いてて思ったけど、GameObject に拡張メソッド書けば良くね? と思って調べたら、やっぱりそうしてる人いた。 処理コストとか気になるけど、静的 Utuil クラスとか書くより、 拡張メソッド書いたらスマートに記述出来る箇所が山ほどある。 >>935 サンキュー めちゃめちゃ良い気づきを頂いたわ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/940
941: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:04:58.83 ID:c/TDM3Pm なるほど。GameObject に MonoBehaviour 継承クラス"型" の変数を自由に設定出来ると。 その "型" を "Component" と言いますと。そして、GameObject.GetComponent<型> で自由に変数を取得出来ますと。 最初からそう教えてくれればいいのに。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/941
942: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:07:01.56 ID:c/TDM3Pm Unity 良いね。ほんと好きになったわ。 元々 C# が超強力な言語なんで、とにかくプログラミングが楽しい。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/942
943: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:18:19.80 ID:HHbGzUHS ここはお前の日記帳ちゃうで http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/943
944: 名前は開発中のものです。 [sage] 2020/01/08(水) 23:36:42.85 ID:Le5pG30A >>942 まあ、みんな一度はそう思うんだけど、ゲームを作ってる以上、次はC#はもちろんUnityならではボトルネックの最適化でつまずくんだよなー http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/944
945: 名前は開発中のものです。 [sage] 2020/01/09(木) 01:04:08.75 ID:9Vcb+knu そこでJobSystem,Burst,ECSですよ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/945
946: 名前は開発中のものです。 [sage] 2020/01/09(木) 02:30:18.61 ID:mwK+f391 DOTSはまだ早い http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/946
947: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:09:19.78 ID:kIaaP1cE JOBSYSREMとかビジネス啓蒙系のサイトっぽい名前 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/947
948: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:23:49.72 ID:65C13n6s boolの配列で中身の全てがtrueなら○○するという処理はどうやって書けばスマートですか? 今は配列の要素数が3しかないのでifを使った分岐で力技で動かせて居ますが数が増えたときの事を想像すると頭が痛いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/948
949: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:47:15.13 ID:9CjsCJlx if文を3つ書いてるということならforeach使おう http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/949
950: 名前は開発中のものです。 [sage] 2020/01/09(木) 11:16:55.09 ID:bvBlalIf 配列数が固定ならFlags付けたenumでビットフラグ使う 動的に増減するなら設計がおかしいんだがLINQのAllを使えば簡単に書ける http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/950
951: 名前は開発中のものです。 [sage] 2020/01/09(木) 11:32:20.48 ID:65C13n6s for(int count = 0; count <= 2; count++) { if(配列[count]== true) { 変数++; } } if(変数 == 3) { 処理 } にしてみたのですが微妙ですか? foreachとlinqはまだ使い方がわからないのですが調べてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/951
952: 名前は開発中のものです。 [] 2020/01/09(木) 12:00:30.94 ID:AbIkBBD9 1つでもfalseならリターンすればいい そうすりゃ無駄な変数いらんよ あとfor で回す場合、<変数.lengthが使えるから増えても問題なし http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/952
953: 名前は開発中のものです。 [sage] 2020/01/09(木) 12:12:40.81 ID:65C13n6s >>952 count <= 2 の 2の部分を変数.lengthにするという事でしょうか?思いつきませんでした! もし宜しければ 一つでもfalseなら〜の書き方を教えて頂けませんか? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/953
954: 名前は開発中のものです。 [sage] 2020/01/09(木) 12:23:32.35 ID:sMXCo4Ih とりあえず動けばいいって感じ? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/954
955: 名前は開発中のものです。 [sage] 2020/01/09(木) 12:47:54.85 ID:8Z9bXpy1 >>953 https://i.gyazo.com/6f42dd3fc1e186cf49a71820a2aea731.png http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/955
956: 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:02.96 ID:AbIkBBD9 あとList型に入れると簡単にあるかないか取れるけど、どうなんだろね https://i.gyazo.com/b64c1ec457ab732b3122b3b40da4ccd2.png http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/956
957: 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:06.70 ID:h4Av5g/u false、trueを入れるときに、変数にして+1、-1しとけばいいやん。0以下なら全部true。 不安なら、たまに時間の許す処理の時にチェックサム。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/957
958: 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:26.76 ID:65C13n6s >>955 ありがとうございます! この短いコードの中に何故forとifの間に{が必要ないのか、(!b[i])が既にboolを表している等、普通に勉強してたら気付かない事ばかりで尊敬します。。 いつかこういうスマートで格好いいコードが書ける様に頑張ります! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/958
959: 名前は開発中のものです。 [sage] 2020/01/09(木) 15:42:48.73 ID:ZRX+0Tcv そこ省略すれば偉いってもんでもないから気をつけてな コード長くなってくるとこういうとこはすっきり書いたほうが読みやすくはなるけど http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/959
960: 名前は開発中のものです。 [sage] 2020/01/09(木) 18:15:25.24 ID:IB4d3PvK containsで行けるような bool[] src = {true, true, false, true}; var list = new List<bool>(); list.AddRange(src); bool item = false; if (list.Contains(item)) { /////////////////////////////////////←これ System.Console.WriteLine("{0}が見つかりました", item); } else { System.Console.WriteLine("{0}は見つかりませんでした", item); } http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/960
961: 名前は開発中のものです。 [sage] 2020/01/09(木) 21:40:32.44 ID:L8tG5HPm >>950 ゲームでLinqは悪手 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/961
962: 名前は開発中のものです。 [sage] 2020/01/09(木) 23:26:31.33 ID:2OZqFXaj >>945, 946 サンキュー、そういうの教えてもらえるのは、本当に有意義だわ。 自分にはまだ早いので、しばらくベタで悪戦苦闘して経験値つんでからトライするわ。 現在、物理ゲームパッドで遊んでもらう想定で作ってるけど、一応スマホ画面操作に対応しようと思い、 新しい InputSystem で、Canvas の UI ボタンを使ってスマホ画面操作用のコントローラ作ったけど、 一つもコード書かずに物理ゲームパッド想定のゲームにマッピング出来た。InputSystem 凄い。 でもスマホ画面操作でBダッシュジャンプって超絶むずいね、物理コントローラーなら楽勝でBダッシュジャンプ出来るのに… http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/962
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 40 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s