Assert クラスには、コード上に不変条件を設定するためのアサーションメソッドに含まれています。
すべてのメソッド呼出しは、明示的に指定されない限り開発ビルドでのみ含まれます(BuildOptions.ForceEnableAssertionsを参照してください)。アサーションが含めるかどうかは、UNITY_ASSERTIONS を定義することで制御できます。 <br/><br/> アサーションメソッドの失敗は、実行に関する制御フローを破壊しません。失敗に関して、アサーションメッセージはログを記録(LogType.Assert)し、実行を継続します。Assert.raiseExceptions が true に設定された場合、メッセージをロギングする代わりに AssertionException がスローされます。 <br/><br/> デバッガがプロジェクトにアタッチされた場合(このとき System.Diagnostics.Debugger.IsAttached は true を返します)、AssertionExceptionは、実行を一時停止し、デバッガを呼び出すためにスローされます。 <br/><br/> より短く、読みやすいコードのシンタックスについては、Assertions.Must.MustExtensions を参照してください。
public class ExampleClass : MonoBehaviour { public int health; public GameObject go; void Update () { //You expect the health never to be equal to zero Assert.AreNotEqual(0, health);
//The referenced GameObject should be always (in every frame) be active Assert.IsTrue(go.activeInHierarchy); } }
より短く、読みやすいコードのシンタックスについては、Assertions.Must.MustExtensions を参照してください。
raiseExceptions | エラーについては、例外をスローします。 |
AreApproximatelyEqual | 値がほぼ等しいアサート。絶対誤差の確認は、ほぼ正確な等価の確認に使用されます( |a-b|<tolerance )。デフォルトの許容誤差は、0.00001f です。注記:指定された許容範囲でメソッドを呼出すたびに、新しい FloatComparer のインスタンスが作成されます。パフォーマンス上の理由により、2つのオブジェクトが等しいインスタンスかどうか比較したい場合は、AreEqual メソッドで行ってください。許容値が指定されていない場合、デフォルトの Comparer が使われ問題は発生しません。 |
AreEqual | 値が等しいアサート。comparer が指定されない場合、EqualityComparer<T>.デフォルトが使用されます。 |
AreNotApproximatelyEqual | 値が近似的に等価でないアサート。絶対誤差の確認は、ほぼ正確な等価の確認に使用されます( |a-b|<tolerance )。デフォルトの許容誤差は、0.00001f です。 |
AreNotEqual | 値が等しくないアサート |
IsFalse | false となる条件のアサート |
IsNotNull | 値が null でないアサート |
IsNull | 値が null であるアサート |
IsTrue | true となる条件のアサート |