【问题标题】:Enable/disable a BoxCollider via script通过脚本启用/禁用 BoxCollider
【发布时间】:2015-06-30 13:05:56
【问题描述】:

我的玩家手中有一把武器,它在攻击时会摆动并在击中敌人时造成伤害。但我希望对撞机只有在玩家攻击时才能发挥作用,例如按下 F 时。我有什么>

GameObject weapon = transform.FindChild("orc_weapon").gameObject; 

if(Input.GetKey(KeyCode.F))
            weapon.GetComponent<PolygonCollider2D>().enabled = false;

由于某种原因,这会破坏我的玩家游戏对象....我还尝试使用 GameObject Weapon = GameObject.Find("orc_weapon"); 获取武器在这种情况下,当我按 F 时,我得到未分配的异常武器尚未被分配,我对其进行调试并打印 orc_weapon

【问题讨论】:

  • 关于transform.FindChild("orc_weapon").gameObject;orc_weapon 绝对是这个脚本附加到的对象的子对象吗?
  • 尝试在检查器中分配 PolygonCollider... public PolygonCollider2D WeaponCollider; if(Input.GetKey(KeyCode.F)) WeaponCollider.enabled = false;
  • 我想我们需要更多信息来解决这个问题,你是怎么设置的?你的游戏对象层次结构是如何建立的?

标签: c# unity3d


【解决方案1】:

伙计们,那里有 2 个名为 orc_weapon 的游戏对象!这就是问题所在!我将名称更改为 player_weapon,现在可以使用 =D,无论如何谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多