【问题标题】:How do i make a child game object affect the parent? [closed]如何让子游戏对象影响父对象? [关闭]
【发布时间】:2020-06-24 14:26:28
【问题描述】:

我正在制作像超级马里奥这样的游戏。玩家是一个圆圈,敌人是一个撞墙后左右移动的正方形。如果敌人从侧面接触玩家,玩家就会死亡,因此为了生存,玩家必须跳到敌人的头上杀死它。

我将敌人分为身体和头部两部分(身体是父母,头部是孩子)。现在杀死玩家已经完成,但我坚持杀死敌人。 当玩家触摸头部(孩子)时,我如何杀死(摧毁)父母?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您应该能够将碰撞器添加到孩子/头部,BoxCollider2D for example。然后你可以处理碰撞事件并调用父对象的方法。

    它看起来像:

    // In the child/head
    void OnCollisionEnter2D(Collision2D col)
    {
        var goomba = transform.Parent.GetComponent<Goomba>();
        goomba.Kill();
    }
    

    这可能是最简单的方法,但我认为有一种方法可以将碰撞传播到父级,但不记得了。

    编辑:

    显然,

    如果您对角色使用刚体,您可以直接使用它。 :)

    在这个答案中发现:https://gamedev.stackexchange.com/questions/151670/unity-how-to-detect-collision-occuring-on-child-object-from-a-parent-script

    【讨论】:

    • 这就是我想要做的我把这个脚本添加到孩子public GameObject parent; private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.CompareTag("player")) { Destroy(parent); } }
    • @kuruttakao 您正在使用 TRIGGER 方法,该方法用于将其中一个对撞机设置为触发器时使用。触发器实际上并不与对象发生碰撞,但碰撞框会告诉您何时重叠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多