示例#1
0
    void Spawn()
    {
        // Add some code to break from function
        if (tracker >= gubcount)
        {
            CancelInvoke();
            prizeScript = GetComponent <SpawnPrize>();
        }

        // Generate and apply a random color to the game objects

        float red   = Random.Range(0.0f, 1.0f);
        float green = Random.Range(0.0f, 1.0f);
        float blue  = Random.Range(0.0f, 1.0f);

        while (System.Math.Abs(red - prizeScript.R) < colorDifference)
        {
            red = Random.Range(0.0f, 1.0f);
        }
        while (System.Math.Abs(green - prizeScript.G) < colorDifference)
        {
            green = Random.Range(0.0f, 1.0f);
        }
        while (System.Math.Abs(blue - prizeScript.B) < colorDifference)
        {
            blue = Random.Range(0.0f, 1.0f);
        }

        Color        randomColor        = new Color(red, green, blue, 1);
        MeshRenderer gameObjectRenderer = block.GetComponent <MeshRenderer>();

        Material newMaterial = new Material(Shader.Find("Diffuse"));

        newMaterial.color           = randomColor;
        gameObjectRenderer.material = newMaterial;

        // Special case for level 4 where gubs should spawn on four levels
        if (Application.loadedLevelName.Equals("Level 4"))
        {
            int     floor    = Random.Range(1, 5);
            Vector3 position = new Vector3(Random.Range(-min_x, max_x), 10 + (10 * (floor - 1)), Random.Range(-min_z, max_z));

            // Create an instance of the blocks prefab at a random point with random rotation
            Instantiate(block, position, Random.rotation);

            tracker++;
        }
        else
        {
            Vector3 position = new Vector3(Random.Range(-min_x, max_x), 10, Random.Range(-min_z, max_z));

            // Create an instance of the blocks prefab at a random point with random rotation
            Instantiate(block, position, Random.rotation);

            tracker++;
        }
    }
示例#2
0
    void Spawn()
    {
        // Add some code to break from function
        if (tracker >= gubcount)
        {
            CancelInvoke();
            prizeScript = GetComponent <SpawnPrize>();
        }

        // Generate and apply a random color to the game objects

        if ((tracker % 2 == 0 || prizeScript.R - colorDifferenceMin < 0) && prizeScript.R + colorDifferenceMin < 1.0)
        {
            red = prizeScript.R + Random.Range(colorDifferenceMin, colorDifferenceMax);
        }
        else
        {
            red = prizeScript.R - Random.Range(colorDifferenceMin, colorDifferenceMax);
        }

        if ((tracker % 2 == 0 || prizeScript.G - colorDifferenceMin < 0) && prizeScript.R + colorDifferenceMin < 1.0)
        {
            green = prizeScript.G + Random.Range(colorDifferenceMin, colorDifferenceMax);
        }
        else
        {
            green = prizeScript.G - Random.Range(colorDifferenceMin, colorDifferenceMax);
        }

        if ((tracker % 2 == 0 || prizeScript.B - colorDifferenceMin < 0) && prizeScript.R + colorDifferenceMin < 1.0)
        {
            blue = prizeScript.B + Random.Range(colorDifferenceMin, colorDifferenceMax);
        }
        else
        {
            blue = prizeScript.B - Random.Range(colorDifferenceMin, colorDifferenceMax);
        }

        Color        randomColor        = new Color(red, green, blue, 1);
        MeshRenderer gameObjectRenderer = block.GetComponent <MeshRenderer>();

        Material newMaterial = new Material(Shader.Find("Diffuse"));

        newMaterial.color           = randomColor;
        gameObjectRenderer.material = newMaterial;

        Vector3 position = new Vector3(Random.Range(-min_x, max_x), 10, Random.Range(-min_z, max_z));

        // Create an instance of the blocks prefab at a random point with random rotation
        Instantiate(block, position, Random.rotation);

        tracker++;
    }