首页 > 解决方案 > 如何使爆炸仅影响 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);
        }

标签: unity3d

解决方案


您可以像冻结 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)
    }

推荐阅读