我在我的2D項目中有一個類(「foo」說),並且當我在鼠標位置獲得對遊戲對象的引用時,我想確定是否該對象屬於foo類。我獲得與我如何確定在鼠標位置的對象類(Unity3d)
GameObject objAtMouse = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(mousePos), Vector2.zero).transform.gameObject;
其中mousePos結構是我的鼠標的位置的對象,而且它似乎打算工作。爲了測試I類曾嘗試以下:
- 如果(objAtMouse是富){...}
- FOO fooAtMouse = objAtMouse爲Foo; 如果(fooAtMouse){...}
- IF((objAtMouse.GetComponent( 「富」)爲富)!= NULL){...}
選項1.建議here是唯一的一個不產生錯誤,但產生了警告
給定表達式是從來沒有提供的(「富」)型
選項2的,也是在上面的鏈接建議,產生錯誤
無法通過引用轉換,裝箱轉換,解包轉換,包裝轉換或null類型轉換
選項3建議here併產生錯誤類型「UnityEngineGameObject」轉換到「富」
的NullReferenceException:對象沒有設置爲一個對象的一個實例
這似乎是一個簡單的任務,但我在這個問題上有點麻煩。那麼,我怎樣才能確定我鼠標結束的對象的類/類型?
任何幫助,非常感謝!
感謝您的回覆:)我已經嘗試了您的建議,但是我得到了上面列出的NullReferenceException。我錯過了什麼嗎? – Rookatu
哪一行發生'NullReferenceException'?你有沒有檢查'objAtMouse'是否爲'null'? – Lincoln
嗨。是的,我首先檢查objAtMouse是否爲null,並且只在所產生的if塊中對fooComponent進行後續測試。錯誤發生在運行時;有沒有辦法獲得有關哪條線導致錯誤的更多細節?謝謝! – Rookatu