我有下面的代碼:爲什麼我的代碼忽略了一個真正的if條件?
private static void checkCodesInPlayerCenter(GameObject player)
{
Vector2 collisionCenter = player.GetCollisionCenter(player.PublicCollisionRectangle);
if (TileMap.GetMapSquareAtPixel(collisionCenter) == null)
{
return;
}
for (int i = 0; i < TileMap.GetMapSquareAtPixel(collisionCenter).Codes.Count; ++i)
這是可能的,有時我從GetMapSquareAtPixel獲取對象爲空。爲了不導致for循環中的NullReferenceException,我決定檢查它是否爲null,如果是,儘早結束函數,但是它似乎完全忽略了if條件,即使返回的對象爲null。 我在return語句上設置了一個斷點,但代碼永遠不會去那裏,而是觸發NullReferenceException,我試圖避免。
請幫忙嗎?
也許'TileMap'爲空。可能?或'代碼'?或'玩家'? –
它可能是空的collisionCenter? – darma
當方法內的第一行調用時,是否得到任何結果? – saber