Example #1
0
    private void UpdateTransform() {
        if (transformTranslate) {
            Vector2 translate = translateFunction.Value(ValueF2);

            Vector2 size;
            if (TryGetNativeSize(out size)) {
                imageObject.transform.localPosition = new Vector2(
                translate.x * size.x,
                translate.y * size.y);
            }
        }

        if (transformRotate) {
            Quaternion rotate = rotateFunction.Value(ValueF2);
            var localRotation = Quaternion.identity * Quaternion.Inverse(rotate);

            // ReSharper disable once RedundantCheckBeforeAssignment
            if (imageObject.transform.localRotation != localRotation) {
                imageObject.transform.localRotation = localRotation;
            }
        }

        if (transformScale) {
            Vector3 scale = scaleFunction.Value(ValueF2);
            MadTransform.SetLocalScale(imageObject.transform, scale);
        }
    }
        void DrawObject()
        {
            Vector3 translate = Vector3.zero;

            if (transformTranslate)
            {
                translate = translateFunction.Value(ValueF2);
                translate = new Vector3(translate.x * sizeReal.x, translate.y * sizeReal.y, 0);
            }

            Quaternion rotation = Quaternion.identity;

            if (transformRotate)
            {
                rotation = rotateFunction.Value(ValueF2);
            }

            Vector3 scale = Vector3.one;

            if (transformScale)
            {
                scale = scaleFunction.Value(ValueF2);
            }

            float tx = textureObject.width * transformAnchor.x;
            float ty = textureObject.height * transformAnchor.y;



            var matrix = Matrix4x4.identity;

            MadMatrix.Translate(ref matrix, -tx, -ty, 0);
            MadMatrix.Scale(ref matrix, scale);
            MadMatrix.Rotate(ref matrix, rotation);

            MadMatrix.Scale(ref matrix, sizeReal.x / sizeOrig.x, sizeReal.y / sizeOrig.y, 1);
//        if (positionSizeFromTransform) {
//            MadMatrix.Scale(ref matrix, transform.lossyScale);
//        }

            MadMatrix.Translate(ref matrix, screenPositionReal);
            MadMatrix.Translate(ref matrix, sizeReal.x / 2, sizeReal.y / 2, 0);
            MadMatrix.Translate(ref matrix, translate);

            GUI.matrix = matrix;

            DrawTexture(
                new Rect(
                    0, 0,
                    textureObject.width, textureObject.height),
                textureObject.texture,
                textureObject.color);

            GUI.matrix = Matrix4x4.identity;
        }
Example #3
0
    private void UpdateTransform() {
        if (transformTranslate) {
            Vector2 translate = translateFunction.Value(ValueF2);

            var bounds = objectSprite.GetBounds();
            objectSprite.transform.localPosition = new Vector2(
                translate.x * bounds.width,
                translate.y * bounds.height);
        }

        if (transformRotate) {
            Quaternion rotate = rotateFunction.Value(ValueF2);
            objectSprite.transform.localRotation = Quaternion.identity * Quaternion.Inverse(rotate);
        }

        if (transformScale) {
            Vector3 scale = scaleFunction.Value(ValueF2);
            objectSprite.transform.localScale = scale;
        }
    }