Exemplo n.º 1
0
    void Start()
    {
        camtr  = camera.GetComponent <Transform> ();
        i      = 0f;
        k      = 0f;
        moving = false;

        // postavljanje svih materijala zida na transparentne
        LevelNameHolder lnm = camPositions.transform.GetChild(curPos).gameObject.GetComponent <LevelNameHolder> ();

        if (lnm.transpWall)
        {
            int numOfMats = lnm.transpWall.GetComponent <MeshRenderer> ().materials.Length;

            lnm.transpWall.GetComponent <MeshRenderer> ().materials = makeTranspMats(lnm.transpMaterial, numOfMats);
        }

        // postavljanje intenziteta svetla i tame
        dlight = GameObject.Find("Directional Light");
        startLightIntensity = dlight.GetComponent <Light> ().intensity;
        endLightIntensity   = dlight.GetComponent <Light> ().intensity - 0.6f;

        // ako nije predjen nivo, tama
        if (!CollectManager.levelsPassed [extractNumbers(camPositions.transform.GetChild(curPos).gameObject.GetComponent <LevelNameHolder> ().levelName)])
        {
            dlight.GetComponent <Light> ().intensity = endLightIntensity;
        }
    }
Exemplo n.º 2
0
    private void prepTransp(LevelNameHolder lnh, int val)
    {
        MeshRenderer curMr = lnh.transpWall.GetComponent <MeshRenderer>();

        curMr.materials = makeTranspMats(lnh.transpMaterial, curMr.materials.Length);

        int p = 0;

        foreach (Material mat in curMr.materials)
        {
            mat.Lerp(mat, lnh.origMaterials[p], val);
            p++;
        }
    }
    // Use this for initialization
    void Start()
    {
        SaveManager.loadGame();
        int             i            = 0;
        LevelNameHolder nameHolder   = GameObject.Find("GameController").GetComponent <LevelNameHolder> ();
        GameObject      collectibles = GameObject.Find("Collectibles");

        if (allCollected [int.Parse(nameHolder.levelName)] != null)
        {
            foreach (int index in allCollected[int.Parse(nameHolder.levelName)])
            {
                collectibles.transform.GetChild(index).GetComponent <MeshRenderer> ().material     = transpMat;
                collectibles.transform.GetChild(index).GetComponent <CollectDetector> ().collected = true;
                i++;
            }
        }
    }
    void Start()
    {
        t          = GetComponent <Transform>();
        rb         = GetComponent <Rigidbody> ();
        staticNext = nextLevel;
        lastPos    = respawnY;
        print(Application.persistentDataPath);

        cm = GameObject.Find("UIManager").GetComponent <CollectManager> ();

        LevelNameHolder lnh       = GameObject.Find("GameController").GetComponent <LevelNameHolder> ();
        string          levelName = "";

        foreach (char c in lnh.levelName)
        {
            if (c >= '0' && c <= '9')
            {
                levelName += c;
            }
        }

        levelNum = int.Parse(lnh.levelName);
        SaveManager.loadGame();
    }
