【问题标题】:Unity 2d Character hitting object with different directionUnity 2d 角色以不同方向撞击物体
【发布时间】:2018-11-09 14:41:07
【问题描述】:

大家好,我想问一下,当我的角色撞击物体时,如何设置具有不同方向的 .addforce。我的角色在左右踢腿,我希望物体以不同的力量向不同的方向移动。而且我希望我的角色在运行时不会撞到对象。

Here is my character and I have 2 box collider for the feet and for the trigger

这是我的原力代码。

    Public void Sipa()
{
   if (canSipa == true)
  {
        _pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(1000, 5000));
        //_pitcha.GetComponent<Rigidbody2D>().AddForce(transform.right * kickForce);
    }
 }

【问题讨论】:

    标签: c# unity3d character collision-detection


    【解决方案1】:

    首先,Public 不存在,试试public。 Unity 具有您可以覆盖的功能,在这种情况下,请尝试使用以下功能:

    void OnCollisionEnter2D(Collision2D col) {
        if(col.gameObject.tag == "Tag of object that is expected to collide") {
            _pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(1000, 5000));
        }
    }
    

    【讨论】:

    • 我会试试的,如果成功我会评论。
    • 仍然无效,我踢的时候物体只是粘在物体上void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "_player") { _pitcha.GetComponent&lt;Rigidbody2D&gt;().AddForce(new Vector2(1000, 5000)); } }
    • 你能检查它是否有效吗?一个常见的错误是在两个对象上都忘记了刚体。
    • 有什么方法可以检查我的项目吗?因为我的角色和对象都有我的刚体,我使用盒子对撞机作为我的角色脚和圆形对撞机作为对象
    • @Mavvvv 在图片中,您将播放器上的对撞机设置为触发器。您必须改用OnTriggerEnter2D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    相关资源
    最近更新 更多