Начал учится работать в 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;
Потому что время бежит, всё меняется. И если раньше в старых версиях программного продукта можно было писать одни конструкции, то в поздних версиях что-то меняется на другие.
Так, к примеру rigidbody.velocity
(а еще audio, renderer, collider и многое другое) можно было писать в Unity версии № 4. С 5 версии все происходит через вызов нужных компонентов через GetComponent<SOME_COMPONENT>();
в C# и GetComponent(SOME_COMPONENT);
в JS
Аналогично с velocity.y
. Возможно раньше можно было так писать, однако сейчас присваивание направления или скорости или все, что связанно с Vector3 (и не только вектор) происходит цельно, т.е. через вызов new Vector3(0, 8, 0)
Проблема заключается в том - что - база растет! и переобучение происходит все через :
Выводит только одну запись, а нужно выводить все, не знаю в чем проблема