привет и хорошего дня. В настоящее время я делаю прототип для моей самой первой полноценной игры на единстве. Я пытаюсь внедрить систему, в которой при столкновении с врагом включается переменная «боевой режим». Код находится в следующем:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class collision_detect : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision);
if (collision.gameObject.name = "enemy_temp")
{
battlemode = true;
}
}
[SerializeField]
bool battlemode = false;
и коды ошибок в следующем также
:
Assets\scripts\collision_detect.cs(8,1): error CS1519: Invalid token 'if' in class, record, struct, or interface member declaration
Assets\scripts\collision_detect.cs(8,31): error CS8124: Tuple must contain at least two elements.
Assets\scripts\collision_detect.cs(8,31): error CS1519: Invalid token '=' in class, record, struct, or interface member declaration
Я продолжал пробовать то, что мне говорили коды ошибок, но, прежде всего, я не мог понять многие из них, а те, которые я понял, просто не работали. заранее спасибо и хорошего дня! :)
Если вы исправите отступ, вы, скорее всего, сами найдете ошибку.
Пожалуйста, прочитайте самые основы языка С#. Т.е. как определить класс и методы внутри этого класса...





Попробуйте добавить правильный блок кода в свой метод, например:
public class collision_detect : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.name == "enemy_temp")
{
battlemode = true;
}
}
}
Также обратите внимание, что внутри предложения if == используется для сравнения справедливости. Один = будет присваивать значение, но не сравнивать. Это приведет к тому, что выражение внутри условия if будет иметь тип string, который не может быть оценен.
И используйте == для сравнения (= только для присвоения)
Ваш код не скомпилируется, потому что тип collision.gameObject.name = "enemy_temp" — это string, который нельзя использовать в условии. Вы, вероятно, хотите вместо этого использовать `collision.gameObject.name == "enemy_temp"
Спасибо за подсказки!
Спасибо вам за это !
Пожалуйста, исправьте форматирование вашего кода, чтобы он не был в одной строке.