2017-02-20 27 views
0

Я хочу вытащить объект с той же силой, что и игрок, толкает жесткий объект этого объекта. Тем не менее, я не знаю, как сделать такую ​​силу равной силе, идущей в жесткое тело.Unity Pushing Object Script (Little Big Planet like)

Вот мой код:

//if can push and holds button for pushing 
other.GetComponent<Rigidbody>().AddForce(new Vector3(player.moveInput.x*player.speed*mass, player.moveInput.y * player.speed * mass, player.moveInput.z * player.speed * mass), ForceMode.Impulse); 

Прямо сейчас выше код просто делает окно летать с такой силой, что намного больше, чем я ожидал.

+0

Вы спрашиваете, как вытащить игрока из объекта с той же силой, что и он, нажав на объект? Также вы должны опубликовать весь код и лучше объяснить, что вы просите. – Universus

+0

Я спрашиваю, как сделать сценарий вытягивания для игрока, чтобы вытаскивать объекты, чтобы при перемещении объекта оставаться на определенном расстоянии, как я могу это достичь? –

+0

Что означает «сила, равная силе ходьбы в твердом теле», означает? Что такое «сила ходьбы»? Кроме того, что такое 'player.moveInput'? – pingul

ответ

0

О, я думаю, что получаю: игрок перемещается в объект, и вы хотите переместить объект вдоль плеера?

Самый простой способ сделать это, безусловно, не принимать во внимание силы, как вы хотите

object.velocity = player.velocity 

(Отметим здесь терминологию: скорость является бесцельным, но скорость является вектором и имеет 3 компоненты, поэтому вышеуказанные средства object.velocity.x = player.velocity.x, object.velocity.y = player.velocity.y и т.д.)


Вам может понадобиться вычислить силу для того, чтобы работать в единстве, так что давайте выведем-е в. Я буду использовать v для скорости, а nv для «следующей скорости». Нормальное время обновления выглядит

object.nv = object.v + object.force*object.mass*∆t 

Теперь мы хотим object.nv == player.v:

player.v = object.v + object.force*object.mass*∆t 

Moving все более:

object.force = (player.v - object.v)/(object.mass*∆t) 

С помощью этого уравнения игрок не будут затронуты на всех, но тело, в которое вы двигаетесь, должно двигаться «вместе» с игроком.