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));
        }
示例#2
0
        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();
        }