23/09/13 08:16:34.64 zrU2QrrP.net
俺も歴同じくらいでほぼほぼchatGPTに聞きながらやってるけど>>1ほど理解せずに進めちゃってる
キャラクターをステートマシンで動かしてるんだけど、抽象クラスとジェネリック使う機会あってほー便利だなあって思った気がするな
41:名前は開発中のものです。
23/09/13 22:19:12.03 b/7dbaPf.net
>>39
自分は2Dはスキップしてるからその分は早いかもしれないね
2Dの学習が必要かをUnity始める前に少し調べたけど、どちらかというと否定的な見解が多い印象で、UIの制作でどうせその辺やC#を扱う必要も出てくるだろうから最初から3Dで始めた
>>40
ChatGPT便利だよなあ 厳密には自分はBingの会話AI(GPT4.0をウェブ検索用にチューニングしたやつ)を使ってるけど(無料だから)
無料版の3.5も試したけどBingと比べて誤情報や変なコードの出現率が高いから断念した
ステートマシンって現在の状況をノードで繋いだステートを行き来して色々とするものだっけ?(無知)
UnityのAnimator(mecanim)がステートマシンらしいからいずれ覚える必要があるし、自分の作ってるUIも段々と状況設定がゴチャゴチャになってきたからそういうのを勉強して整理しなきゃなあ
42:名前は開発中のものです。
23/09/13 22:19:25.85 b/7dbaPf.net
今日やった作業は主に二つ
①ディザ抜きを利用した障害物の透過
シェーダーアセットの基本機能を設定しただけ。キャラクターがワールド上の設置物の影に隠れて見えなくなってしまわないように、カメラ距離でディザリングを行うことで透けて見えるようにした。カスタムシェーダーにも対応してるアセットなので、勉強が進んだらキャラクターを隠しているか等の判定も加えてより高性能なものにしていきたい。
②UIを実装するクラスの整理
一昨日から引き続きUIのコードを整理した。アイテム欄クラスと検索欄クラスでそれぞれ大体同じ処理を実装しているので、既に継承させていた抽象クラス(基底クラス)を拡張して派生クラスで実装していたコードを半分ぐらい移植した。アイテム欄クラスと検索欄クラスでは扱うコレクションの型が違っていたので(アイテム欄クラスはアイテムのインスタンス、検索欄クラスはintを扱っていた)、この二つのクラスにコレクションを渡すインターフェースをジェネリックを使って<T>にすることで抽象クラス(基底クラス)で処理を統一できた。これを実現するためにジェネリックを調べていたようなものなのでひとまず満足。
ただ渡されたコレクションから描画すべき情報を取得する処理はまだ統一できていないので明日以降に挑戦してみる。
ところでUI(でも何でも)作り始める前にはちゃんと設計図を作成しないとダメだね
検索システムに「ミニメニューを開いて利用するから~」というテキト-な理由でMiniMenuUIってクラス名つけたんだけど、ふとミニメニューにアイテム並び替え機能も欲しくなって「MiniMenuUI = 検索システム」じゃなくなってしまったから、クラス名を付け直しになった
付け直し自体はVisualStudioのフォルダ全体置換機能を使ってすぐに終わったんだけど(異なるクラスでもフィールド名を統一しておいたのが功を奏した)、純粋に面倒だし変更し忘れが残っていたらどんなエラー吐くかも分からんし設計はちゃんとすべきだと思いました
43:名前は開発中のものです。
23/09/13 22:27:45.47 HTnl4o+9.net
UIは何を使ってますん?
UnityUIやMeshプロは将来無くなるとかで
自分はUIToolkitを勉強してます
44:名前は開発中のものです。
23/09/14 06:44:41.69 A6Ctx0a0.net
>>41
4.0も誤情報多いんで自分でも調べながらやってます
全く知らん分野に手を付けるとき基本的なアイデア提供してくれるのはありがたいっすね
unityのアニメーターみたいなビジュアルスクリプト?もあるしコードでのステートマシンもあります
移動ステートクラスみたいなのを作って、それを抽象クラスにして敵用移動ステートとプレイヤー移動ステートみたいに作ってましたね
でも冷静に考えると確かに抽象クラスじゃなくてまんま内容コピペして新しいクラス作ってもよくね?って思いましたね
コードの冗長性はなくて読みやすくはなるかもだけど…