Почему не удается использовать код?

484
06 февраля 2017, 14:29

Начал учится работать в Unity3D по обучающему видео и в нем был код (который не заработал):

if (Input.GetKeyDown(KeyCode.W))
    rigidbody.velocity.y = 8;

Полазив по интернету и попробовав несколько вариантов у меня все заработало, только когда я заменил код на такой:

Rigidbody rb = GetComponent<Rigidbody>();
if (Input.GetKeyDown(KeyCode.W))
    rb.velocity = new Vector3(0, 8, 0);

Почему вместо этого не работает первый вариант, или вариант:

Rigidbody rb = GetComponent<Rigidbody>();
if (Input.GetKeyDown(KeyCode.W))
    rb.velocity.y = 8;
Answer 1

Потому что время бежит, всё меняется. И если раньше в старых версиях программного продукта можно было писать одни конструкции, то в поздних версиях что-то меняется на другие.

Так, к примеру rigidbody.velocity (а еще audio, renderer, collider и многое другое) можно было писать в Unity версии № 4. С 5 версии все происходит через вызов нужных компонентов через GetComponent<SOME_COMPONENT>(); в C# и GetComponent(SOME_COMPONENT); в JS

Аналогично с velocity.y. Возможно раньше можно было так писать, однако сейчас присваивание направления или скорости или все, что связанно с Vector3 (и не только вектор) происходит цельно, т.е. через вызов new Vector3(0, 8, 0)

READ ALSO
Проблемы с обучением новых лиц в EMGU CV

Проблемы с обучением новых лиц в EMGU CV

Проблема заключается в том - что - база растет! и переобучение происходит все через :

462
Проверка хэш кода архива [требует правки]

Проверка хэш кода архива [требует правки]

Как можно проверить хэш код архива?

446
Вывод всех записей из mysql

Вывод всех записей из mysql

Выводит только одну запись, а нужно выводить все, не знаю в чем проблема

516