0
我想設置重生點,以便玩家不必每次都從頭開始。Unity 2D spawn變量不會在我的2D sidescroller中更新
但這樣的球員顯然激活觸發器(與測試的debug.log)
這是我的PlayerController變量甚至不會更新(PinkPlayerController)
public static float spawnX;
public static float spawnY;
void InstandDeath(){
if(Health.gameLives > 1){
Health.gameLives--;
transform.position = new Vector2(spawnX, spawnY);
AudioSource.PlayClipAtPoint(deathSound, transform.position, 10.0f);
}
else {
youLose();
}
}
這是我的產卵腳本
public float positionX;
public float positionY;
void OnTriggerEnter2D(Collider2D other){
//level1
if (other.tag == "Player" && this.tag == "level1Spawn1"){
PinkPlayerControler.spawnX = positionX;
PinkPlayerControler.spawnY = positionY;
}
if (other.tag == "Player" && this.tag == "level1Spawn2"){
PinkPlayerControler.spawnX = positionX;
PinkPlayerControler.spawnY = positionY;
}
if (other.tag == "Player" && this.tag == "level1Spawn3"){
Debug.Log("Spawner3");
PinkPlayerControler.spawnX = 222.5f;
PinkPlayerControler.spawnY = 15.0f;
}
我只是試圖硬編碼在Spawner3但是這不會工作,要麼..
我檢查了標籤,他們都是正確的,沒有拼寫錯誤,所以我不知道爲什麼它不會更新值。
感謝提前:)
Chrizzly
感謝幫助^^更新了座標,但好像我在控制器腳本中犯了一個錯誤 - 我不能像這樣調用它:'transform.position = new Vector2(spawnPosition.x,spawnPosition.y) ;'在我的死亡方法? – Chrizzly 2015-04-05 16:40:12
你可以這樣做。儘管它與編寫'transform.position = spawnPosition;'相同。 Unity會在Vector2和Vector3之間自動轉換。你可以使用Vector3(或Vector2)作爲spawnPosition而不是兩個浮點數。 – 2015-04-05 18:17:18
嗯,問題在於我的玩家在關卡開始時仍然重新生成,並且我的腳本中沒有其他可能干擾此調用的transform.position – Chrizzly 2015-04-05 18:22:44