Система чекпоинтов в юнити
Как сделать так, чтобы при подборе монеты появлялся чекпоинт(при смерти возвращался сюда же) , а также каждый чекпоинт засчитывался? Например, бегу я, дохожу до монетки, касаюсь ее и в счетчике прибавился +1, а монетка исчезла
ДополненМожно сказать, обычный сбор монет но с чекпоинтом
По дате
По рейтингу
1234567891011121314151617181920212223242526272829303132333435363738394041424344
/// Скрипт игрока
public Transform checkpoint;
void Death()
{
transform.position = checkpoint.position;
transform.rotation = checkpoint.rotation;
}
void OnTriggerEnter(Collider col)
{
if(col.tag == "Coin")
{
checkpoint = col.gameObject.GetComponent<Coin>().chTransform;
col.gameObject.GetComponent<Coin>().CoinCollect();
}
}
///Скрипт монетки(Coin)
public GameObject coinModel; //моделька монеты
public Transform chTransform; //чекпоинт(пустышка)
public Coins coinsCollectives; //обьект со скриптом для монеток
public bool collected = false; //подобран или нет
public void CoinCollect()
{
Destroy(coinModel);
if(collected == false)coinsCollectives.GetComponent<Coins>.coins += 1;
if(collected == false) collected = true;
}
///Скрипт Coins
using UnityEngine.UI;
public int coins; ///количество монет
public Text coinsText; ///счётчик
void Update()
{
coinsText.text = "Монеты: " + coins;
}
метод Death() если игрок умрёт, то он телепортируется на месте чекпоинта
OnTriggerEnter() - проверяет на касание триггера. У монетки должен быть скрипт "Coin" и тэг "Coin"
также должен быть обьект CoinCollectives со скриптом Coins
Сохраняй последний чекпоинт и при смерти перемещай к нему.
Больше по теме