C# 不包含“AddComponent”的定义,并且Unity中没有可访问的扩展方法“AddComponent”错误

C# 不包含“AddComponent”的定义,并且Unity中没有可访问的扩展方法“AddComponent”错误,c#,unity3d,components,C#,Unity3d,Components,在下面的代码中,我试图创建一个实例化游戏对象,并将该组件添加到expose to Editor中,但在Unity中出现了下面的错误。似乎无法将_currentPiece添加到ExposeToEditor中,我正在尝试为其找到修复方法。解决办法是什么 错误CS1061:“SnapPiece”不包含“AddComponent”的定义,并且找不到接受“SnapPiece”类型的第一个参数的可访问扩展方法“AddComponent”。是否缺少using指令或程序集引用 public class Snap

在下面的代码中,我试图创建一个实例化游戏对象,并将该组件添加到expose to Editor中,但在Unity中出现了下面的错误。似乎无法将_currentPiece添加到ExposeToEditor中,我正在尝试为其找到修复方法。解决办法是什么

错误CS1061:“SnapPiece”不包含“AddComponent”的定义,并且找不到接受“SnapPiece”类型的第一个参数的可访问扩展方法“AddComponent”。是否缺少using指令或程序集引用

public class SnappableSpawner : MonoBehaviour
        {
            public GameObject prefabSnapPiece;
            public float initialDistanceToSpawnAt = 1f;
            private float _currentDistanceToPositionAt;

            private SnapPiece _currentPiece;
            private int _spawnSuffix = 1;

            public void SpawnGhostToMouse()
            {
                if( _currentPiece == null )
                {
                    _snapMode = PointerSnapMode.ABSOLUTE_PROJECTION;
                    _currentDistanceToPositionAt = initialDistanceToSpawnAt;
                    _currentPiece = GameObject.Instantiate( prefabSnapPiece ).GetComponent<SnapPiece>();
                    _currentPiece.name = "Spawned-"+_spawnSuffix;
                    _spawnSuffix++;

                    ExposeToEditor exposeToEditor = _currentPiece.AddComponent<ExposeToEditor>();
                    IRTE editor = IOC.Resolve<IRTE>();
                    editor.Undo.RegisterCreatedObjects(new[] { exposeToEditor }); 
            } 
       }
与GetComponent不同,GetComponent由两者实现,MonoBehavior从中继承

仅由GameObject实现

您需要始终通过相应的游戏对象,如

与GetComponent不同,GetComponent由两者实现,MonoBehavior从中继承

仅由GameObject实现

您需要始终通过相应的游戏对象,如


您可能需要_currentPiece.gameObject.AddComponent。。。或者,您不会将单行为添加到单行为,而是添加到GameObjectsHanks。这似乎奏效了!您可能需要_currentPiece.gameObject.AddComponent。。。或者,您不会将单行为添加到单行为,而是添加到GameObjectsHanks。这似乎奏效了!谢谢你的澄清,德胡戈!您推荐的代码已经解决了我的编码错误。感谢derHugo的澄清!您推荐的代码解决了我的编码错误。
ExposeToEditor exposeToEditor = _currentPiece.gameObject.AddComponent<ExposeToEditor>();