我有一个带有接口 IDialogueAnimation 的公共类打字机。在 DialoguePrinter 类的方法中,我获取了具有 IDialogueAnimation 接口的所有对象。它们以类型的形式出现,我想将它们转换为 IDialogueAnimation。但是,它不会让我收到“InvalidCastException:指定的转换无效”。错误。为什么是这样?谢谢!
我已经检查过 Typewriter 和 IDialogueAnimation 是否位于同一个程序集中(这是我尝试搜索解决方案时出现的问题)。
IDialogueAnimation GetAnimationInterfaceFormName(string name)
{
Type parentType = typeof(IDialogueAnimation);
Assembly assembly = Assembly.GetExecutingAssembly();
Type[] types = assembly.GetTypes();
IEnumerable<Type> imp = types.Where(t => t.GetInterfaces().Contains(parentType));
foreach (var item in imp)
{
if (item.Name.ToLower() == name.ToLower())
{
return (IDialogueAnimation) item;
}
}
Debug.LogError("Can't find any animation with name " + name);
return null;
}
这是界面
public interface IDialogueAnimation
{
bool IsPlaying { get; set; }
IEnumerator Run(OrderedDictionary wordGroup, float speed);
}
米琪卡哇伊
相关分类