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