private void OnCollisionEnter(Collision other)
 {
     CubeCut.Cut_x(other.transform, transform.position);
 }
 private void OnCollisionEnter(Collision collision)
 {
     CubeCut.Cut(collision.transform, transform.position);
 }
Exemple #3
0
    // Update is called once per frame
    void Update()
    {
        PlayerPrefs.SetInt("Score", hss);

        highScore.text = hss.ToString();

        if (/*Input.GetMouseButtonDown(0) || */ (Input.touchCount > 0 && Input.GetTouch(0).phase.Equals(TouchPhase.Began)))
        {
            if (k == 1)  ////if touch on game over
            {
                SceneManager.LoadScene("SampleScene");
            }
            else   ////////if game is not over



            {
                if (_x) /////cut on x
                {
                    if (block.transform.position.x - block.transform.localScale.x / 2 < x_min)
                    {
                        if (CubeCut.Cut_z(block.transform, new Vector3(x_min, block.transform.position.y, block.transform.position.z)))
                        {
                            GameObject rr = GameObject.Find("right");
                            updateDims(rr);
                            block = Instantiate(rr) as GameObject;
                            Destroy(rr.GetComponent <Rigidbody>());
                            block.GetComponent <Rigidbody>().useGravity = false;
                            rr.name = "block";
                            Destroy(GameObject.Find("left").GetComponent <Collider>());
                            GameObject.Find("left").name = "block";
                            block.name = "block";
                        }
                        else
                        {
                            gameOver();
                            k = 1;
                        }
                    }

                    else if (block.transform.position.x + block.transform.localScale.x / 2 > x_max)
                    {
                        if (CubeCut.Cut_z(block.transform, new Vector3(x_max, block.transform.position.y, block.transform.position.z)))
                        {
                            GameObject rr = GameObject.Find("left");
                            updateDims(rr);
                            block = Instantiate(rr) as GameObject;
                            Destroy(rr.GetComponent <Rigidbody>());
                            block.GetComponent <Rigidbody>().useGravity = false;
                            rr.name = "block";
                            Destroy(GameObject.Find("right").GetComponent <Collider>());
                            GameObject.Find("right").name = "block";
                            block.name = "block";
                        }
                        else
                        {
                            gameOver();
                            k = 1;
                        }
                    }


                    if (k == 0)
                    {
                        block.transform.Translate(0, 0.5f, 0);
                        block.transform.position = new Vector3(block.transform.position.x, block.transform.position.y, 5.5f);
                    }
                }
                else ///////// on z
                {
                    if (block.transform.position.z - block.transform.localScale.z / 2 < z_min)
                    {
                        if (CubeCut.Cut_x(block.transform, new Vector3(block.transform.position.x, block.transform.position.y, z_min)))
                        {
                            GameObject rr = GameObject.Find("right");
                            updateDims(rr);
                            block = Instantiate(rr) as GameObject;
                            Destroy(rr.GetComponent <Rigidbody>());
                            block.GetComponent <Rigidbody>().useGravity = false;
                            rr.name = "block";
                            Destroy(GameObject.Find("left").GetComponent <Collider>());
                            GameObject.Find("left").name = "block";
                            block.name = "block";
                        }
                        else
                        {
                            gameOver();
                            k = 1;
                        }
                    }

                    else if (block.transform.position.z + block.transform.localScale.z / 2 > z_max)
                    {
                        if (CubeCut.Cut_x(block.transform, new Vector3(block.transform.position.x, block.transform.position.y, z_max)))
                        {
                            GameObject rr = GameObject.Find("left");
                            updateDims(rr);
                            block = Instantiate(rr) as GameObject;
                            Destroy(rr.GetComponent <Rigidbody>());
                            block.GetComponent <Rigidbody>().useGravity = false;
                            rr.name = "block";
                            Destroy(GameObject.Find("right").GetComponent <Collider>());
                            GameObject.Find("right").name = "block";
                            block.name = "block";
                        }
                        else
                        {
                            gameOver();
                            k = 1;
                        }
                    }

                    if (k == 0)
                    {
                        block.transform.Translate(0, 0.5f, 0);
                        block.transform.position = new Vector3(5.5f, block.transform.position.y, block.transform.position.z);
                    }
                }


                if (k == 0)
                {
                    _block_count++;
                    score.text = _block_count.ToString();

                    block.GetComponent <Renderer>().material.SetColor("_Color", colors[_block_count % 4]);



                    _camera.transform.Translate(0, 0.5f, 0, Space.World);
                    GameObject.Find("Text").transform.Translate(0, 0.5f, 0, Space.World);
                    GameObject.Find("goo").transform.Translate(0, 0.5f, 0, Space.World);
                    GameObject.Find("Best").transform.Translate(0, 0.5f, 0, Space.World);
                    GameObject.Find("HighScore").transform.Translate(0, 0.5f, 0, Space.World);


                    _x = !_x;
                }
            }
        }

        /////////////////////////////////////////
        // handled touch ends here /////////



        /////////////////////////


        if (k == 0)
        {
            if (_x)
            {
                if (_inc && block.transform.position.x < 5.5f)
                {
                    block.transform.Translate(0.1f, 0, 0);
                }
                else if (!_inc && block.transform.position.x > -5.5f)
                {
                    block.transform.Translate(-0.1f, 0, 0);
                }


                if (block.transform.position.x >= 5.5f || block.transform.position.x <= -5.5f)
                {
                    _inc = !_inc;
                }
            }


            else
            {
                if (_inc && block.transform.position.z < 5.5f)
                {
                    block.transform.Translate(0, 0, 0.1f);
                }
                else if (!_inc && block.transform.position.z > -5.5f)
                {
                    block.transform.Translate(0, 0, -0.1f);
                }


                if (block.transform.position.z >= 5.5f || block.transform.position.z <= -5.5f)
                {
                    _inc = !_inc;
                }
            }
        }
    }