C#方法要求Type类型参数,传入实体类型却报错,求解答
问题原因
你直接传入Entity1是把类型名当作参数,但C#中类型名本身不是Type类型的实例,方法要求的是Type对象,所以会触发报错。
解决方法
要获取类型对应的Type对象,最适合当前场景的方式是使用typeof运算符:
SceneManager.currentScenes[0].FindEntityByClass("main", typeof(Entity1)).Destroy();
如果后续是通过实体实例来获取类型,也可以用实例的GetType()方法(但当前场景不需要):
Entity1 entityInstance = new Entity1(); SceneManager.currentScenes[0].FindEntityByClass("main", entityInstance.GetType()).Destroy();
额外提示
需要确认List<Entity>.Destroy()是否是你自定义的扩展方法,因为默认List<T>并没有这个方法。如果是要销毁列表里的每个实体,应该遍历处理:
var targetEntities = SceneManager.currentScenes[0].FindEntityByClass("main", typeof(Entity1)); foreach(var entity in targetEntities) { entity.Destroy(); }
内容的提问来源于stack exchange,提问作者SpaceChaton
相关产品推荐
相关产品推荐

