Exemplo n.º 1
0
    void OnDrawGizmos()
    {
        var moveCollider = GetComponent <BoxCollider2D>();

        if (moveCollider)
        {
            var origin = moveCollider.offset;
            origin.x *= _movable ? _movable.GetDirection() : 1f;
            origin   += (Vector2)transform.position;

            Gizmos.color = new Color(0f, 1f, 0f, 0.3f);
            Gizmos.DrawCube(origin, moveCollider.size);
        }

        if (_attackCollider)
        {
            var origin = _attackCollider.offset;
            origin.x *= _movable ? _movable.GetDirection() : 1f;
            origin   += (Vector2)transform.position;

            var dir = _movable ? _movable.GetDirection() : 1f;

            var pointA = _attackCollider.offset;
            pointA.x *= dir;
            pointA    = (pointA + (Vector2)transform.position) - _attackCollider.size / 2f;
            var pointB = _attackCollider.offset;
            pointB.x *= dir;
            pointB    = (pointB + (Vector2)transform.position) + _attackCollider.size / 2f;

            Gizmos.color = new Color(1f, 0f, 0f, 0.8f);
            Gizmos.DrawLine(pointA, pointB);
            Gizmos.color = new Color(0f, 1f, 0f, 0.8f);
            Gizmos.DrawCube(pointA, Vector3.one * 0.01f);
            Gizmos.color = new Color(0f, 0f, 1f, 0.8f);
            Gizmos.DrawCube(pointB, Vector3.one * 0.01f);

            Gizmos.color = new Color(1f, 0f, 0f, 0.3f);
            Gizmos.DrawCube(origin, _attackCollider.size);
        }
        if (_hitCollider)
        {
            var origin = _hitCollider.offset;
            origin.x *= _movable ? _movable.GetDirection() : 1f;
            origin   += (Vector2)transform.position;

            Gizmos.color = new Color(1f, 1f, 0f, 0.3f);
            Gizmos.DrawCube(origin, _hitCollider.size);
        }
    }