【问题标题】:Unity2D: Respawn player after collision with an objectUnity2D:与物体碰撞后重生玩家
【发布时间】:2016-07-22 14:21:34
【问题描述】:

我想在不破坏任何物体的情况下将我的玩家重生到他在游戏开始时开始的位置,并在与物体撞击后结束游戏。我的玩家死前有三个hearts。当我的玩家失去heart(与标签对象发生碰撞后)时,我想将我的玩家重新生成到他在游戏开始时开始的位置。

这是我播放器的健康码:

public class PlayerHealth : MonoBehaviour {

//Stats
public int curHealth;
public int maxHealth = 3;

void Start ()
{
    curHealth = maxHealth;

}


void Update ()
{

    if (curHealth > maxHealth) {
        curHealth = maxHealth;
    }
    if (curHealth <= 0) {

        Die ();
    }
}

void Die ()
{
    //Restart
    Application.LoadLevel (Application.loadedLevel);


}


public void Damage(int dmg)
{
    curHealth -= dmg;

   }
 }

而且这个脚本是用在我的对象上来伤害他(带走他的心)

public class Damage : MonoBehaviour {

private PlayerHealth player;


void Start ()
{

    player = GameObject.FindGameObjectWithTag ("Player").GetComponent<PlayerHealth> ();
}

void OnTriggerEnter2D (Collider2D other)
{
    if (other.CompareTag ("Player")) 
    {

        player.Damage(1);

         }
      }
  }

谢谢,所以总的来说,我想在与我的对象发生碰撞后将我的玩家重生到游戏开始时的位置,我不希望在失去一颗心后重新开始游戏我想继续直到所有的心都失去了,那就是游戏重新开始的时候。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    您需要在开始时恢复玩家的起始位置,然后在受到伤害时将其重置。在您的 Player's Health 脚本中尝试这样的操作:

    Vector3 startPosition;
    
    void Start ()
    {
        curHealth = maxHealth;
        startPosition = transform.position;
    }
    
    public void Damage(int dmg)
    {
        curHealth -= dmg;
        Reset();
    }
    
    
    void Reset()
    {
        transform.position = startPosition;
    }
    

    希望对你有帮助

    【讨论】:

    • 谢谢你的帮助,但现在我有另一个问题,你看我通过点击(点击移动)移动我的播放器,当我的播放器被物体击中时它确实起作用,它就在它之后重置回最初的位置,我的播放器将继续移动,直到到达目的地。希望我说得通,如果不告诉我,我会尽量让它更清楚。谢谢你:)
    • 请把答案标记为正确。我明白你在说什么。为此,您应该在播放器移动脚本中发布一个单独的问题,以便我可以详细回答:)
    • 谢谢你真的很重要:stackoverflow.com/questions/38533594/… :)
    【解决方案2】:

    目前我能想到的最简单的方法是创建一个空的 GameObject 并将其放置在您希望玩家生成的位置。然后,当玩家被击中并且您希望他重生时,您可以使用 respawn() 方法:

    player.transform = yourEmptyGameObject.transform;
    

    这会将空的游戏对象位置分配给您的玩家。请注意空物体不在地面上,否则您的玩家可能会被卡住。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多