Пытаюсь заставить моего персонажа возродиться, когда переменная playerlife опустится ниже нуля

#c# #unity3d

Вопрос:

Я пытаюсь сделать так, чтобы мой персонаж телепортировался в положение возрождения, когда его жизнь достигает нуля. Все работает по назначению, кроме механика телепортации. У меня включена автоматическая синхронизация преобразований, но когда мой персонаж достигает 0 (или меньше), он не телепортирует моего персонажа. Я также настроил все в инспекторе и сослался на свой объект игрока и свою точку возрождения. Ниже приведен мой код:

 using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerLife : MonoBehaviour
{
    public static float playerLife = 200f;
    public float totaltime = 0f;
    public Transform respawn;
    public GameObject player;
    Text life;


    void Start()
    {
        life = GetComponent<Text>();
    }

    void Update()
    {
        life.text = "Health: "   playerLife;
        if (playerLife <= 0)
        {
            playerLife = 200;
            player.transform.position = respawn.transform.position;
        }

    }
    void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.CompareTag("healthpotion"))
            playerLife  = 50f;
        if (collider.tag == "healthpotion")
            Destroy(collider.gameObject);
    }
    void OnTriggerStay(Collider collider)
    {
        totaltime  = Time.deltaTime;
        if (collider.gameObject.CompareTag("lava"))
        {
            if (totaltime > 1)
            {
                playerLife -= 1f;
                totaltime = 0f;
            }

        }
        if (collider.gameObject.CompareTag("lavatwo"))
        {
            if (totaltime > 1)
            {
                playerLife -= 50f;
                totaltime = 0f;
            }

        }
    }
}
 

Ответ №1:

Вы не определили позицию для возрождения. Так что вместо:

 public Transform respawn;
 

Просто используйте:

 public Vector3 respawn = new Vector3(x, y, z);
 

Затем:

 player.transform.position = respawn;
 

Комментарии:

1. Это все еще не работает, я правильно вас понял? Вот мой обновленный сценарий: pastebin.com/MGmB1Ltj

2. Это действительно странно… Тогда я думаю, что это выше моих сил. Я поднимаю этот вопрос.