Используя метод transform.translate(Vector3.left * 5f * Time.Deltatime;
, это изменяет скорость игрового объекта с твердым телом, потому что в моем случае это не работает. Есть ли способ переместить объект, чтобы скорость изменилась. Если нет, есть ли способ измерить скорость объекта? без прикрепления Rigidbody к нему. Спасибо.
Скорость в Unity 2D Как получить скорость объекта без твердого тела
Ответы (2)
Вы можете измерить вектор скорости следующим образом:
Vector3 pos, velocity;
void Awake()
{
pos = transform.position;
}
void Update()
{
velocity = (transform.position - pos) / Time.deltaTime;
pos = transform.position;
}
person
Bizhan
schedule
30.09.2018
Просто добавив, что это дает вам фактически вектор скорости. Если вам нужна реальная скорость, вы можете использовать
velocity.magnitude
- person derHugo; 02.10.2018
Вы можете использовать Transform.hasChanged.
if (!this.transform.hasChanged)
{
print("Player is not moving");
}
transform.hasChanged = false;
person
amitklein
schedule
15.09.2020
translate
позволяет объекту перейти в эту позицию, но компонентRigidBody
сохраняет свою текущую скорость. Однако вы можете получить скорость, например. здесь, а затем примените его к RigidBody.velocity - person derHugo   schedule 02.10.2018