質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

8311閲覧

Unityで開発するゲームのフラグ管理について

KaiMiyamoto

総合スコア17

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

4クリップ

投稿2014/08/13 13:57

はじめまして。最近Unityにて2Dゲームの開発をはじめました。
さっそくの質問で恐縮なのですが、
タップしたモンスターを消して(捕まえて)、得点を稼ぎ、
さらに捕まえたモンスターを図鑑にコレクションするゲームをつくろうと考えております。
図鑑は20匹ほどのモンスターがみられるようになっていて、
捕まえるまではブラックアウトしており何も見えず、
初回にモンスターを捕まえるとイラストと説明文がみられるように開放されるという使用を検討しております。
モンスターを初回に捕まえるということをトリガーに図鑑を開放していくにはどのような実装方法があるか検討もつかず思い悩んでおります。

フラグ管理をし、true/false や 0/1 を判定して表示非表示を管理することになるかと思うのですが、こちらの実装方法が思いつかない状況です。

申し訳ありませんが、アドバイスいただけますと大変嬉しく思います。
宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

一番簡単なフラグ管理の方法としては PlayerPrefs を使ったものがあります。

フラグを立てるときは、

lang

1PlayerPrefs.SetInt("MONSTER_" + モンスターのID, 1);

で、
フラグが立っているかどうかの判定は、

lang

1bool flag = PlayerPrefs.GetInt("MONSTER_" + モンスターのID, 0) == 1 ? true : false;

のような感じです。("モンスターのID"の部分には実際の数字などを入れます)

図鑑の表示非表示の簡単な実装案としては、例えばモンスターのIDが10だとして、
MonsterShadow10 という名前でモンスターのシルエット画像を配置し、
同じ位置に Monster10 という名前でモンスターの実画像を配置します。
このとき、重なり順やz座標を調整して、MonsterShadow10 が Monster10 の手前に表示されるようにします。

そして、図鑑のシーンのStart時に先の方法でフラグを確認し、
捕獲済みならMonsterShadow10をSetActive(false)で非表示にすれば実装完了です。

もうちょっと高度な実装として、Resourcesフォルダにシルエット画像と実画像を入れておいて、実行時にフラグを判定して切り替えるというもので、画像の表示方法によって実装方法が異なります。

・Textureを切り替える場合
http://dennou-note.blogspot.jp/2014/01/unity_20.html
・Spriteの場合
http://qiita.com/2dgames_jp/items/ed79779893a69cfc17aa

投稿2014/08/26 02:29

nirasan

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問