【发布时间】:2016-08-03 17:46:03
【问题描述】:
我正在创建一个国际象棋游戏,在我的代码中我正在生成对象来表示棋子。
这些都是Pawn、Rook、King 等类型,并且派生自Piece 类。
但是,当我尝试创建一个新的Pawn 时:
return new Pawn(location, gameObj);
尽管location和gameObj的值有效,但返回值为null。
(未完成的)Piece 和 Pawn 类定义如下:
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()
{
}
}
任何帮助将不胜感激,因为这让我完全难过。谢谢!
【问题讨论】:
-
显示使用构造函数的代码。因为构造函数不能返回 null
-
我有,
return new Pawn(location, gameObj);
标签: c# oop inheritance unity3d constructor