我有一个playerAttack()
方法,当玩家点击鼠标左键时会被激活(由于物理条件,条件在FixedUpdate()
)。该方法有一个Raycast,可以将玩家面前的敌人推开。问题是由于Vector3
,敌人被推向了世界的方向。我尝试使用AddRelativeForce()
而不是AddForce()
,但它仍在向世界方向发展。这是代码:
public void playerAttack()
{
RaycastHit hit;
if (Physics.Raycast(player.transform.position, player.transform.forward, out hit, range))
{
if (hit.rigidbody != null && hit.transform.tag == "Enemy")
{
hit.rigidbody.AddForce(hit.rigidbody.transform.forward * weaponPush);
}
}
}
答案 0 :(得分:0)
如果你想让你的刚体被推离玩家,你将不得不使用player.transform.forward
向量而不是刚刚的向量:
public void playerAttack()
{
RaycastHit hit;
if (Physics.Raycast(player.transform.position, player.transform.forward, out hit, range))
{
if (hit.rigidbody != null && hit.transform.tag == "Enemy")
{
hit.rigidbody.AddForce(player.transform.forward * weaponPush);
}
}
}