#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. Это действительно странно… Тогда я думаю, что это выше моих сил. Я поднимаю этот вопрос.