本日の進捗。
畑画像を種に合わせて切り替える処理を実装。
シーン切り替えてもきちんと反映する処理を実装。
次回は成長処理を実装します。
本日の進捗。
畑画像を種に合わせて切り替える処理を実装。
シーン切り替えてもきちんと反映する処理を実装。
次回は成長処理を実装します。
本日の進捗。
種ボタンをラジオボタンのデザインに変更。
ラジオボタンの振る舞いをするように実装。
今後の予定
種の在庫を表示。
種植え処理の実装。
タッチする事自体は問題無いのですが、
一番ハマったのは画像の差し替えでした。
二つの画像を重ねるように配置し、レイヤーの切り替えで表示を切り替えようと思ったのですが、
どうも上手くいかないみたいで。
レイヤグループとか美味く使えていれば良かったのかもしれないですけど。
こちらのサイトにスプライトを差し替える方法が書いてありました。
https://qiita.com/motsat/items/927a4d2682765555b80d
public void TouchCare()
{
farmData.care = true;
var r = CareButton.GetComponent<SpriteRenderer>();
r.sprite = ClickSprite;
}
見た目全く問題なし。
これで行きましょう。
プレハブにこんな感じのスクリプトを作成して、プレハブのオブジェクトにアタッチ。
public void Create(Farm farm)
{
farmData = farm;
}
プレハブの使用元ではこんな感じでパラメータを渡せる。
GameObject farm = Instantiate(prefabObj, new Vector3(xPosition, yStartPosition - yPositionInterval * count , 0), Quaternion.identity);
var c = farm.GetComponentInChildren<FarmTouchController>();
c.Create(f);
GetComponentInChildren<>を使用するのがポイントだと思う。
この動作が決まったときはガッツポーズしてしまったよ。
シーンを一つ、タイトルシーンを追加し、
その処理の中で初期化シーケンスを行うようにしました。
void Update()
{
if(!gameManager.Initialized)
{
switch(sequence)
{
case Sequence.Start:
sequenceStart();
break;
case Sequence.MasterInitialize:
masterInitialize();
break;
case Sequence.UserdataInitialize:
userInitialize();
break;
case Sequence.Complete:
FadeManager.Instance.LoadScene("HomeScene", 0.3f);
sequence = Sequence.End;
break;
case Sequence.End:
gameManager.Initialized = true;
DontDestroyOnLoad(gameManager);
break;
}
}
}
Updateのループの中で初期化処理を行い、動作が完了してから次の動作を行う、という感じです。
なぜこうする必要があるかというと、
var request1 = UnityWebRequest.Get(Application.streamingAssetsPath + "/item.csv");
request1.SendWebRequest().completed += (AsyncOperation operation) => {
Items = ItemLoad(request1.downloadHandler.text);
endflg[0] = true;
};
UnityWebRequest.Get()の処理が非同期で行われるため、Update()の処理を抜けないと実行されません。
で、初期化が完了すると、ホーム画面に遷移。
PCではファイルストリームで読み込むことが出来たのですが、
Androidでは使用できないことが判明。
なので、ファイル読み込み処理を変える必要があります。
https://teratail.com/questions/284587
UnityWebRequestを使用して、HTTPリクエストのようにして読み込ませる必要があるとのこと。
これを使用した場合、読み込み処理は非同期で行われるので、初期化のタイミングを美味く取らないと、正しく動作しないわけで、
なかなかめんどくさい。
たぶん、ここらへんもうちょっとひねらないとダメなんだろうな。
パラメータ表示できたよ。