2 つのシーンがあり、1 つのシーンから別のシーンに情報を渡したいと考えています。最初のシーンで、次のシーンのために保存したいデータを保持する空のゲーム オブジェクトに定数スクリプトを作成しました。
ここにあります:
public class Constants : MonoBehaviour {
public string scratchImageFront;
public string scratchImageBack;
void setScratchFront(string _scratchFront)
{
scratchImageFront = _scratchFront;
}
void setScratchBack(string _scratchBack)
{
scratchImageBack = _scratchBack;
}
}
次のシーンに移る前に、Constants スクリプトを破棄しないように呼び出します。
GameObject constants = GameObject.Find("Constants");
Constants script;
script = constants.transform.GetComponentInChildren<Constants>();
DontDestroyOnLoad(constants);
Application.LoadLevel("scratch");
次に、2 番目のシーンでデータを収集しますが、すべて問題ありません。2 番目のシーンが終わったら、最初のシーンに戻ります。
Application.LoadLevel("start");
そして、最初に行ったのと同じ手順をやり直します。Constants スクリプトは、渡された新しい文字列を保持せず、古い文字列を保持します。なんで?
すべてが正常に機能するように、2 番目のシーンでコンスタント スクリプトを破棄する必要がありますが、これは望ましくありません。私は何を間違っていますか?