“unityengine.component不包含GetEnumerator的定义”Unity c中的错误#

时间:2016-03-16 18:20:53

标签: c# unity3d

/ *    在foreach循环中的Ihitable是从IHitable接口获取的,因此我不确定我是否已正确实现它 * /

public interface IHitable
{

    void Hit();
}

/ *    第二个foreach循环获取错误,如标题中所示,不确定如何修复错误 * /

   void Attack2()
    {
        var hits = Physics.OverlapSphere(AttackPoint.position, 0.5f);

        foreach (var hit in hits)
        {
            var hitables = hit.GetComponent(typeof(IHitable));

            if (hitables == null)
                   return;

           foreach(IHitable hitable in hitables)
                hitable.Hit();

            Debug.Log(hit.name);
        }
    }

//非常感谢任何帮助建议

1 个答案:

答案 0 :(得分:2)

GetComponent方法用于检索统一分量。组件是派生自MonoBehaviour的类。因此,您提供给GetComponent的类型必须来自MonoBehaviour。

也许您应该创建一个源自Hitable的{​​{1}}类,并将其添加到您的所有hitable MonoBehaviour中。