【发布时间】:2014-05-02 15:28:29
【问题描述】:
当它返回某个类... 的实例时,我需要访问gameObject.AddComponent() 的essential 参数
gameObject.AddComponent() 函数的返回类型为 Component。
项目中的继承看起来是这样的:
Object <- Component <- Behaviour <- MonoBehaviour <- TDefault <- ...
其中AB 表示“B 继承自 A”。
我无权访问MonoBehaviour 或其父母。它们由引擎提供。
TDefault 是我继承除TEssential 之外的所有类的类。它是我写的。它具有essential 类型的TEssential 属性
铸造print(gameObject.AddComponent(effect_name) as TDefault); 打印null。
print((gameObject.AddComponent(effect_name) as dynamic));
生产
内部编译器错误。有关更多信息,请参阅控制台日志。 输出为:错误 CS0518:预定义类型 System.Runtime.CompilerServices.CallSite 未定义或导入 错误 CS0518:预定义类型 System.Runtime.CompilerServices.CallSite 1' 未定义或导入
我尝试添加
using System.Runtime.CompilerServices.CallSite;
但它只会改变错误
内部编译器错误。有关更多信息,请参阅控制台日志。输出为:错误 CS0518:预定义类型
System.Runtime.CompilerServices.CallSite' is not defined or imported error CS0518: The predefined typeSystem.Runtime.CompilerServices.CallSite`1' 未定义或导入
我确定返回的变量的类型为...。内置编辑器正确显示。
如何获得房产?
【问题讨论】:
-
什么是
print()?你怎么知道AddComponent()的返回值是TDefault?你从gameObject.AddComponent(effect_name).GetType().ToString()得到什么? -
我得到了
int_param,这是我从TDefault手动继承的类型。打印();由引擎功能内置用于调试。如果我没记错的话,它只是调用 Debug.Log()
标签: c#