読者です 読者をやめる 読者になる 読者になる

ひつまぶし blog

無職。全てにおいてレベル1 。なのに今はニューヨークひとりぼっち。おなかすいた・・。

【Unity】Playmaker 公式チュートリアル動画を日本語で読み解く13 - Player Preferences

Playmaker 技術勉強

Player Preferencesについての説明(0:00~7:58)
Fantasy Attack Gameを作る(7:59~19:51)
ボタンをクリック(もしくはタップ)した回数をカウントして、保存するゲーム。ハイスコアを更新したら、それも書きかわる。

 

PlayerPreferenceについての説明

プレイヤーの情報を保存したり、取り出したりする機能のこと。
例えばハイスコアを保存したり、それを更新したら書き換えるようにする。など。
ちなみにこの機能はゲームの途中で行うのではなくて、ゲームのプレイが終わったら作動するように仕掛けておくことがポイント。

Player Prefsの種類

f:id:hitsumabushiko:20160225062541j:plain

全9種類のPlayer Preference。中身は比較的簡単。

6つの項目、PlayerPrefs GetとSetのFloat,Int,Stringはそれぞれの数値をゲットしてセットする役割のもの。

その他の3つの項目は、Player Preferenceで持っているキーをセットしたり消去したり、そしてすべての情報を消去する役割のもの。

 

Set Int

f:id:hitsumabushiko:20160225063228j:plain

Keyとは変数の名前のようなもの。そこの情報が保存できる。VariablesのStringから選ぶこともできるし、ここにそのままStiringで上のように設定もできる。

ValueはVariablesのintも利用できるし、直接数値を指定することも可能。

 

Get Int

Key(String)を頼りにVariableのintを保存できる機能。

f:id:hitsumabushiko:20160225063714j:plain

例では、StringをHigh_Scoreと直接指定してるが、これもVariablesからの指定で利用することも可能。(スペルミスなどを防ぐためにはそちらの方が良い)

VariableはVariablesのintでcurrent_high_scoreと作っておき、指定。

Countを2にすると項目が2つになる。

f:id:hitsumabushiko:20160225064041j:plain

f:id:hitsumabushiko:20160225064110j:plain

例えば、Current_Levelと入れてみる。

そしてCountを10にしてみると・・

f:id:hitsumabushiko:20160225064139j:plain

こんな感じでずらずらと。
ゲーム開始前に必要な情報をこれで全て手に入れておく。そしてSetの方でセットするという流れ。

 

String、Float

f:id:hitsumabushiko:20160225064424j:plain

上で説明したものとほぼ同じ。StringとFloat用ということ。

 

Has Key

f:id:hitsumabushiko:20160225064827j:plain

KeyをここではHigh_Scoreにしているけれど、初回のプレイヤーにはTutorialと出してもいいかも。

Store Resultに入るのはBoolなので、Variablesのboolでhas_high_scoreと作っておいてみた。

あとはそれがTrueならTrueのイベントへ、FalseならFalseのイベントに行くように設定する。

 

Delete Key

f:id:hitsumabushiko:20160225065151j:plain

指定したKeyを消すもの。本当に消すので、注意をしながら使用して。

 

Delete All

f:id:hitsumabushiko:20160225065201j:plain

文字どおり、ユーザーの情報を全て消す機能。危険w
ただ開発中は、テストするときなどに何度も使うことになる機能でもある。

 

Fantasy Attack Gameを作る

どんなゲームなのかまず説明

スタート画面、二つのキャラクター(ただのボタンだけど)がある。

f:id:hitsumabushiko:20160225071504j:plain

Thagを選んでみる

f:id:hitsumabushiko:20160225071531j:plain

Attack!のボタンを押すたびに、4 monsters killed!の数字の部分が増えていく。

f:id:hitsumabushiko:20160225071554j:plain

一定の時間が過ぎると押せなくなって、記録が保存される。

f:id:hitsumabushiko:20160225071618j:plain

今度はGronkでプレイ。

f:id:hitsumabushiko:20160225071730j:plain

同じようにAttack!ボタンを押していく。

f:id:hitsumabushiko:20160225071803j:plain

初めてのプレイなので、とりあえずハイスコアとして表示されている。Thangと全く同じ。ただ、Thangとは別に保存されている。

f:id:hitsumabushiko:20160225071824j:plain

もう一度Gronkでプレイする。

f:id:hitsumabushiko:20160225071730j:plain

