gpt4 book ai didi

c# - 派生类构造函数返回 Null

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:00 24 4
gpt4 key购买 nike

我正在创建一个国际象棋游戏,在我的代码中我正在生成对象来表示棋子。

这些都是 PawnRookKing 等类型,派生自 Piece 类。

但是,当我尝试创建一个新的 Pawn 时:

return new Pawn(location, gameObj);

尽管 locationgameObj 的值有效,但返回值为 null。

(未完成的)PiecePawn 类定义如下:

public class Piece : MonoBehaviour
{
protected Coord location;
protected bool isWhite;
protected bool specialUsed = false;

void displayMarkers(List<Coord> targets)
{

}

public void moveTo()
{

}

public void resetColour()
{

}

public virtual void displayTargets()
{

}
}

和:

public class Pawn : Piece
{
public Pawn(Coord loc, GameObject gameObj)
{
location = loc;
if (loc.y < 4) { isWhite = true; } else { isWhite = false; }
}

public override void displayTargets()
{

}
}

任何帮助将不胜感激,因为这让我完全难住了。谢谢!

最佳答案

您正在使用 Unity

在 Unity 中你不能实例化 MonoBehaviour使用 new Pawn() , 你必须通过 AddComponent<T> 做到这一点方法。

因此,参数化构造函数是无用的。

示例:

var pawn = gameObject.AddComponent<Pawn();
pawn.isWhite = true;

有关详细信息,请参阅文档:

http://docs.unity3d.com/ScriptReference/GameObject.AddComponent.html

关于c# - 派生类构造函数返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com