Unity初心者の俺が調べたことをメモするスレ (99レス)
Unity初心者の俺が調べたことをメモするスレ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
26: 名前は開発中のものです。 [] 2023/09/09(土) 23:46:32.90 ID:tG9qh3d0 ガベージコレクションなんかC#の基本なんだから気にしなくていいだろ そんなに嫌ならBurstCompilerでもJobSystemでもECSでも使えば良い http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/26
27: 名前は開発中のものです。 [sage] 2023/09/10(日) 00:04:42.69 ID:u9L0A1tk 結構規模の大きいものを作ってるから可能な限り潰しておきたい感はあるのよね 数時間のプレイに堪えられるような設計にしたい http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/27
28: 名前は開発中のものです。 [] 2023/09/10(日) 00:11:59.35 ID:nCKHuG8g >>27 ECS,BurstCompiler使えよ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/28
29: 名前は開発中のものです。 [sage] 2023/09/10(日) 09:03:38.32 ID:hFRQptHY >>23 かける労力と得られるものが釣り合ってると思えるならそれぞれの判断でいいと思うけどね 今自分の作ってるやつはインクリメンタルGCついてても数分に一回3~7msくらいのGC Collectが発生してて シューティングゲームなんでもう少しGCAlloc潰したほうがいいだろうなと思ってる http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/29
30: 名前は開発中のものです。 [sage] 2023/09/10(日) 15:42:12.07 ID:j4PqFMUR あかん、行こう http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/30
31: 名前は開発中のものです。 [sage] 2023/09/10(日) 21:59:14.98 ID:u9L0A1tk >>28 ECSは全然理解してないし有料アセットとの兼ね合いが悪い(自分で調整できない/作業量多すぎ)だから導入するつもりは現状ないかなあ アセット開発者がDiscordで今からECS対応は難しいって言っているのも見かけたし >>29 どういうコードがGCalloc発生するのか自分で見て覚えていきたいってのもあるし、しばらくは続けようかな シューティングゲームって弾幕GameObjectのinitialize/Destroyやオブジェクトプール行き来のDisable/Enableで最適化が大変そうだなあ 差し支えなければ教えてほしいんだけど重い処理を行っている時ってフレーム毎にどのくらいGCalloc発生してますか? >>30 ? 今日はNPC(アセットのコンポーネント)のUpdate30個をOnUpdateに変えるお試し軽量化をしてみた 0.5msぐらいの改善が見られた 他にも自分のゲームに使用しない無駄な機能がついていたりするから削っていこう アセットに更新があった時に面倒だが、勉強道具にしたり自分で色々と改造したりできるから完全なC#コードが提供されているものは便利(DLLで提供されているものがあるか知らんけど) アセットとC#の話で一つ複雑だなと思うのは、AssemblyDefinitionによってアセンブリが定義・分割されているとアセット側からこちらの自作コードにそのままではアクセスできない点。コード弄り始めた頃は原因が分からなくて四苦八苦した。 自作コードにAssemblyDefinitionsを設定していない場合は自動的にAssembly-Csharpに配置されるが、このAssembly-Csharpと他アセンブリのアクセスは一方通行の関係にある。すなわち、Assembly-Csharpから他アセンブリにはアクセスできるが、他アセンブリからAssembly-Csharpにアクセスすることはできない。 なので自分のコードに弄ったアセット側からアクセスしたい場合は、自分のコードをアセンブリ定義・分割して参照設定を追加するか、自分のコードをアセット側のアセンブリ内に入れる必要がある。 まあむしろアセットでアセンブリ定義・分割されてない方が色々と問題らしいので自分の経験は初心者特有の躓きって感じだな http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/31
32: 名前は開発中のものです。 [sage] 2023/09/10(日) 22:01:38.99 ID:pyk4erDp ところでヌシはタイトルには初心者って書いてるけど 所持がガベージとか気にしないよね? ナニモン? http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/32
33: 名前は開発中のものです。 [sage] 2023/09/10(日) 22:01:57.78 ID:pyk4erDp 所持ちゃう、初心者 http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/33
34: 29 [sage] 2023/09/11(月) 07:46:22.08 ID:2rYAG6dH >>31 大量にオブジェクト扱う部分は全部Burst使ってるから重い部分ではGCAllocは発生してないし、まだ開発序盤で一時的にお試しで入れてるコードやシューティングと関係ないアセットなんかでGCAllocが出てるだけなので参考になりそうな数字は持ってないよ、申し訳ない http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/34
35: 名前は開発中のものです。 [sage] 2023/09/11(月) 21:22:14.79 ID:GchgKIS7 >>34 なるほどありがとう 自分のゲームはだいぶ時間かかりそうだからその間にECSやバーストコンパイラーの仕様や情報が充実するといいなあ >>32 Unity歴5ヵ月弱の初心者だよ 今日はあまり何もしなかった 自作インベントリの検索機能を少し弄ったけど何となく前の仕様の方が使い勝手が良かった気がして結局コードを元に戻した 検索機能を処理する複数のクラスが絡み合っているので(密結合とはこういう状態?)、今後の保守や改良に備えてコードを見直した方がいいかもしれないと思った 自作スクロールの描画処理については既に一部をインターフェースや抽象クラスにしてあるので、検索機能も(今のところ予定はないけど)インベントリ以外に流用することを考えると同じように改良したい ただこの辺はコーディングや設計の思想について先に学ばないと結局グダりそうだね http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/35
36: 名前は開発中のものです。 [sage] 2023/09/11(月) 21:58:09.05 ID:dpI1L58C 歴5ヶ月でインタフェースや抽象クラスとか Unityは浅いけどC#は長い? http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/36
37: 名前は開発中のものです。 [sage] 2023/09/11(月) 22:31:07.12 ID:GchgKIS7 Unity歴とC#歴は同じ プログラミングはキッズの頃にキッズ向け言語とRPGツクールのRGSS(Ruby)を少しやった程度 ただRubyはもう全く覚えてない http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/37
38: 名前は開発中のものです。 [sage] 2023/09/12(火) 22:16:09.67 ID:Agu+xwh8 ジェネリックについての勉強を少し始めた 自作のスクロールを拡張する上で複数の型を扱うことになるかもしれないので、スクロールの抽象クラスに一部ジェネリックの抽象プロパティや抽象メソッドを実装して今後のコーディングを統一的にするのが目的 ジェネリックな関数には制約条件というものが付けられるそうなので、これでスクロールに渡すべき型に特定のインターフェースの実装を要求すればコーディングのミスも減りそう 逆に言うとこれも個人開発だとミスの防止という点以外の利点が分からん…もっと勉強が必要そうだ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/38
39: 名前は開発中のものです。 [sage] 2023/09/12(火) 22:30:53.89 ID:DqJC+Tye すごいなぁ 自分はUnity半年あたりはやっと3DでUnityちゃんが動いて喜んでたわ それで満足してた(笑) http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/39
40: 名前は開発中のものです。 [] 2023/09/13(水) 08:16:34.64 ID:zrU2QrrP 俺も歴同じくらいでほぼほぼchatGPTに聞きながらやってるけど>>1ほど理解せずに進めちゃってる キャラクターをステートマシンで動かしてるんだけど、抽象クラスとジェネリック使う機会あってほー便利だなあって思った気がするな http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/40
41: 名前は開発中のものです。 [sage] 2023/09/13(水) 22:19:12.03 ID:b/7dbaPf >>39 自分は2Dはスキップしてるからその分は早いかもしれないね 2Dの学習が必要かをUnity始める前に少し調べたけど、どちらかというと否定的な見解が多い印象で、UIの制作でどうせその辺やC#を扱う必要も出てくるだろうから最初から3Dで始めた >>40 ChatGPT便利だよなあ 厳密には自分はBingの会話AI(GPT4.0をウェブ検索用にチューニングしたやつ)を使ってるけど(無料だから) 無料版の3.5も試したけどBingと比べて誤情報や変なコードの出現率が高いから断念した ステートマシンって現在の状況をノードで繋いだステートを行き来して色々とするものだっけ?(無知) UnityのAnimator(mecanim)がステートマシンらしいからいずれ覚える必要があるし、自分の作ってるUIも段々と状況設定がゴチャゴチャになってきたからそういうのを勉強して整理しなきゃなあ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/41
42: 名前は開発中のものです。 [sage] 2023/09/13(水) 22:19:25.85 ID:b/7dbaPf 今日やった作業は主に二つ ?ディザ抜きを利用した障害物の透過 シェーダーアセットの基本機能を設定しただけ。キャラクターがワールド上の設置物の影に隠れて見えなくなってしまわないように、カメラ距離でディザリングを行うことで透けて見えるようにした。カスタムシェーダーにも対応してるアセットなので、勉強が進んだらキャラクターを隠しているか等の判定も加えてより高性能なものにしていきたい。 ?UIを実装するクラスの整理 一昨日から引き続きUIのコードを整理した。アイテム欄クラスと検索欄クラスでそれぞれ大体同じ処理を実装しているので、既に継承させていた抽象クラス(基底クラス)を拡張して派生クラスで実装していたコードを半分ぐらい移植した。アイテム欄クラスと検索欄クラスでは扱うコレクションの型が違っていたので(アイテム欄クラスはアイテムのインスタンス、検索欄クラスはintを扱っていた)、この二つのクラスにコレクションを渡すインターフェースをジェネリックを使って<T>にすることで抽象クラス(基底クラス)で処理を統一できた。これを実現するためにジェネリックを調べていたようなものなのでひとまず満足。 ただ渡されたコレクションから描画すべき情報を取得する処理はまだ統一できていないので明日以降に挑戦してみる。 ところでUI(でも何でも)作り始める前にはちゃんと設計図を作成しないとダメだね 検索システムに「ミニメニューを開いて利用するから〜」というテキト−な理由でMiniMenuUIってクラス名つけたんだけど、ふとミニメニューにアイテム並び替え機能も欲しくなって「MiniMenuUI = 検索システム」じゃなくなってしまったから、クラス名を付け直しになった 付け直し自体はVisualStudioのフォルダ全体置換機能を使ってすぐに終わったんだけど(異なるクラスでもフィールド名を統一しておいたのが功を奏した)、純粋に面倒だし変更し忘れが残っていたらどんなエラー吐くかも分からんし設計はちゃんとすべきだと思いました http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/42
43: 名前は開発中のものです。 [sage] 2023/09/13(水) 22:27:45.47 ID:HTnl4o+9 UIは何を使ってますん? UnityUIやMeshプロは将来無くなるとかで 自分はUIToolkitを勉強してます http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/43
44: 名前は開発中のものです。 [] 2023/09/14(木) 06:44:41.69 ID:A6Ctx0a0 >>41 4.0も誤情報多いんで自分でも調べながらやってます 全く知らん分野に手を付けるとき基本的なアイデア提供してくれるのはありがたいっすね unityのアニメーターみたいなビジュアルスクリプト?もあるしコードでのステートマシンもあります 移動ステートクラスみたいなのを作って、それを抽象クラスにして敵用移動ステートとプレイヤー移動ステートみたいに作ってましたね でも冷静に考えると確かに抽象クラスじゃなくてまんま内容コピペして新しいクラス作ってもよくね?って思いましたね コードの冗長性はなくて読みやすくはなるかもだけど… http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/44
45: 名前は開発中のものです。 [sage] 2023/09/14(木) 21:12:02.73 ID:BQP80pEG >>43 普通のGUIだね GUIは将来無くなる訳じゃないよレガシー行きはするかもしれないけど UItoolKitにTMPが再整備されるまでまだ時間はかかるだろうしUItoolKitは学習コストに見合った性能や作りやすさはなさそうなんでしばらくはスルーするかな >>44 対話式AIはあとコード丸投げして処理追わせたり注釈つけさせるのも便利だね あと自分がちょっと慣れてきた分野で誤情報を見抜けると感動する() ビジュアルスクリプティングは有料アセットのもの? 今後のメンテも考えると共通事項はなるべく基底クラスにまとめておいた方がよいのかなとは思ってる 抽象クラスは今のところ個人開発だと「うっかりインスタンス化」「派生クラス毎に処理が大きく異なるメンバを実装強制して、うっかり実装し忘れ防止」の2つが主な利点なんだろうなあと考えている 単に共通事項まとめるだけから普通の基底クラスでもいいしね http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/45
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 54 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s