2015-04-05 100 views
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

回答

0

我會做這樣的事情:

public class SpawnPoint : MonoBehaviour 
{ 
    void OnTriggerEnter2D(Collider2D other) 
    { 
     if (other.tag == "Player") 
     { 
      var playerController = other.GetComponent<PinkPlayerControler>(); 
      playerControler.spawnPosition = transform.position; 
     } 
    } 
} 

爲了使重生點,創建一個對撞機一個遊戲對象(設置爲工作觸發)。然後將此腳本添加到該對象。然後將場景中的對象放置到您想要的位置。

每次「玩家」標記對象觸發此生成點時,此播放器的spawnPosition將被設置爲生成點的世界位置。

+0

感謝幫助^^更新了座標,但好像我在控制器腳本中犯了一個錯誤 - 我不能像這樣調用它:'transform.position = new Vector2(spawnPosition.x,spawnPosition.y) ;'在我的死亡方法? – Chrizzly 2015-04-05 16:40:12

+0

你可以這樣做。儘管它與編寫'transform.position = spawnPosition;'相同。 Unity會在Vector2和Vector3之間自動轉換。你可以使用Vector3(或Vector2)作爲spawnPosition而不是兩個浮點數。 – 2015-04-05 18:17:18

+0

嗯,問題在於我的玩家在關卡開始時仍然重新生成,並且我的腳本中沒有其他可能干擾此調用的transform.position – Chrizzly 2015-04-05 18:22:44