public static void AreEqual (Object expected, Object actual, string message);
public static void AreEqual (T expected, T actual);
public static void AreEqual (T expected, T actual, string message);
public static void AreEqual (T expected, T actual, string message, IEqualityComparer<T> comparer);

参数

expected假设的 Assert 值。
actual确切的 Assert 的值。
message用于描述 Assert 的字符串。
comparer比较/预期/和/实际/参数是否具有相同值的方法。

描述

断言值相等。

当/预期/和/实际/不相等时显示消息。如果未指定比较器,则使用 EqualityComparer<T>.Default

using UnityEngine;
using UnityEngine.Assertions;

public class AssertionExampleClass : MonoBehaviour { void Update() { // Make sure the Game Object is always tagged as "Player" Assert.AreEqual("Player", gameObject.tag); } }

另一个示例:

using UnityEngine;
using UnityEngine.Assertions;

// Assert.AreEqual and Assert.AreNotEqual example // // Compare 32 to 32. AreNotEqual prints message. // Compare 32 to 33. AreEqual prints message.

public class Example : MonoBehaviour { void Start() { int expectedInt = 32; int actualInt = 32;

// Do not show message (32 is equal to 32). Assert.AreEqual(expectedInt, actualInt, "AreEqual: " + expectedInt + " equals " + actualInt);

// Show message (32 is equal to 32). Assert.AreNotEqual(expectedInt, actualInt, "AreNotEqual: " + expectedInt + " not equal to " + actualInt);

actualInt = 33;

// Show message (32 is not equal to 33). Assert.AreEqual(expectedInt, actualInt, "AreEqual: " + expectedInt + " equals " + actualInt);

// Do not show message (32 is not equal to 33). Assert.AreNotEqual(expectedInt, actualInt, "AreNotEqual: " + expectedInt + " not equal to " + actualInt); } }

另一个示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Assertions;

// Assertion.Assert.AreEqual example // // Compare Vector2Int Assert using IEqualityComparer.

public class Example : MonoBehaviour { // Implement the EqualityComparer class. class EqualityComparer : IEqualityComparer<Vector2Int> { // Compare two Vector2Int structures. // These represent the expected and actual values. public bool Equals(Vector2Int v1, Vector2Int v2) { if ((v1.x == v2.x) &amp;&amp; (v1.y == v2.y)) { return true; } else { return false; } }

public int GetHashCode(Vector2Int v) { int vCode = v.x ^ v.y; return vCode.GetHashCode(); } }

void Start() { // Creates three Vector2Int structures. v1 and v3 have equal values. Vector2Int v1 = new Vector2Int(1, 2); Vector2Int v2 = new Vector2Int(2, 1); Vector2Int v3 = new Vector2Int(1, 2);

// Display missing matches between the three Vector2Int structures. EqualityComparer comparer = new EqualityComparer();

Debug.Log("Comparison of v1 against v2"); Assert.AreEqual(v1, v2, "v1 does not matches v2", comparer); Assert.AreNotEqual(v1, v2, "v1 matches v2", comparer);

Debug.Log("Comparison of v1 against v3"); Assert.AreEqual(v1, v3, "v1 does not matches v3", comparer); Assert.AreNotEqual(v1, v3, "v1 matches v3", comparer);

Debug.Log("Comparison of v2 against v3"); Assert.AreEqual(v2, v3, "v2 does not matches v3", comparer); Assert.AreNotEqual(v2, v3, "v2 matches v3", comparer); } }