コード例 #1
0
    void OnChangeBackgroundSide(string backgroundName)
    {
        int i = container.childCount;

        while (i > 0)
        {
            Destroy(container.GetChild(i - 1).gameObject);
            i--;
        }
        all.Clear();

        for (int a = 0; a < 3; a++)
        {
            BackgroundSideData bsd = Instantiate(Resources.Load("fondos/" + backgroundName, typeof(BackgroundSideData))) as BackgroundSideData;
            all.Add(bsd);
        }

        z_length = 0;
        foreach (BackgroundSideData data in all)
        {
            z_length   += data.z_length;
            data.offset = z_length;
            AddNewBgSide(data);
        }
    }
コード例 #2
0
    void AddNewBgSide(BackgroundSideData newGO)
    {
        BackgroundSideData go = Instantiate(newGO);

        go.transform.SetParent(container);
        go.transform.localPosition = new Vector3(0, 0, z_length);
        go.transform.localScale    = Vector3.one;
        all.Add(go);
    }
コード例 #3
0
 bool IsAnActiveBackgroundSide(BackgroundSideData data)
 {
     foreach (BackgroundSideData d in allBackgroundSides)
     {
         if (d.backgroundSideName == data.backgroundSideName)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
    void Update()
    {
        if (!isMoving)
        {
            return;
        }
        if (!charactersManager)
        {
            return;
        }
        float charactersDistance = charactersManager.getDistance();

        if (charactersDistance == lastCharactersDistance)
        {
            return;
        }

        lastCharactersDistance = charactersDistance;
        pos_z += (Time.deltaTime * speed);
        BackgroundSideData toDelete = null;

        foreach (BackgroundSideData go in all)
        {
            Vector3 pos = go.transform.localPosition;

            if (pos.z < charactersDistance - offset)
            {
                if (!IsAnActiveBackgroundSide(go))
                {
                    toDelete = go;
                }
                else
                {
                    go.offset += z_length;
                }
            }

            pos.z = charactersDistance + go.offset - pos_z;
            go.transform.localPosition = pos;
        }
        if (toDelete != null)
        {
            all.Remove(toDelete);
            Destroy(toDelete.gameObject);
        }
    }
コード例 #5
0
    void Update()
    {
        if (!isMoving)
        {
            return;
        }
        if (!charactersManager)
        {
            return;
        }
        float charactersDistance = charactersManager.getDistance();

        if (videoGameBossPanel != null)
        {
            videoGameBossPanel.transform.localPosition = new Vector3(0, 0, charactersDistance);
        }

        if (charactersDistance == lastCharactersDistance)
        {
            return;
        }

        lastCharactersDistance = charactersDistance;
        pos_z += (Time.deltaTime * speed);
        BackgroundSideData toDelete = null;

        foreach (BackgroundSideData go in all)
        {
            Vector3 pos = go.transform.localPosition;

            if (pos.z < charactersDistance - offset)
            {
                go.offset += z_length;
            }


            pos.z = charactersDistance + go.offset - pos_z;
            go.transform.localPosition = pos;
        }
    }
コード例 #6
0
 void AddNewBgSide(BackgroundSideData newGO)
 {
     newGO.transform.SetParent(container);
     newGO.transform.localPosition = new Vector3(0, 0, z_length);
     newGO.transform.localScale    = Vector3.one;
 }