Как добавить силу в (обратном направлении) к движущемуся объекту в Unity - PullRequest
0 голосов
/ 20 января 2019

У меня есть игрок, который движется вперед с постоянной скоростью, и я прикрепил твердое тело к этому объекту. Поэтому я хочу, чтобы, когда игрок ударил другим коллайдером, на него должна была быть приложена сила, чтобы переместить его в обратном направлении. здесь ниже мой сценарий, который связан с моим игроком. Оператор print выполняется, поэтому он означает, что функция Trigger работает, и жесткое тело подключено к проигрывателю, но функция addforce() не работает. Пожалуйста, помогите мне.

void OnTriggerEnter(Collider obj)
{
    if (obj.gameObject.name == "enemy")
    {
        if(gameObject.GetComponent<Rigidbody>())
        {
            print("force add");
            gameobject.getcomponent<RigidBody>().AddForce (-transform.forward * 10f * Time.deltaTime); 
        }
    } 
}

1 Ответ

0 голосов
/ 20 января 2019

Хорошо, сначала попробуйте применить более высокое значение, возможно, что сила слишком мала, потому что она умножается на Time.deltaTime, которое является низким значением:

.AddForce (-transform.forward * 10000f * Time.deltaTime);

Вторая проверка, если вы измените положение игрока с помощью transform.position в любом месте вашего кода. (Если да, вставьте эту часть кода)

...