Ошибка: невызываемый член Vector2 нельзя использовать как метод

Я пытаюсь сделать Vector2(-1, 0) вместо Vector2.left, но выдает эту ошибку:

Non-invocable member 'Vector2' cannot be used like a method

Любые идеи?


person ziggy    schedule 07.10.2015    source источник
comment
Вы сделали new Vector2(-1, 0) ?   -  person Clark Kent    schedule 07.10.2015
comment
Не знаком с Unity, но судя по сообщению об ошибке, Vector2 — это свойство.   -  person Tim    schedule 07.10.2015
comment
@Tim Интересно, member так звучит, но на самом деле это struct.   -  person 31eee384    schedule 07.10.2015


Ответы (2)


Vector2.Left равно new Vector2(-1,0); , а не Vector2(-1, 0) :)

person fahimalizain    schedule 07.10.2015

Я думаю, это происходит потому, что вы используете такой синтаксис:

Vector2 vec;
//assign new value
vec = Vector2(-1,0);

Это не сработает, потому что компилятор считает, что вы используете метод с именем Vector2(), которого не существует, и это неправильно, потому что вы должны создать новый объект, а затем присвоить его значение переменной vec. Например:

Vector2 vec;
//assign new value
vec = new Vector2(-1,0); //you create a new Vector2 and assign its value to vec

или, лучшим способом будет сохранить ваш Vector2(-1,0) в отдельной переменной. Как это:

Vector2 vec, leftVec;

leftVec = new Vector2(-1,0);
//assign new value
vec = leftVec;

Таким образом, вы можете изменить значение вашей переменной, не создавая каждый раз новый объект.

person Anton Voronin    schedule 08.10.2015