/ * 在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);
}
}
//非常感谢任何帮助建议
答案 0 :(得分:2)
GetComponent
方法用于检索统一分量。组件是派生自MonoBehaviour的类。因此,您提供给GetComponent
的类型必须来自MonoBehaviour。
也许您应该创建一个源自Hitable
的{{1}}类,并将其添加到您的所有hitable MonoBehaviour
中。