unity3d - 如何使爆炸仅影响 x 轴而不影响 y 轴统一
问题描述
这是我添加力的代码,但我希望力只会在 x 轴上而不是在 y 轴上
Collider2D[] objects = Physics2D.OverlapCircleAll(transform.position, radius, Layertohit);
foreach (Collider2D obj in objects)
{
Vector2 dir = obj.transform.position - transform.position;
dir.y = 0;
obj.GetComponent<Rigidbody2D>().AddForce(dir * force);
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position, radius);
}
解决方案
您可以像冻结 y 轴一样
foreach (Collider2D obj in objects)
{
Vector2 dir = obj.transform.position - transform.position;
dir.y = 0;
float y=obj.GetComponent<Rigidbody2D>().velocit.y
obj.GetComponent<Rigidbody2D>().AddForce(dir * force);
obj.GetComponent<Rigidbody2D>().velocity=new Vector2(obj.GetComponent<Rigidbody2D>().velocity.x,y)
}