Как правильно изменять центры массы 2Д объекта?
Я чего-то торможу. У меня есть вот такая стрела:
Я хочу, чтобы ее центр массы находился на правом краю на острие, и чтобы, когда она свободно падала, она наклонялась острием вниз и падала острием вниз.
Я так понимаю, что центр массы задается из скрипта. Я задаю его в методе старт таким образом:
GetComponent<Rigidbody2D>().CenterOfMass = new Vector2(X, Y);
Какие значения мне нужно указывать для X и Y? Почему какие бы значения я ни указывал, стрела спокойно горизонтально падает вниз.
Ответы (1 шт):
Как одно из решений - Каждая стрела должна быть сделана из 2х обьектов - наконечник и тело стрелы. Потом соединяешь их при помощи FixedJoint.
Но вряд ли выйдет просимулировать реалистично это при помощи игрового движка на толковом уровне. Хотя можешь попробовать.
Проще всего будет вручную наклонять стрелу по своим личным математическим расчетам.
myArrow.transform.forward =
Vector3.Slerp(myArrow.transform.forward, myArrow.rigidbody.velocity.normalized, Time.deltaTime);
Код взят из https://answers.unity.com/questions/14899/realistic-rotation-of-flying-arrow.html
а найден по запросу "unity arrow physics mass center"