はじめに
概要
作品名 | Roulette |
制作期間 | 2024.02.09~2024.02.25 (17日) |
制作形式 | 自主制作 |
リンク
プレイ動画
アーキテクチャ図
内容
出来るようになった事
Unity
- 「UnityEvent」を使用した、メソッドの格納
- 「Mathf.Abs()」を使用した、絶対値の取得
- 「SceneManager.sceneLoaded」を使用した、シーン遷移時に走るメソッドの登録
- 「範囲演算子(..)」を使用した、文字列の切り抜き
- 「PlayerPrefs.DeleteKey()」を使用した、特定のキーのセーブデータの削除
- 「List.FindAll()」を使用した、リストの特定の全ての要素の取得
- 「List.Clear()」を使用した、リストの初期化
- 「List.Remove()」を使用した、リストの特定の要素の削除
Google Cloud Functions(.NET 8.0)
- 「#pragma warning disable」を使用した、警告の無視
- 「AppContext.SetSwitch()」を使用した、スイッチの値の設定
- 「HttpResponse.Headers.Append()」を使用した、HTTPレスポンスへのヘッダーの設定
- 「HttpMethods.IsOptions()」を使用した、「HTTPメソッドが OPTION かどうか」の取得
- 「HttpResponse.StatusCode」を使用した、HTTPレスポンスのステータスコードの設定
- 「HttpRequest.Body」を使用した、HTTPリクエスト本文の取得
- 「TextReader.ReadToEndAsync()」を使用した、HTTPリクエスト本文の string 型への変換
- 「JsonSerializer.Deserialize()」を使用した、JSON形式からの変換
- 「JsonElement.TryGetProperty()」を使用した、JsonElement からのプロパティの取得
- 「JsonElement.ValueKind」を使用した、JsonElement の種類の取得
- 「Guid.NewGuid()」を使用した、Guid の生成
- 「HttpClient.PostAsync()」を使用した、HTTPリクエストの POST での送信
- 「HttpResponseMessage.EnsureSuccessStatusCode()」を使用した、HTTP通信の結果の取得
- 「HttpResponseMessage.Content.ReadAsStringAsync()」を使用した、HTTPレスポンス本文の取得
- 「JsonDocument.Parse()」を使用した、JSON形式から JsonDocument への変換
- 「JsonDocument.RootElement.GetProperty()」を使用した、JsonDocument からのプロパティの取得
- 「JsonElement.GetString()」を使用した、JsonElement の string 型への変換
- 「RSA.Create()」を使用した、RSA の生成
- 「RSA.ImportFromPem()」を使用した、「RFC 7468 PEM-encoded key」のインポート
- 「string.ToCharArray()」を使用した、文字列から Char 型の配列への変換
- 「RSA.ExportParameters()」を使用した、RSAParameters のエクスポート
- 「DateTime.AddHours()」を使用した、DateTime への指定時間の追加
- 「JwtSecurityTokenHandler.WriteToken()」を使用した、JwtSecurityToken から JSON Web Token への変換
工夫した点
- メンバ変数をプロパティ化して「public 型名 変数名 { get; private set; }」と記述する事で、メンバ変数へのアクセス制限を簡易的に明示した
- ゲーム内で使用されている全てのテクスチャを1度にロードするのではなく、Google Cloud Storage 上にあるテクスチャを非同期でロードする事で、プロジェクトのビルド容量を削減し、ゲーム実行時の負荷を軽減した
- Google Cloud の API を使用する際に必要な JSON Web Token を取得する処理を Unity ではなく Google Cloud Functions に記述する事で、Unity の環境では使用できないメソッドを間接的に使用する事に成功した