2015-04-05 40 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