Beispiel #1
0
    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();
    }
Beispiel #2
0
    /* 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 );
    }
Beispiel #3
0
    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);
    }