Unity 5.1 で「UnityEngine.Assertions.Assert」が追加されました
このクラスを使用することで値が正常であるかどうかを確認できます
値が不正の場合はメッセージを投げます
関数 | 説明 |
---|---|
IsNull | 値がnullであることを保証します |
IsNotNull | 値がnullではないことを保証します |
IsTrue | 値がtrueであることを保証します |
IsFalse | 値がfalseであることを保証します |
AreEqual | 値が等しいことを保証します |
AreNotEqual | 値が等しくないことを保証します |
AreApproximatelyEqual | 値がほぼ等しいことを保証します。デフォルトの許容誤差は0.00001f |
AreNotApproximatelyEqual | 値がほぼ等しくないことを保証します。デフォルトの許容誤差は0.00001f |
using UnityEngine; using UnityEngine.Assertions; public class ExampleClass : MonoBehaviour { private void Awake() { GameObject notNullObj = gameObject; GameObject nullObj = null; // 値が正常なのでメッセージを投げない Assert.IsNull( nullObj ); Assert.IsNotNull( notNullObj ); Assert.IsTrue( true ); Assert.IsFalse( false ); Assert.AreEqual( 1, 1 ); Assert.AreNotEqual( 1, 2 ); Assert.AreApproximatelyEqual( 1.0f, 1.01f, 0.01f ); Assert.AreNotApproximatelyEqual( 1.0f, 1.02f, 0.01f ); // 値が不正なのでメッセージを投げる Assert.IsNull( notNullObj ); // Assertion failed. Value was not Null Assert.IsNotNull( nullObj ); // Assertion failed. Value was Null Assert.IsTrue( false ); // Assertion failed. Value was False Assert.IsFalse( true ); // Assertion failed. Value was True Assert.AreEqual( 1, 2 ); // Assertion failed. Values are not equal. Assert.AreNotEqual( 1, 1 ); // Assertion failed. Values are equal. Assert.AreApproximatelyEqual( 1.0f, 1.02f, 0.01f ); // Assertion failed. Values are not equal. Assert.AreNotApproximatelyEqual( 1.0f, 1.01f, 0.01f ); // Assertion failed. Values are equal. } }
「UNITY_ASSERTIONS」シンボルが定義されている場合にのみこれらの関数は実行されます
Unityエディタ上もしくはDevelopment Buildの場合に
「UNITY_ASSERTIONS」は自動で定義されるようです
リリースビルドでもアサーションの機能を有効にしたい場合は
ビルド時のオプションで「BuildOptions.ForceEnableAssertions」を指定する模様
参考サイト様