public IEnumerator Test_SimpleSquareConfiner_OrderIndependent_PolygonCollider2D(Vector2[] testPoints) { var polygonCollider2D = CreateGameObject("PolygonCollider2DHolder", typeof(PolygonCollider2D)).GetComponent <PolygonCollider2D>(); m_Confiner2D.m_BoundingShape2D = polygonCollider2D; m_Confiner2D.m_Damping = 0; m_Confiner2D.m_MaxWindowSize = 0; // clockwise polygonCollider2D.points = testPoints; m_Confiner2D.InvalidateCache(); m_Vcam.transform.position = Vector3.zero; yield return(null); // wait one frame Assert.That(m_Vcam.State.CorrectedPosition, Is.EqualTo(Vector3.zero).Using(Vector3EqualityComparer.Instance)); m_Vcam.transform.position = Vector2.left * 2f; yield return(null); // wait one frame Assert.That((m_Vcam.State.CorrectedPosition - Vector3.left).sqrMagnitude, Is.LessThan(UnityVectorExtensions.Epsilon)); m_Vcam.transform.position = Vector2.up * 2f; yield return(null); // wait one frame Assert.That((m_Vcam.State.CorrectedPosition - Vector3.up).sqrMagnitude, Is.LessThan(UnityVectorExtensions.Epsilon)); m_Vcam.transform.position = Vector2.right * 2f; yield return(null); // wait one frame Assert.That((m_Vcam.State.CorrectedPosition - Vector3.right).sqrMagnitude, Is.LessThan(UnityVectorExtensions.Epsilon)); m_Vcam.transform.position = Vector2.down * 2f; yield return(null); // wait one frame Assert.That((m_Vcam.State.CorrectedPosition - Vector3.down).sqrMagnitude, Is.LessThan(UnityVectorExtensions.Epsilon)); }
private void CreateCameraBoundaries(int width, int height, int cellSize) { if (myPolygonCollider2D == null || cameraConfiner == null) { return; } myPolygonCollider2D.pathCount = 1; myPolygonCollider2D.SetPath(0, new Vector2[4] { new Vector2(width + 1, height + 1) * cellSize, new Vector2(-2, height + 1) * cellSize, new Vector2(-2, -2) * cellSize, new Vector2(width + 1, -2) * cellSize }); cameraConfiner.InvalidateCache(); }