Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Данияр Абдуллин Ученик (50), открыт 2 недели назад
Я хочу сделать счет в игре когда в триггер заходит коллайдер мяча, то в канвасе в тексте должно прибавляется значение на 1 единицу. Но когда в триггер заходит мяч ничего не происходит.
2 ответа
Святослав Ясновидец Мыслитель (5825) 2 недели назад
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(); // Обновляем текстовое поле
}
}
}
Данияр АбдуллинУченик (50) 2 недели назад
Значение BlueRange не изменяется
Timur Magerramov Профи (939) 2 недели назад
Что еще за OnBlueTrigger? Откуда ты его взял? Еще и пытаешься поменять какой-то BlueText, которого в коде вообще нет

 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()

}

}
^ это все конечно внутри класса скрипта
Похожие вопросы