public void DoResetScroll() { if (p_pCameraMain == null) { p_pCameraMain = Camera.main; } // pCameraMain.orthographicSize는 pixelHeight와 같으면 Pixel Per Unit은 1이 된다. // PixelHeight와 pCameraMain.orthographicSize의 비율에 pCameraMain.pixelWidth을 곱하면 카메라의 영역이 나온다. _fCameraWidth = (p_pCameraMain.pixelWidth * (p_pCameraMain.orthographicSize / p_pCameraMain.pixelHeight) * 2f); IEnumerator <CScrollObject> pEnumerator = _listScrollObject_Instance.GetEnumerator(); while (pEnumerator.MoveNext()) { CManagerPooling <string, CScrollObject> .instance.DoPush(pEnumerator.Current); } _listScrollObject_Instance.Clear(); _pScrollObject_Old = null; _pScrollObject_Last = null; Vector3 vecCurrentPos = transform.position; vecCurrentPos.x = _fOriginPosX; transform.position = vecCurrentPos; ProcGenerate_ScrollObject(); }
/* private - Other[Find, Calculate] Func * 찾기, 계산등 단순 로직(Simpe logic) */ private void ProcUpdate_ScrollObject_Old() { _pScrollObject_Old = _listScrollObject_Instance.First.Value; _fObjectWidth_Old = _pScrollObject_Old.p_fWidth * 0.5f; // Debug.Log( "ProcUpdate_ScrollObject_Old : " + _pScrollObject_Old.name, _pScrollObject_Old ); }
private void ProcPlacement_ScrollObject(CScrollObject pObjectRandom) { CScrollObject pObjectRandomNew = CManagerPooling <string, CScrollObject> .instance.DoPop(pObjectRandom.p_strName); pObjectRandomNew.transform.SetParent(transform); Vector3 vecPos = pObjectRandom.transform.position; if (_pScrollObject_Last != null) { vecPos.x = _pScrollObject_Last.transform.position.x + _fObjectWidth_Last + (pObjectRandomNew.p_fWidth * 0.5f) + p_fGapOffset; } else { vecPos.x = -((pObjectRandomNew.p_fWidth * 0.5f) + p_fGapOffset) + p_fStartPosOffset; } // Debug.Log( "ProcGenerate_ScrollObject vecPos : " + vecPos + pObjectRandomNew.name, pObjectRandomNew ); pObjectRandomNew.transform.position = vecPos; _fObjectWidth_Last = pObjectRandomNew.p_fWidth * 0.5f; _pScrollObject_Last = pObjectRandomNew; _listScrollObject_Instance.AddLast(pObjectRandomNew); if (_pScrollObject_Old == null) { ProcUpdate_ScrollObject_Old(); } }
// ========================================================================== // #region Private /* private - [Proc] Function * 로직을 처리(Process Local logic) */ private void ProcGenerate_ScrollObject() { CScrollObject pObjectRandom = CManagerRandomTable <CScrollObject> .instance[GetInstanceID()].GetRandomItem(); ProcPlacement_ScrollObject(pObjectRandom); }
public void DoGenerate_ScrollObject(string strObjectName) { CScrollObject pObjectRandom = CManagerRandomTable <CScrollObject> .instance[GetInstanceID()].GetItem(strObjectName); ProcPlacement_ScrollObject(pObjectRandom); }