さっき、5だったので8まで上げてハイスコア更新を目指す。

f:id:hitsumabushiko:20160225071910j:plain

無事にハイスコア更新された。

f:id:hitsumabushiko:20160225071931j:plain

今度はさっきのハイスコア8を下回ってみる。

f:id:hitsumabushiko:20160225071958j:plain

ハイスコアは更新されなかった。

f:id:hitsumabushiko:20160225072024j:plain

Hierarchyを作る

GUI Textを4つ画面上の被らない位置に設定しておく。名付け方は下記画像参照。
Empty Objectを置き、go_PreferencesManagerと名付ける。

f:id:hitsumabushiko:20160225065457j:plain

 一つのEmpty Game Objectに3つのFSMがくっついている。

Add FSM to go_ProferencesManagerを3度選択して、それぞれのFMSの名前を下記のようにする。

FSM_game
FSM_prefs
FSM_timer

f:id:hitsumabushiko:20160225065734j:plain

 

FSM_timerを作る

f:id:hitsumabushiko:20160225065749j:plain

何もなし。ただ他のFSMからここに飛ばすので、用意して。
Eventsでstart_gameを作っておく。

 

Set Time

f:id:hitsumabushiko:20160225065754j:plain

Variablesのfloatでtime_to_waitを作っておく。

 

Timer

f:id:hitsumabushiko:20160225070134j:plain

Eventsでend_gameを作っておく。

 

End_game

f:id:hitsumabushiko:20160225070202j:plain

 

FSM_prefsを作る

Ready

f:id:hitsumabushiko:20160225070259j:plain

 Eventでupdate_scoreを作っておく。

 

Get Score

f:id:hitsumabushiko:20160225070339j:plain

Global VariablesのStringでpp_player_nameを作る。
VariablesのIntでlast_high_scoreを作る。

 

Compare Scores

f:id:hitsumabushiko:20160225070526j:plain

Global Variablesのintでpp_corrent_hitを作っておく。
Eventsでreturnとnew_high_scoreを作っておく。

 

New High Score

f:id:hitsumabushiko:20160225070645j:plain

f:id:hitsumabushiko:20160225070909j:plain

Variablesでcurrent_hits_stringと作っておく。

f:id:hitsumabushiko:20160225070930j:plain

VariablesのStringでNew_high_score_messageと作っておく。

f:id:hitsumabushiko:20160225071012j:plain

 

Wait for Result

f:id:hitsumabushiko:20160225071121j:plain

 

Clear Screens

f:id:hitsumabushiko:20160225071231j:plain

f:id:hitsumabushiko:20160225071258j:plain

ここではDeleteしているのではなくて、Valueを0にしている。

 

FSM_gameを作る

先にイベント公開。FINISHEDは作らなくて良い。
end_gameのみチェックを入れてGlobalに。

f:id:hitsumabushiko:20160225073232j:plain

上記に合わせて、reset_to_ready も用意。

 

Choose Char

f:id:hitsumabushiko:20160225072151j:plain

f:id:hitsumabushiko:20160225072328j:plain

Variablesのintでpp_current_hitsを作っておく。

f:id:hitsumabushiko:20160225072447j:plain

f:id:hitsumabushiko:20160225072259j:plain

f:id:hitsumabushiko:20160225072223j:plain

 

Set Thang

f:id:hitsumabushiko:20160225072557j:plain

 

Set Gronk

f:id:hitsumabushiko:20160225072629j:plain

 

Start Game

f:id:hitsumabushiko:20160225072658j:plain

 

Play

f:id:hitsumabushiko:20160225072813j:plain

f:id:hitsumabushiko:20160225072840j:plain

f:id:hitsumabushiko:20160225072909j:plain

f:id:hitsumabushiko:20160225072944j:plain

f:id:hitsumabushiko:20160225073006j:plain

 

Add Kill

f:id:hitsumabushiko:20160225073044j:plain

 

Result

f:id:hitsumabushiko:20160225073401j:plain

f:id:hitsumabushiko:20160225073419j:plain

f:id:hitsumabushiko:20160225073512j:plain

f:id:hitsumabushiko:20160225073546j:plain

 

Reset Prefs

f:id:hitsumabushiko:20160225073637j:plain

 

ボタンは設置をすると自然とタッチにも反応するようになるので、このゲームをスマホで起動すれば、そのまま遊べる。

 

以上。

 

今回でPlaymakerのスマホ向け一連動画、全13回の解説は終わりです!

 

前の記事