根据物体之间的距离找到所需的力

时间:2014-10-12 21:17:42

标签: unity3d physics unityscript

尝试根据所选对象和另一个静态对象的距离以编程方式设置力。

为了更好地理解这一点,我正在进行高尔夫比赛,我已经被迫应用于已经完成的球,但是我在这一点上手动设置了力量。现在我正在尝试构建一些伪代码,以便我能够实现这一目标。我没有很多物理经验,所以任何事情都会有所帮助。但基本上我有一个高尔夫球手,他选择了一个他想要击中的区域。因此,一旦选中,我将抓住选择的位置,显然通过(selected.transform.position - golfer.transform.position)找到差异,但现在我有点卡在下一步做什么。如何找到到达所选位置所需的力?

这里有一些当前的代码,如果它有帮助

var target : Transform;
var speed : float;
var force : float;
var angle = 50;
var i = 1;

function FixedUpdate()
{
    if (target == null)
        target = GameObject.FindWithTag("Hole").transform;
}

function Hit()
{
    var torque = Vector3(Input.GetAxis("Vertical"), 0, -Input.GetAxis("Horizontal"));
    var targetRotation = Quaternion.LookRotation (target.position-transform.position,Vector3.forward);
    transform.rotation = Quaternion.Slerp(transform.rotation,targetRotation,8);

    transform.eulerAngles.x = -angle;
        rigidbody.AddTorque(torque.normalized*speed);
    rigidbody.AddForceAtPosition (transform.forward * speed * force,target.position, ForceMode.VelocityChange );
}

1 个答案:

答案 0 :(得分:0)

你需要做一些事情。

  • 力的角度theta
  • 对象质量m

在x轴上:

  • 加速a
  • 初始速度vi
  • 最终速度vf
  • 距离d
  • 旅行时间t

在y轴上:

  • 加速a = gravity
  • 初始速度vi_y
  • 最终速度vf_y
  • 高度旅行h

然后使用运动学方程和F=ma找到力。

您的目标是结合您所知道的物体,物体的质量,距离等,并应用运动学方程式来找到x轴所需的加速度。然后你会将加速度和质量插入F=ma来找到力量。