Пример #1
0
    void LateUpdate()
    {
        FlowerController fc = flowerBox.GetComponent <FlowerController>();

        if (fc.IsGrowAnimationDone)
        {
            // get flower size, scaled
            // multiply with sqrt 2 for 45 degree situation
            Vector3 flowerScale = flowerBox.transform.localScale;
            float   flowerSize  = flowerScale.x * fc.FlowerBound.size.x;
            flowerSize *= (float)Math.Sqrt(2);

            // get placeholder length
            PlaceholderResizer pr = gameObject.GetComponent <PlaceholderResizer>();
            float length          = pr.length;

            // update edit canvas position
            if (editCanvas.activeSelf)
            {
                RectTransform tf = editCanvas.GetComponent <RectTransform>();
                editCanvas.transform.localPosition = new Vector3(Math.Max(length, flowerSize) / 2 + tf.rect.width / 2 + 0.05f,
                                                                 tf.rect.height / 2, 0);
            }

            // update color canvas position
            if (colorCanvas.activeSelf)
            {
                RectTransform tf = colorCanvas.GetComponent <RectTransform>();
                colorCanvas.transform.localPosition = new Vector3(-Math.Max(length, flowerSize) / 2 - tf.rect.width / 2 - 0.05f,
                                                                  tf.rect.height / 2, 0);
            }
        }
    }
Пример #2
0
    // Use this for initialization
    void Start()
    {
        // get placeholder size
        PlaceholderResizer pr = gameObject.GetComponent <PlaceholderResizer>();
        float length          = pr.length;
        float width           = pr.width;

        // get grow button bound
        Collider growCollider = growButton.GetComponent <Collider>();
        Bounds   growBound    = growCollider.bounds;

        // calculate final scale and scaled button size
        Vector3 curScale = growButton.transform.localScale;
        float   sideLen  = growBound.size.x / curScale.x;
        float   sx       = length / sideLen;
        float   sy       = sx / 2;
        float   scaledVerticalSideLen = sideLen * sy;

        // place grow button and set scale
        growButton.transform.localPosition = new Vector3(0, scaledVerticalSideLen / 2, width / 2 + growBound.size.z / 2 + 0.02f);
        growButton.transform.localScale    = new Vector3(sx, sy, 1);

        // disable grow button
        growCollider.enabled = false;
        growButton.SetActive(false);

        // hide something
        editCanvas.SetActive(false);
        colorCanvas.SetActive(false);

        // hide flower
        flowerBox.SetActive(false);
    }