protected override void Start()
        {
            UIPositionStorer foregroundStorer = AddPositionStorer(m_AffectedTransform.gameObject);

            m_TargetPosition  = m_TargetTransform.position;
            m_InitialPosition = foregroundStorer.StoredPosition;

            m_AffectedTransform.gameObject.SetActive(true);
        }
예제 #2
0
        protected UIPositionStorer AddPositionStorer(GameObject o)
        {
            UIPositionStorer storer = o.GetComponent <UIPositionStorer>();

            if (storer == null)
            {
                storer = o.AddComponent <UIPositionStorer>();
                storer.StoredPosition = o.transform.position;
            }

            return(storer);
        }
예제 #3
0
        protected override void Start()
        {
            RectTransform foregroundTransform = m_AffectedTransform;
            Canvas        canvas          = foregroundTransform.GetComponentInParent <Canvas>();
            RectTransform canvasTransform = (RectTransform)canvas.transform;
            float         canvasWidth     = canvasTransform.rect.size.x * canvasTransform.lossyScale.x;
            float         canvasHeight    = canvasTransform.rect.size.y * canvasTransform.lossyScale.y;

            UIPositionStorer foregroundStorer = AddPositionStorer(foregroundTransform.gameObject);

            m_TargetPosition  = foregroundStorer.StoredPosition;
            m_InitialPosition = foregroundTransform.position;

            if (Mathf.Abs(m_Direction.x) > 0)
            {
                float changeX = 0;
                if (canvas.worldCamera == null)
                {
                    changeX = canvasWidth * 0.5f - m_Direction.x * (canvasWidth * 0.5f + foregroundTransform.rect.size.x * foregroundTransform.lossyScale.x * (m_Direction.x < 0 ? foregroundTransform.pivot.x : 1 - foregroundTransform.pivot.x));
                }
                else
                {
                    // TODO
                }

                m_InitialPosition.x = changeX;
                m_InitialPosition.y = foregroundStorer.StoredPosition.y;
            }
            else if (Mathf.Abs(m_Direction.y) > 0)
            {
                float changeY = 0;
                if (canvas.worldCamera == null)
                {
                    changeY = canvasHeight * 0.5f - m_Direction.y * (canvasHeight * 0.5f + foregroundTransform.rect.size.y * foregroundTransform.lossyScale.y * (m_Direction.y < 0 ? foregroundTransform.pivot.y : 1 - foregroundTransform.pivot.y));
                }
                else
                {
                    // TODO
                }

                m_InitialPosition.y = changeY;
                m_InitialPosition.x = foregroundStorer.StoredPosition.x;
            }

            if (!m_Reverse)
            {
                foregroundTransform.gameObject.SetActive(true);
            }
        }