!AmateurLab Mar/08/2025 18:44

【Unity個人ゲーム制作】ScriptableObjectを見やすくしてみた

誘惑に負けずに...

先週、モンハンワイルズが発売されました。
アイスボーン800時間、サンブレイク(忘れた)とかなりのモンハン狂の私には、ゲーム制作そっちのけでプレイに浸ることになるのは十分に予想できました。
少しでも効果があればと思い、デスクトップ背景をこんなものに。

マジでバカみたいですねww


課題だった勉強パート

どんな内容にするか迷っていましたが、結局まだ決まっていないです。
でも、もともと勉強パートに関してはスキップ可能なコンテンツにする予定だったので、
とりあえずは実装しないでほかの実装を優先するようにしました。
勉強パートはストーリーやあらゆるコンテンツにつながらないものにする想定なので、そのまま消滅したまま発売することも考えています。(何かしらミニゲームみたいなものは欲しいですが)

今取り組んでいる機能


アイテムを調べるときに、画面中央でぐりぐり回せるようにしているんですが、ここに特定の回転のときだけ、さらに調べられるようにする機能を実装しています。
「なんの変哲もないオブジェクトだけど、裏面を見るとスイッチが…!」
→裏面を見て初めてスイッチを押せるようになる
こういった光景はゲームではよくありますよね。

今回の例で言えば、文字の書かれたメモを現状裏表関係なく調べることができますが、これを表面になっているときだけ(プレイヤーが読める状態)調べられるようにしたいという感じです。
これには、オブジェクトごとに特定の回転のときに調べられるという値をセットする必要があるので、そのあたりをScriptableObjectでオブジェクトにデータを持たせたいと思いました。

インスペクターを整えたい


実際にScriptableObjectでオブジェクトにデータをセットさせようとしたところ、初期状態ではこんな感じのGUIになっていました。
値はセット済みなんですが、めっちゃわかりにくいです。
いや設定したのは自分なので、もちろんわかるんですが、ちょっと時間が空いたら「ここって何入れるんだっけ…?」ってなりそうで、どうにかしたいです。
ということで調べてみると、インスペクターGUIを自分好みにできるらしいので、さっそく試してみました。

カスタマイズ方について、勉強したものを以下のページにまとめました。
https://slagamer.com/unity/4714/

こんな感じにできました。

Enum(itemType)の値によって入力の必要な項目だけが表示されるように変更できました。

アイテムの回転によって調べられるを実装

やりたいことをそのまま実装できました。
調べると同時にオブジェクトが正面に向くような処理も追加してみました。

ここにさらに入手できるオブジェクトなのか、そのまま元の場所に戻すしかないアイテムなのかという識別も、ScriptableObjectの中で管理できるようにして処理を追加してみようと思いました。

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

Search by Article Tags

Monthly Archive

Search by Exclusive Perks

Search Articles