Top.Mail.Ru
Ответы

Помогите решить ошибку в коде C#

Выдает такую ошибку:CS0131 The left-hand side of an assignment must be a variable, property or indexer.
Выдает ошибку здесь:
GUI.BeginGroup(new Rect(Screen.width / 2 - 300, Screen.height / 2 = 300, 600, 400));
Код:
void ShowValues()
{
GUI.BeginGroup(new Rect(Screen.width / 2 - 300, Screen.height / 2 = 300, 600, 400));

GUI.Box (new Rect(0,0,600,400), "Controls");

GUI.Label (new Rect (205, 40, 20, 20), "PC");

GUI.Label (new Rect (340, 40, 125, 20), "Xbox 360 Controller");

GUI.Label (new Rect (25, 75, 125, 20), "Movement: ");

GUI.Button (new Rect (150, 75, 135, 20), PC_Move);

GUI.Button (new Rect (325, 75, 135, 20), Xbox_Move);

GUI.Label(new Rect (25, 100, 125, 20), "Rotation: ");

GUI.Button(new Rect (150, 100, 135, 20), PC_Rotate);

GUI.Button (new Rect (325, 100, 135, 20), Xbox_Rotate);

GUI.Label (new Rect (25, 125, 125, 20), "Item 1: ");

GUI.Button(new Rect (150, 125, 135, 20), PC_Item1);

GUI.Button (new Rect (325, 125, 135, 20), Xbox_Item1);

GUI.Label (new Rect (25, 150, 125, 20), "Item 2: ");

GUI.Button(new Rect(150,150,135,20), PC_Item2);

GUI.Button(new Rect (325, 150, 135, 20), Xbox_Item2);

GUI.Label (new Rect (25, 175, 125, 20), "Item 3: ");

GUI.Button (new Rect (150, 175, 135, 20), PC_Item3);

GUI.Button (new Rect(325, 175, 135, 20), Xbox_Item3);

GUI.Label (new Rect (25, 200, 125, 20), "Item 4: ");

GUI.Button (new Rect (150, 200, 135, 20), PC_Item4);

GUI.Button (new Rect (325, 200, 135, 20), Xbox_Item4);

GUI.Label (new Rect (25, 225, 125, 20), "Inventory: ");

GUI.Button (new Rect(150, 225, 135, 20), PC_Inv);

GUI.Button(new Rect (325, 225, 135, 20), Xbox_Inv);

GUI.Label(new Rect(25, 250, 125, 20), "Pause Game: ");

GUI.Button(new Rect(150,250,135,20), PC_Pause);

GUI.Button(new Rect(150,250,135,20), Xbox_Pause);

GUI.Label(new Rect(25,275,125,20), "Attack/Use: ");

GUI.Button(new Rect(150,275,135,20), PC_AttackUse);

GUI.Button(new Rect(150,275,135,20), Xbox_AttackUse);
GUI.EndGroup();
}
}

По дате
По рейтингу
Аватар пользователя
Ученик

Равно замени на минус

Аватар пользователя
Ученик

неправильно

Аватар пользователя
Ученик

неуч

Аватар пользователя
Ученик

ахахаххахааа

Аватар пользователя
Ученик

Да, спасибо помогло

Аватар пользователя
Ученик

Ошибка “CS0131 The left-hand side of an assignment must be a variable, property or indexer” возникает из-за того, что вы пытаетесь присвоить значение в выражении, которое не является переменной. В строке GUI.BeginGroup(new Rect(Screen.width / 2 - 300, Screen.height / 2 = 300, 600, 400)); проблема в части Screen.height / 2 = 300.

Вы пытаетесь присвоить значение 300 к Screen.height / 2, что недопустимо в этом контексте. Чтобы исправить это, вы должны создать новую переменную и присвоить ей значение Screen.height / 2 - 300:

void ShowValues()
{
// Создайте новую переменную для Y-координаты
float y = Screen.height / 2 - 300;

// Используйте переменную y в Rect
GUI.BeginGroup(new Rect(Screen.width / 2 - 300, y, 600, 400));

// ... остальной код
GUI.EndGroup();
}
В этом коде мы создаем переменную y, которая хранит значение Y-координаты. Затем мы используем y в качестве второго параметра для GUI.BeginGroup.

Объяснение:

В строке Screen.height / 2 = 300 вы пытаетесь присвоить значение 300 результату вычисления Screen.height / 2. Но в C# оператор = используется только для присваивания значений переменным.
Screen.height / 2 не является переменной, а результатом вычисления. Поэтому вы не можете присвоить ему значение.
Вы должны создать переменную, чтобы сохранить результат вычисления, а затем использовать эту переменную в GUI.BeginGroup.
Надеюсь, это поможет!



Видео по теме