概要

クルクルシューティング
体調不良をきっかけにダラダラとしていたら気づけば24日。1月も残り僅かに。
そのため1月の目標であったストーリ画面の作成を行いました。
ストーリ画面
ストーリ画面ではクルクルシューティングのストーリを表示します。
ストーリ画面に表示する画像やアイコン、テキストの内容はCSVに設定しています。

// ResourcesからTextAssetとしてロード(WebGL対応)
TextAsset csvText = Resources.Load(csvFilePath, typeof(TextAsset)) as TextAsset;
if (csvText == null)
{
Debug.LogError("CSV file not found: " + csvFilePath);
return;
}
// CSVSerializerを使ってパース
storyList = CSVSerializer.Deserialize<StoryData>(csvText.text);
CSVファイルはテキストデータとして読み込んだ後に、CSVSerializerを使用して構造体配列にパースします。
この構造体配列を1行ずつ読み込んで、画面に画像やテキストを表示していきます。
// 画像をロードして設定(ResourcesからSpriteとしてロード、拡張子なし)
Sprite storySprite = Resources.Load<Sprite>("Stories/StoryImages/" + data.StoryImage);
if (storySprite != null)
{
storyImage.sprite = storySprite;
}
else
{
Debug.LogWarning("StoryImage not found: " + data.StoryImage);
}
Sprite iconSprite = Resources.Load<Sprite>("Stories/StoryImages/Icons/" + data.IconImage);
if (iconSprite != null)
{
iconImage.sprite = iconSprite;
}
else
{
Debug.LogWarning("IconImage not found: " + data.IconImage);
}
久々すぎて忘れてましたが、Resources.Loadでファイルを読み込むためにはResourcesフォルダに格納しておく必要があります。
また、拡張子は不要で、拡張子を設定していると逆にちゃんと読み込んでくれません。
あとは、ストーリ画面に表示する画像やアイコンを作成します。
ほとんどは結構前から描いていたので、昨日、最期の画像を作成。

アイコンも同じように作成。ナレーション用の「ナ」が良い感じに描けなくて苦労しました。
とりあえず妥協点ということで。

そんなこんなで基礎部分は何とか完成。
文字は1文字ずつ順番に表示される感じに。
あとは、スキップボタンでのスキップとか終わった後にストーリモードに戻ったりの処理です。
効果音とかBGMも付けた方が良いかも。

ステージ選択処理
ステージ選択画面からストーリ画面を表示できるようにするよう改修中です。
合わせて、ステージ解放機能も追加していこうかなと思います。
ステージ解放をどうするのが良いか考えてGrokにも相談しましたが、
Cleared_+ステージIDをキーにしたフラグをPlayerPrefsで永続管理するのが良さそうです。
クリア時に
PlayerPrefs.SetInt("Cleared_" + stageID, 1); PlayerPrefs.Save();
このフラグをみてステージ選択可否の制御していきます。
1月の作業内容
作業実績を更新していなかった1月の作業内容として
- APIのソース構成と管理
何とかソース構成が決まって格納。
バージョン管理とか共通部品はどうするかとかで悩んでいました。 - ユーザー管理方法の検討
ユーザー情報をどう管理するのか検討していました。
ユーザーIDをローカルに持たせておきたかったのですが
ユーザーIDの改竄や盗聴のリスクを考慮し
HttpOnly Cookieやリフレッシュトークンを使用する予定です。 - ユーザーのプレイデータの蓄積
ユーザーのプレイデータを蓄積するための仕組みづくり。
各ユーザーのステージ毎のプレイ回数やクリア回数などを蓄積
リザルト画面で確認が出来たり、全体の傾向を把握出来たりするための
下準備。
ユーザー管理の検討で実際の作業はストップ - 新規ゲームの検討・企画
新規ゲームの検討や企画を行っていました。
ゲームの企画自体は楽しいんですが、実現性を考えると
単なる趣味の妄想でしかないなぁと感じています。
なんとか実現させてみたいとこですが…。
また別途記事を作って紹介したいと思います。
明日の予定
午前中や夕方から用事があるので大したことは出来ませんが、
ステージ選択画面からストーリ画面を表示するところまでは進めたいです。


コメント