// Start is called before the first frame update
    void Start()
    {
        rb   = GetComponent <Rigidbody>();
        tail = GetComponent <TailMovement>();

        rb.velocity = Vector3.forward * Speed;
    }
Example #2
0
    // Use this for initialization
    void Start()
    {
        tile_list.Clear();
        IsFirst = true;

        for (int i = 0; i < initial_tiles;)
        {
            starting_tiles = Random.Range(0, tile_prefabs.Length);

            if (i == 0)
            {
                if (PlayerPrefs.GetInt("BestScore") >= 1)
                {
                    if (tile_prefabs[starting_tiles].tag == "novice")
                    {
                        tile_list.Add(tile_prefabs[starting_tiles]);
                        tile_list[i].SetActive(true);
                        i++;
                        tile_counter++;
                    }
                }

                else
                {
                    if (tile_prefabs[starting_tiles].tag == "start_tile")
                    {
                        tile_list.Add(tile_prefabs[starting_tiles]);
                        tile_list[i].SetActive(true);
                        i++;
                        tile_counter++;
                    }
                }
            }

            else
            {
                if (tile_list.Contains(tile_prefabs[starting_tiles]))
                {
                    //Debug.Log("The GameObject is: " + tile_prefabs[starting_tiles]);
                }

                else
                {
                    if (tile_prefabs[starting_tiles].tag == "novice")
                    {
                        tile_list.Add(tile_prefabs[starting_tiles]);
                        tile_list[i].SetActive(true);
                    }

                    else
                    {
                        continue;
                    }

                    if (i >= 1)
                    {
                        previous_tile_size = tile_list[i - 1].GetComponent <SpriteRenderer>().bounds.size;
                        current_tile_size  = tile_list[i].GetComponent <SpriteRenderer>().bounds.size;
                        offset_tile_size   = new Vector3(0, Mathf.Abs(current_tile_size.y - previous_tile_size.y), 0);

                        if (previous_tile_size.y > current_tile_size.y)
                        {
                            tile_list[i].transform.position = new Vector3(0, tile_list[i - 1].transform.position.y + previous_tile_size.y - (offset_tile_size.y / 2), 0);
                        }

                        else if (previous_tile_size.y < current_tile_size.y)
                        {
                            tile_list[i].transform.position = new Vector3(0, tile_list[i - 1].transform.position.y + current_tile_size.y - (offset_tile_size.y / 2), 0);
                        }

                        else
                        {
                            tile_list[i].transform.position = new Vector3(0, tile_list[i - 1].transform.position.y + current_tile_size.y, 0);
                        }
                    }

                    //Debug.Log("Position is: " + tile_list[i].transform.position.y);
                    //Debug.Log("previous_tile_size is: " + previous_tile_size.y);
                    i++;
                    tile_counter++;
                }
            }
        }

        tile_list.Reverse();
        tile_collider         = tile_list[3].GetComponent <BoxCollider2D>();
        tile_collider.enabled = false;

        string first_tile = tile_list[3].gameObject.tag;

        // If first tile is not a start tile then start with tails
        if (first_tile != "start_tile")
        {
            UIManager.setGrowCounterState(false);
            GameObject temp_2 = GameObject.Find("tail_movement_script");
            if (temp_2 != null)
            {
                tail_movement_script = temp_2.GetComponent <TailMovement>();
            }
            tail_movement_script.startWithTails();
        }
    }