protected override void Start() { UIPositionStorer foregroundStorer = AddPositionStorer(m_AffectedTransform.gameObject); m_TargetPosition = m_TargetTransform.position; m_InitialPosition = foregroundStorer.StoredPosition; m_AffectedTransform.gameObject.SetActive(true); }
protected UIPositionStorer AddPositionStorer(GameObject o) { UIPositionStorer storer = o.GetComponent <UIPositionStorer>(); if (storer == null) { storer = o.AddComponent <UIPositionStorer>(); storer.StoredPosition = o.transform.position; } return(storer); }
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); } }