【发布时间】:2020-06-14 22:33:26
【问题描述】:
在下面的代码中,我正在尝试创建一个实例化游戏对象并将组件添加到对编辑器的公开,但在 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 });
}
}
【问题讨论】:
-
你可能想要 _currentPiece.gameObject.AddComponent... 之类的,你不会将单一行为添加到单一行为,而是添加到游戏对象
-
谢谢。这似乎行得通!
标签: c# unity3d components