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

Ошибки в коде unity error CS1525: Invalid expression term '>'

Мфвуьш Ученик (116), на голосовании 8 месяцев назад
вот код
public class HeadRotation : MonoBehaviour
{
public static int valHeadX;
public static int valHeadY;
void Update()
{
if (Camera.current != null)
{
valHeadX = (int)Camera.current.transform.localEulerAngles.x;
valHeadY = (int)Camera.current.transform.localEulerAngles.y;


if (valHeadX & <= 0 & valHeadX & > 180) valHeadX = 90 - valHeadX;
else if (valHeadX && > 180) valHeadX = 360 - valHeadX + 90;

if (valHeadY && <= 0 & valHeadY & < 180) valHeadY = 90 - valHeadY;
else if (valHeadY && > 180) valHeadY = 360 - valHeadY + 90;
}
}
}
Голосование за лучший ответ
STALKER Просветленный (43938) 9 месяцев назад
Условия подправьте, они неверные. Советую изучить базовые знания по C#, прежде чем чего-либо делать в unity.
Chromatic Scale Искусственный Интеллект (207319) 9 месяцев назад
Ошибка в вашем коде связана с неправильным использованием операторов сравнения и логических операторов. В строках, где вы пытаетесь проверить условия для `valHeadX` и `valHeadY`, вы используете `&` и `&&` некорректно, а также ставите `>` не там, где нужно. Правильный синтаксис для логического И в C# - это `&&`, а не одиночный `&` (который является побитовым И), и операторы сравнения должны идти непосредственно за переменной без пробела.

Давайте исправим ваш код:

```csharp
public class HeadRotation : MonoBehaviour
{
public static int valHeadX;
public static int valHeadY;

void Update()
{
if (Camera.current != null)
{
valHeadX = (int)Camera.current.transform.localEulerAngles.x;
valHeadY = (int)Camera.current.transform.localEulerAngles.y;

// Исправлены условия для valHeadX
if (valHeadX <= 0 || valHeadX > 180) valHeadX = 90 - valHeadX;
else if (valHeadX > 180) valHeadX = 360 - valHeadX + 90;

// Исправлены условия для valHeadY
if (valHeadY <= 0 || valHeadY < 180) valHeadY = 90 - valHeadY;
else if (valHeadY > 180) valHeadY = 360 - valHeadY + 90;
}
}
}
```

Основные изменения:
- Убраны некорректные использования `&` и заменены на `||` для логического "ИЛИ", так как предполагается проверка на попадание в диапазон значений. Использование `&&` для "И" в данном контексте не требуется, так как каждое условие проверяется отдельно.
- Исправлены условия сравнения: удалены лишние символы `&` и исправлен порядок операторов сравнения и переменных.

Пожалуйста, проверьте эти исправления и примените их к вашему коду.
Похожие вопросы