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;
}
}
}
```
Основные изменения:
- Убраны некорректные использования `&` и заменены на `||` для логического "ИЛИ", так как предполагается проверка на попадание в диапазон значений. Использование `&&` для "И" в данном контексте не требуется, так как каждое условие проверяется отдельно.
- Исправлены условия сравнения: удалены лишние символы `&` и исправлен порядок операторов сравнения и переменных.
Пожалуйста, проверьте эти исправления и примените их к вашему коду.
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;
}
}
}