C# 如何在c中访问子类的方法?
当gameObject.AddComponent返回某个类的实例时,我需要访问它的基本参数 gameObject.AddComponent函数具有返回类型Component 项目中的继承看起来是这样的:C# 如何在c中访问子类的方法?,c#,C#,当gameObject.AddComponent返回某个类的实例时,我需要访问它的基本参数 gameObject.AddComponent函数具有返回类型Component 项目中的继承看起来是这样的: Object <- Component <- Behaviour <- MonoBehaviour <- TDefault <- ... 产生 内部编译器错误。有关更多信息,请参阅控制台日志。 输出为:错误CS0518:预定义类型 未定义或导入System.Run
Object <- Component <- Behaviour <- MonoBehaviour <- TDefault <- ...
产生
内部编译器错误。有关更多信息,请参阅控制台日志。
输出为:错误CS0518:预定义类型
未定义或导入System.Runtime.CompilerServices.CallSite
错误CS0518:预定义的类型
未定义或导入System.Runtime.CompilerServices.CallSite 1
我试着加上
using System.Runtime.CompilerServices.CallSite;
但这只会改变错误
内部编译器错误。有关更多信息,请参阅控制台日志。输出为:错误CS0518:未定义或导入预定义类型System.Runtime.CompilerServices.CallSite“”
错误CS0518:未定义或导入预定义的typeSystem.Runtime.CompilerServices.CallSite“1”
我确信返回的变量的类型是。。。。内置编辑器将正确显示它
如何获取属性?添加组件具有通用重载,因此您应该能够执行以下操作:
effect_name newComponent = gameObject.AddComponent<effect_name>();
再多研究一下。您确定effect\u name继承了TDefault吗?如果您想访问附加到gameobject的类或组件的方法是否为子对象,可以使用gameobject.GetComponent.MyMethod[params]
如果要访问游戏对象的子对象->gameobject.Transform.getChild
如果要添加组件,请使用AddComponent方法。解决方案正在转换到接口: 一, 二,
3Essentail ess=gameObject.AddComponenteffect\u名称为IDefault.get\u essential 什么是印刷?您如何知道AddComponent返回的是TDefault?你从gameObject.AddComponenteffect\u name.GetType.ToString中得到了什么?我得到了int\u param,它是我从TDefault手动继承的类型。打印是引擎内置的用于调试的功能。如果我没弄错的话,它只是调用Debug.LogGeneric版本的AddComponent不接受类型参数。我只能调用创建新TDefault的AddComponent,但我从未说过effect_name继承了TDefault。它是一个字符串,指定类的名称,我正试图添加该类的实例。我想添加一个组件。此外,我希望引用此组件的属性。在添加GetComponent之前,我无法使用它。添加后,如何将其与其他相同类型的组件区分开来?我在同一个游戏对象中从未有过更多相同类型的组件,我使用第三个游戏对象来管理麻烦物品,或者我更改/使用/修改游戏对象上的当前组件,不确定哪种组件需要2个相同类型的组件。祝你好运
effect_name newComponent = gameObject.AddComponent<effect_name>();
using UnityEngine;
using System.Collections;
using NExtensionMethods;
public class TDefault:MonoBehaviour,IDefault
{
public TEssentail essential=new TEssentail();
public TEssentail get_essential()
{
if(essential==null)
essential=new TEssentail();
return essential;
}
public TDefault ()
{
}
}
using UnityEngine;
using System.Collections;
public interface IDefault
{
TEssentail get_essential();
}