Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。0今回はキャラクターの持ち物の管理方法を考えます。ゲームではアイテムを取得したり使ったりといった事を行う事がしばしばあります。そんな時の為にアイテムをスクリプトで管理する機能を作成していきます。true;等としてアイテムを持っているかどうか判断する事も出来ますが、アイテム数が増えてくると何番が何のアイテムだったか、わからなくなってきます。持ち物管理をする為に列挙型を使う先ほどの配列での管理ではアイテムの取得に配列番号を指定する必要がありますが、どのアイテムがどの番号か間違えなければいいですが、アイテム数が増えれば増えるほど間違いが発生します。そんな時に列挙型を使うと番号ではなく列挙型を指定すればいいのでどのアイテムか判別するのにわかりやすくなります。{Knife,Gun,FlashLight};と宣言します。上から順番に0、1、2のintの値と対応出来ます。bool[6];のようなフィールドを宣言し、インスペクタにアイテムフラグを表示出来るようにします。すれば0番目と指定しなくて済むので視覚的に何を取得したのかわかりやすくなります。(MyItemStatus.Item.Gun)と記述すれば、ナイフを持っているかどうかの情報を得る事が出来ます。Dictionaryを使ってアイテムの数を管理をする列挙型とboolの配列型でアイテムを持っているかどうかを判断する事が出来ますが、列挙型とDictionaryを組み合わせるとアイテムの数を管理する事も出来ます。Dictionaryに関してはC#のDictionaryを使ってみるC#のDictionaryをUnity付属のMonoDevelopで使ってみます。19:39を参照してください。[key];}}DictionaryのキーとしてItemの列挙型を指定し、値はint型でアイテムの数を設定出来るようにします。↑の例ではStartメソッドで列挙型をキーに指定し、値を設定しています。Dictionaryの場合はSerializeFieldやアクセス修飾子をpublicにしてもインスペクタに表示出来ません。Dictionaryの値をインスペクタに表示するアセットを利用するDictionaryの値を表示したい時はUnityのアセットストアに表示する為のアセットを公開している方がいるのでそちらを使います。アセットストアの検索でSerializableDictionaryで検索すると出てきます。使用する場合はまずSerializableDictionaryクラスを継承した自前のクラスを用意します。{}↑のようにItem列挙型をキー、int型を値とするSerializableDictionaryクラスを継承しItemDictionaryクラスを定義しています。次にアイテムを管理するスクリプトを作成します。[key];}}ItemDictionary型のシリアライズ可能なフィールドを宣言します。itemDictionaryのプロパティのアクセサーを作成します。Startメソッドではプロパティのアクセサーを介して値をセットしています。これでインスペクタにキーと値が表示されるようになります。キーと値を1セットで表示するにはエディターの拡張機能で行うしかなさそうですね・・・・。これでキャラクターの持ち物の管理が楽になるはずです。小さな事ですが、視覚的にわかりやすいというのは非常に重要かもしれません。ナイフを取ったはずが懐中電灯だったという単純なバグの発生を防ぐ事が出来ます。19:01を参照してみてください。アイテム管理に関してはScriptableObjectを使うとより簡単にアイテムの管理が出来るかもしれません。UnityでScriptableObjectを使ってアイテムデータベースを作成するUnityでScriptableObjectを使ってアイテムデータベースを作成し、そこからアイテム情報を引き出せるようにします。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。21:43の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なTPSゲームの作成までが出来ます。Д`)シクシク...お知らせ2020/02/15個人的にUnity2019.3.1f6をインストールしました。2020/01/31個人的にUnity2020.1.0a21(アルファ版)をインストールしました。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。