Я хочу, чтобы игрок сначала стартовал со стартовой позиции. Затем начните с контрольной точки после того, как они закончили первый уровень. Я пробовал разные итерации этого скрипта, предполагается использовать проверку bool, если игрок прошел через триггер, и если его позиция будет равна контрольной точке на старте. Он должен помнить bool, когда игра выключается и снова включается.
Прямо сейчас игрок всегда начинает с контрольной точки.
Я пытался создать свой логический логический элемент с playprefs, но в итоге использовалBoolPrefs, который все еще не работал.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public Rigidbody player;
public Transform startPoint;
public Transform checkPoint;
private void Start()
{
if (PlayerPrefsX.GetBool("level01Complete", false))
{
player.transform.position = startPoint.position;
}
if (PlayerPrefsX.GetBool("level01Complete", true))
{
player.transform.position = checkPoint.position;
}
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "HubTrigger")
{
PlayerPrefsX.SetBool("level01Complete", true);
}
else
{
PlayerPrefsX.SetBool("level01Complete", false);
}
}
}
Вот скрипт BoolPrefs, который я использую в настоящее время.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerPrefsX
{
public static void SetBool(string name, bool booleanValue)
{
PlayerPrefs.SetInt(name, booleanValue ? 1 : 0);
}
public static bool GetBool(string name)
{
return PlayerPrefs.GetInt(name) == 1 ? true : false;
}
public static bool GetBool(string name, bool defaultValue)
{
if (PlayerPrefs.HasKey(name))
{
return GetBool(name);
}
return defaultValue;
}
}
Я новичок в использовании PlayerPrefs, так что может быть что-тоОчевидно, что я пропускаю.
HubTrigger - это триггер, через который вы проходите после завершения первого уровня. Поэтому в первый раз, когда вы играете, вы начинаете с одного места, затем, когда вы проходите через hubtrigger, вы проходите первый уровень, и с этого момента вы начинаете с контрольной точки, когда загружаете игру.