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

Помогите с С# Unity

Я хочу сделать счет в игре когда в триггер заходит коллайдер мяча, то в канвасе в тексте должно прибавляется значение на 1 единицу. Но когда в триггер заходит мяч ничего не происходит.

По дате
По рейтингу
Аватар пользователя
Мастер
5мес

Что еще за OnBlueTrigger? Откуда ты его взял? Еще и пытаешься поменять какой-то BlueText, которого в коде вообще нет

12345678910111213
 public GameObject BlueTrigger;
public GameObject BlueText;

void OnTrigger(Collider c) {

    if (c.gameObject.CompareTag("Ball")) {

        new_val = Int32.Parse(BlueText.text) + 1
        BlueText.text = new_val.ToString()

    }

} 

^ это все конечно внутри класса скрипта

Аватар пользователя
Мыслитель
5мес

using UnityEngine;
using UnityEngine.UI; // Для работы с Text

public class Blue : MonoBehaviour
{
public int BlueRange = 0;
public GameObject BlueTrigger;
public Text BlueText; // Объявляем переменную для текстового поля

private void OnTriggerEnter(Collider other) // Используем стандартный метод OnTriggerEnter
{
if (other.tag == "Ball")
{
BlueRange += 1; // Корректно увеличиваем значение
UpdateBlueText(); // Обновляем текст
}
}

void Start()
{
// Возможно, здесь стоит проверить или инициализировать BlueText, если это необходимо
}

void UpdateBlueText() // Метод для обновления текста
{
if (BlueText != null)
{
BlueText.text = BlueRange.ToString(); // Обновляем текстовое поле
}
}
}