Веревка, чтобы «качаться» - PullRequest
0 голосов
/ 28 марта 2020

У меня есть группа цилиндров, связанных с шарнирными соединениями, согласно учебному пособию по YouTube. Теперь шарнирные соединения перемещаются, когда к ним применяется ExplosionForce, но я хочу, чтобы они «качались» взад-вперед, когда они перемещались с помощью анимации.

Итак, у меня в верхней части Цилиндра RigiedBody установлено значение Kinemati c, и я анимирую его по оси X вправо. Затем он резко останавливается, и я хочу, чтобы дно или остальная часть «веревки» качались немного дальше вправо, а затем снова назад, как веревка. В конечном итоге я хочу прикрепить прожектор к этой веревке и осветить мою сцену. Но я не могу заставить веревку качаться, она просто остается прежней c.

Я экспортировал сцену в виде пакета, вы можете скачать ее здесь: https://www.pastefile.com/Up59SO

Вот анимация не качающейся веревки: enter image description here

Пожалуйста, помогите. Это действительно раздражает, и я не могу понять, почему это не должно работать!

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Сначала убедитесь, что все твердые тела находятся в root сцены; ни с кем не связан. Во-вторых, вы должны использовать физические силы, чтобы заставить элементы качаться. Тем не менее, вы не можете применить силы к kinemati c объектам. Поэтому я бы посоветовал вместо установки root веревки как kinemati c, чтобы зафиксировать ее положение на оси Y.

public class Movement : MonoBehaviour
{
    [SerializeField] Rigidbody rigidbody;
    [SerializeField] float power = 25;
    [SerializeField] float speed = 5;

    void FixedUpdate()
    {
        rigidbody.AddForce(Vector3.right * Mathf.Cos(Time.time * speed) * power);
    }
}

enter image description here

1 голос
/ 28 марта 2020

Может быть, что-то подобное может помочь, https://answers.unity.com/questions/1244519/how-to-randomly-set-the-direction-of-an-object-and.html?_ga=2.69603664.1732232616.1585344454-527098876.1571345094

Попробуйте думать об этом, как ветер.

...