Exemplo n.º 5
0
    void FixedUpdate()
    {
        // klik
        if (Input.GetMouseButtonDown(0))
        {
            initClickPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
            i            = 0;
            // pusten klik
        }
        else if (Input.GetMouseButtonUp(0))
        {
            i = 0;
        }

        // sprecavanje pokretanja rotiranja dok se krece kamera
        if (!moving)
        {
            // drzi se klik
            if (Input.GetMouseButton(0))
            {
                float deltaX = initClickPos.x - Input.mousePosition.x;

                if (Mathf.Abs(deltaX) > Screen.width / 5)
                {
                    return;
                }
                if (deltaX > 0)
                {
                    if (dir == 1)
                    {
                        i   = 0f;
                        dir = -1;
                    }
                    else
                    {
                        i += deltaX;
                    }
                    initClickPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);

                    if (i > Screen.width / 6)
                    {
                        i   = 0f;
                        k   = 0f;
                        dir = -1;

                        nextPos = curPos - 1;

                        if (nextPos < 0)
                        {
                            nextPos = camPositions.transform.childCount - 1;
                        }


                        lnhCur  = camPositions.transform.GetChild(curPos).gameObject.GetComponent <LevelNameHolder> ();
                        lnhNext = camPositions.transform.GetChild(nextPos).gameObject.GetComponent <LevelNameHolder> ();

                        if (lnhNext.lockedPreview)
                        {
                            moving = true;
                            if (!CollectManager.levelsPassed [extractNumbers(lnhNext.levelName)])
                            {
                                if (CollectManager.levelsPassed [extractNumbers(lnhCur.levelName)])
                                {
                                    darken = true;
                                }
                                j = 0f;
                            }
                            else
                            {
                                if (!CollectManager.levelsPassed [extractNumbers(lnhCur.levelName)])
                                {
                                    brighten = true;
                                }
                                j = 0f;
                            }

                            oldPos = camPositions.transform.GetChild(curPos).gameObject;
                            newPos = camPositions.transform.GetChild(nextPos).gameObject;


                            selectButton.enabled = false;
                            selectButton.GetComponent <Image> ().enabled = false;
                            selectButton.transform.GetChild(0).GetComponent <Text> ().enabled = false;
                            rotateAngle = newPos.transform.rotation.y - oldPos.transform.rotation.y;

                            //lnhCur.transpWall.GetComponent<MeshRenderer>().materials = makeTranspMats(lnhCur.transpMaterial, lnhCur.transpWall.GetComponent<MeshRenderer>().materials.Length);
                            //lnhNext.transpWall.GetComponent<MeshRenderer>().materials = makeTranspMats(lnhNext.transpMaterial, lnhNext.transpWall.GetComponent<MeshRenderer>().materials.Length);

                            if (lnhCur.transpWall)
                            {
                                prepTransp(lnhCur, 0);
                            }
                            if (lnhNext.transpWall)
                            {
                                prepTransp(lnhNext, 1);
                            }

                            if (go)
                            {
                                camtr.transform.parent = null;
                                Destroy(go);
                            }
                            if (!lnhCur.notInCircle && !lnhNext.notInCircle)
                            {
                                go = new GameObject();
                                go.transform.position = Vector3.zero;
                                go.transform.rotation = Quaternion.Euler(new Vector3(0, camtr.rotation.eulerAngles.y, 0));
                                transform.parent      = go.transform;
                            }
                        }
                    }
                }
                else if (deltaX < 0)
                {
                    if (dir == -1)
                    {
                        i   = 0;
                        dir = 1;
                    }
                    else
                    {
                        i += deltaX;
                    }
                    initClickPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
                    if (i < -Screen.width / 6)
                    {
                        i = 0f;
                        k = 0f;

                        dir = 1;

                        nextPos = curPos + 1;

                        if (nextPos == camPositions.transform.childCount)
                        {
                            nextPos = 0;
                        }

                        lnhCur  = camPositions.transform.GetChild(curPos).gameObject.GetComponent <LevelNameHolder> ();
                        lnhNext = camPositions.transform.GetChild(nextPos).gameObject.GetComponent <LevelNameHolder> ();

                        if (lnhNext.lockedPreview)
                        {
                            moving = true;
                            if (!CollectManager.levelsPassed [extractNumbers(lnhNext.levelName)])
                            {
                                if (CollectManager.levelsPassed [extractNumbers(lnhCur.levelName)])
                                {
                                    darken = true;
                                    j      = 0f;
                                }
                            }
                            else
                            {
                                if (!CollectManager.levelsPassed [extractNumbers(lnhCur.levelName)])
                                {
                                    brighten = true;
                                    j        = 0f;
                                }
                            }

                            oldPos = camPositions.transform.GetChild(curPos).gameObject;
                            newPos = camPositions.transform.GetChild(nextPos).gameObject;

                            selectButton.enabled = false;
                            selectButton.GetComponent <Image> ().enabled = false;
                            selectButton.transform.GetChild(0).GetComponent <Text> ().enabled = false;
                            rotateAngle = newPos.transform.rotation.y - oldPos.transform.rotation.y;

                            // PRIPREMA ZA PROMENU TRANSPARENTNOSTI

                            /*MeshRenderer curMr = lnhCur.transpWall.GetComponent<MeshRenderer>();
                             * MeshRenderer nextMr = lnhNext.transpWall.GetComponent<MeshRenderer>();
                             * curMr.materials = makeTranspMats(lnhCur.transpMaterial, curMr.materials.Length);
                             * nextMr.materials = makeTranspMats(lnhNext.transpMaterial, nextMr.materials.Length);
                             *
                             * int p = 0;
                             * foreach(Material mat in curMr.materials)
                             * {
                             *  mat.Lerp(mat, lnhCur.origMaterials[p], 1);
                             *  p++;
                             * }
                             *
                             * p = 0;
                             * foreach (Material mat in nextMr.materials)
                             * {
                             *  mat.Lerp(mat, lnhNext.origMaterials[p], 1);
                             *  p++;
                             * }*/

                            if (lnhCur.transpWall)
                            {
                                prepTransp(lnhCur, 0);
                            }
                            if (lnhNext.transpWall)
                            {
                                prepTransp(lnhNext, 1);
                            }

                            if (go)
                            {
                                camtr.transform.parent = null;
                                camtr.rotation         = Quaternion.Euler(camtr.rotation.eulerAngles.x, go.transform.rotation.eulerAngles.y, camtr.rotation.eulerAngles.z);
                                Destroy(go);
                            }
                            if (!lnhCur.notInCircle && !lnhNext.notInCircle)
                            {
                                go = new GameObject();
                                go.transform.position = Vector3.zero;
                                go.transform.rotation = Quaternion.Euler(new Vector3(0, camtr.rotation.eulerAngles.y, 0));
                                transform.parent      = go.transform;
                            }
                        }
                    }
                }

                //initClickPos = new Vector2 (Input.mousePosition.x, Input.mousePosition.y);
            }
        }
        else
        {
            float tmp = Time.deltaTime;
            k += (tmp * rotSpeed);

            float a = camtr.rotation.eulerAngles.y;
            float b = newPos.transform.rotation.eulerAngles.y;



            float r = sub2angles(a, b);

            float p = sub2angles(oldPos.transform.rotation.eulerAngles.y, newPos.transform.rotation.eulerAngles.y);

            float offset = movedByOffset ? -0.5f : 0;

            Vector3 rotA = new Vector3(0, camtr.rotation.eulerAngles.y, 0);
            Vector3 rotB = new Vector3(0, newPos.transform.rotation.eulerAngles.y, 0);

            int numChild = 0;
            foreach (LevelNameHolder lnh in camPositions.GetComponentsInChildren <LevelNameHolder>())
            {
                if (lnh.lockedPreview)
                {
                    numChild++;
                }
            }
            // OVDE SE DESAVA POMERANJE
            if (k < 1)
            {
                LevelNameHolder lnmOld = camPositions.transform.GetChild(curPos).gameObject.GetComponent <LevelNameHolder> ();
                LevelNameHolder lnmNew = camPositions.transform.GetChild(nextPos).gameObject.GetComponent <LevelNameHolder> ();
                if (sub2angles(camPositions.transform.GetChild(curPos).rotation.eulerAngles.y, camPositions.transform.GetChild(nextPos).rotation.eulerAngles.y) == 180)
                {
                    go.transform.rotation = Quaternion.Euler(0, Mathf.Lerp(oldPos.transform.rotation.eulerAngles.y, oldPos.transform.rotation.eulerAngles.y + dir * 180, k), 0);
                }
                else
                {
                    if (lnmOld.notInCircle || lnmNew.notInCircle)
                    {
                        camtr.position = Vector3.Lerp(oldPos.transform.position, newPos.transform.position, k);
                        camtr.rotation = Quaternion.Euler(camtr.rotation.eulerAngles.x, Quaternion.Slerp(oldPos.transform.rotation, newPos.transform.rotation, k).eulerAngles.y, camtr.rotation.eulerAngles.z);
                    }
                    else
                    {
                        go.transform.rotation = Quaternion.Euler(0, Quaternion.Slerp(oldPos.transform.rotation, newPos.transform.rotation, k).eulerAngles.y, 0);
                    }
                }

                if (lnmOld.transpWall != null)
                {
                    print("old has transpWall");
                    MeshRenderer mr      = lnmNew.transpWall.GetComponent <MeshRenderer> ();
                    Material[]   mats    = new Material[mr.materials.Length];
                    MeshRenderer mrOld   = lnmOld.transpWall.GetComponent <MeshRenderer>();
                    Material[]   oldMats = new Material[mrOld.materials.Length];

                    for (int j = 0; j < mr.materials.Length; j++)
                    {
                        mr.materials[j].Lerp(lnmNew.origMaterials[j], lnmNew.transpMaterial, k);
                    }

                    for (int j = 0; j < mrOld.materials.Length; j++)
                    {
                        mrOld.materials[j].Lerp(lnmOld.transpMaterial, lnmOld.origMaterials[j], k);
                    }
                }
            }
            else
            {
                moving = false;

                i = 0f;
                k = 0f;

                if (numChild == 2)
                {
                    go.transform.rotation = Quaternion.Euler(go.transform.rotation.eulerAngles.x, oldPos.transform.rotation.eulerAngles.y + dir * 180, go.transform.rotation.eulerAngles.z);
                }                 //else

                //go.transform.rotation = Quaternion.Euler(go.transform.rotation.eulerAngles.x, newPos.transform.rotation.eulerAngles.y, go.transform.rotation.eulerAngles.z);

                initClickPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);



                if (CollectManager.levelsPassed [extractNumbers(camPositions.transform.GetChild(nextPos).gameObject.GetComponent <LevelNameHolder> ().levelName)])
                {
                    selectButton.enabled = true;
                    selectButton.GetComponent <Image> ().enabled = true;
                    selectButton.transform.GetChild(0).GetComponent <Text> ().enabled = true;
                }


                curPos = nextPos;
            }
        }

        if (darken)
        {
            j += Time.deltaTime * 1.25f;
            if (j < 1)
            {
                dlight.GetComponent <Light> ().intensity = Mathf.Lerp(startLightIntensity, endLightIntensity, j);
            }
            else
            {
                darken = false;
                j      = 0f;
            }
        }
        else if (brighten)
        {
            j += Time.deltaTime * 1.25f;
            if (j < 1)
            {
                dlight.GetComponent <Light> ().intensity = Mathf.Lerp(endLightIntensity, startLightIntensity, j);
            }
            else
            {
                brighten = false;
                j        = 0f;
            }
        }
    }