ゲーム製作していると初回起動時だけに処理を実行したいときってありますよね。
例えば、ポケモンみたいに初めてプレイしたときにプレイヤーの性別や名前を聞いたりしたいときはUnityのセーブ機能とフラグを使って実装できます。
実装方法1 PlayerPrefsを使う
Unityでセーブを扱うときはPlayerPrefsを使う方法があります。
起動直後にPlayerPrefsのHasKeyを使い、特定のキー(ここではFirstRunとしました)のデータが存在するかどうかを確認します。存在しなければ、初回起動であると判断することができます。
次回起動時には何かしらの値があれば初回起動済みということがわかるので、初回起動時の処理を実行後に特定のキー(FirstRun)に適当な値を入れてセーブしています。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
void Start()
{
// firstRunというキーにデータがない場合
if (!PlayerPrefs.HasKey("FirstRun"))
{
// 初回起動時の処理を実行
Debug.Log("初回起動");
// FirstRunキーに値を入れる
PlayerPrefs.SetInt("FirstRun", 1);
PlayerPrefs.Save();
}
}
実装方法2 Easy Saveを使う
有料アセットのEasy Saveを使う場合も同じように実装できます。
Easy Saveの場合はKeyExistsというメソッドを使うことで、特定のキーにデータが存在するかを確認することができます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
void Start()
{
// firstRunというキーにデータがない場合
if (!ES3.KeyExists("FirstRun"))
{
// 初回起動時の処理を実行
Debug.Log("初回起動");
// FirstRunキーに値を入れる
ES3.Save<bool>("FirstRun", true);
}
}
まとめ
今回は初回起動時に一回だけ処理を実行する方法を説明しました。
簡単に実装できるのでゲームに取り込んでみてください!
独学に限界を感じているあなたに
ゲーム制作に特化したプログラミングスクール「テックスタジアム」をご紹介します。
テックスタジアムは数あるプログラミングスクールでもゲームに特化しており、「完全オンライン」でUnity、3DCGを学ぶことができます。
また、第一線で活躍する講師に質問し放題。ゲーム業界への無料就職サポートも行っており、就職決定者には、授業料が全額返還される特典も。
オンラインで無料相談が可能なので、独学に限界を感じた場合は検討してみてください。
コメント