Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Скрипт для начисления очков

(Unity)У меня по карте разбросаны монетки, игрок должен ходить и собирать их(докасаться до них что-бы собрать), он должен набрать 15 штук этих монет, и будет выполняться метод(метод я уже сам напишу), на панеле есть текст 0/15, там должны отображаться собраные монетки, уже много раз сам пытался что-то написать, и как-то не получилось(, помогите пожалуйста

Дополнен

Всё это на Unity 2D

По дате
По рейтингу
Аватар пользователя
Ученик

Для реализации описанного функционала вам потребуется использовать Unity UI и систему событий. Вот пример реализации на основе Canvas и Text:

1. Создайте Canvas в вашей сцене и разместите на нем Text (или другой элемент, который вы хотите использовать для отображения счетчика).

2. Создайте новый скрипт на C# и назовите его "CoinCounter".

3. Добавьте следующий код в ваш CoinCounter.cs:
```
using UnityEngine;
using UnityEngine.UI;

public class CoinCounter : MonoBehaviour
{
public Transform coinPrefab;
public Text coinCountText;
private int collectedCoins = 0;

void Start()
{
// Задаем начальное значение счетчика монет
coinCountText.text = "0 / 15";
}

public void CollectCoin(GameObject coin)
{
collectedCoins++;
coinCountText.text = collectedCoins.ToString() + " / 15";

// Проверяем, собрал ли игрок 15 монет
if (collectedCoins == 15)
{

Аватар пользователя
123456789101112131415161718192021222324
 using UnityEngine; 
using UnityEngine.UI; 
 
public class Player : MonoBehaviour 
{ 
    public Text scoreText; // ссылка на текстовый объект на вашей панели 
    private int score = 0; // текущий счет 
 
    private void OnTriggerEnter(Collider other) 
    { 
        if (other.gameObject.CompareTag("Coin")) // предполагается, что монетки имеют тег "Coin" 
        { 
            Destroy(other.gameObject); // уничтожить монетку 
            score++; // увеличить счет 
            scoreText.text = score + "/15"; // обновить текстовый объект 
 
            if (score >= 15) 
            { 
                // вызовите здесь свой метод 
            } 
        } 
    } 
}