Picture of Errorメニューシーンからゲームシーンに移動した後。変数は割り当てられていますが、値はnullです
私はゲームシーンにメニューからの移行時にプレイヤーの位置をロードしようとしていますが、私は私の変数、プレイヤーがnullであるというエラーを取得しています。私は変数の値を表示しています。開始関数と更新関数には値がありますが、どちらも値がありますが、私はloadPosition関数でゲームシーンからアクセスしようとしたときに、無効である。何時間も熟考した後、私は、可変シーンのプレーヤーがnullである理由は、MenuシーンからWorld()を呼び出していてゲームシーンではないと感じているからです。別のシーンからstart関数を呼び出す方法はありますか?ゲームシーンに移行します。このエラーは私をナットにしています!私は読書の容易さのために私のコードの無関係な部分を削除しました。ところで、デモは私のゲームシーンです。前もって感謝します!おそらく失敗しているnull
player = GameObject.FindWithTag ("Player");
GameObject player;
void Update(){
if (Application.loadedLevelName == "Demo") {
savePosition();
print(player);
}
}
void Start() {
if (Application.loadedLevelName == "Demo"){
player = GameObject.FindWithTag ("Player");
print (player);
}
}
public void loadPosition(){
float playerX = PlayerPrefs.GetFloat ("PlayerX");
float playerY = PlayerPrefs.GetFloat ("PlayerY");
float playerZ = PlayerPrefs.GetFloat ("PlayerZ");
player.transform.position = new Vector3 (playerX, playerY, playerZ);
}
public void savePosition(){
PlayerPrefs.SetFloat ("PlayerX", player.transform.position.x);
PlayerPrefs.SetFloat ("PlayerY", player.transform.position.y);
PlayerPrefs.SetFloat ("PlayerZ", player.transform.position.z);
float playerX = PlayerPrefs.GetFloat ("PlayerX");
float playerY = PlayerPrefs.GetFloat ("PlayerY");
float playerZ = PlayerPrefs.GetFloat ("PlayerZ");
print (new Vector3 (playerX, playerY, playerZ));
}
前に、私はプレーヤーが動作するはず見つけるための 'OnLevelWasLoaded'機能を含めて考えます。 –
@GunnarB。私はOnLevelWasLoaded関数でGameObject.FindWithTag( "Player")を使ってみましたが、Unityはまだ私にエラーを与えていました。 :/ –
プレイヤーをデバッグするために、プレイヤーを公開し、実行時にインスペクターで見てください。 –