2017-09-05 1 views
0

その存在(またはインスタンス化)のためにGameObectを確認することが可能であるとして、このようにC#&ユニティ - オブジェクトがブール値に変換できない(オブジェクトがインスタンス化されたかどうかをチェック)

GameObject x = new GameObject(); 
if(x){ 
    Console.Writeline("Instantiated GO"); 
}else{ 
    Console.Writeline("Not instantiated GO"); 
} 

私はどのようにチェックしますかを,:します存在/インスタンス化のための私自身のクラスのオブジェクト? エラーが発生したため、boolに変換できませんでした。

私の質問:上記のコードのようにUnityのGameObjectsのような自分のクラスのオブジェクトをチェックするにはどうしたらいいですか?

どうすればこの問題を解決できますか?それは、特定の1である:?

class myClass{ 
    public myClass(){ //Construcutor} 
    public void createAndCheckClassObject(){ 
     myClass y = new myClass(); 
     if(y){ 
     Console.Writeline("Instantiated object"); 
     }else{ 
     Console.Writeline("Not instantiated object"); 
     } 
    } 
} 
+0

は、[演算子オーバーロード。] '(ヌル)'デフォルト(MyClassの)に対してそれを比較またはブール値を実装する(HTTPSそれは "ヌル" との比較します:/ /docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/overloadable-operators) – Scott

+0

'new'-createdオブジェクトが' null'になることは考えにくいでしょう。 – Xiaoy312

+0

確かに、これらの種類の条件は、多くの場合Unityで、パラメータが設定されているかどうか、または他の種類の操作が成功したかどうかを確認するために使用されます。 – Scott

答えて

0

if (obj == null) 
{ 
    //do something 
} 
+0

本当の質問で私の投稿を編集しました - 申し訳ありません。 – louis12356

+0

C#は、他のCベース言語の参照とよく似たオブジェクトを扱います。オブジェクトを比較するときは、(メモリ内の)正確なオブジェクトインスタンスを比較しています。したがって、オブジェクトをnullと比較すると、インスタンスがあるかどうかがわかります。 "if"ステートメントはブール比較または結果を探しています。あなたのコードが書かれたとおりに正しく実行されるならば、Unityオブジェクトはその定義内で "bool"に直接変換されている可能性があります。 –

関連する問題