デバッグ中に、null 参照があるというエラーでプログラムがクラッシュしました。奇妙なことは、クラッシュした行で、別の静的クラスでメソッドを実行していて、パラメーターの 1 つが「this」で満たされていることでした。これは、呼び出しを行っているオブジェクトにフィードしていることを意味しますが、 「this」にカーソルを合わせると、それは呼び出し元のオブジェクトではなく、別のクラス タイプのまったく別のオブジェクトです。
「this」を使用すると、「this」が呼び出し元のクラスと同じタイプではないオブジェクトになる可能性があることについて、誰かが知っているか、何らかの説明がありますか?
これが問題の方法です。
public void UpdateLight()
{ DoUpdateLight(); }
protected virtual void DoUpdateLight()
{
if (isActive)
{
Systems.Lighting.Instance.SetSpotLight(
this,
(int)(owner.GetEyeHeight - owner.GetHeight * 0.25f),
lightRange,
owner.visionAngleHorizontal,
owner.visionAngleVertical,
owner.GetGridNumber,
owner.parentFloor.floorLevel,
lightStrength,
lightDecay,
lightMaxTiles,
800);
RemoveLights();
litObjectsPrev = litObjects;
litObjects = new List<ILightable>();
}
}