Пример #1
0
    // procedurally generates enemies that differ in strength
    void proceduralGeneration(GameObject creature)
    {
        // random roulette selector [0.0, 1.0]
        float target = Random.value;
        // probability for instantiating the overpowered enemy
        float limit = 0.15f;
        // get the parameters of the enemy
        EnemyFollowing enemyParams = creature.GetComponent <EnemyFollowing>();

        if (target < limit)
        {
            // black (overpowered enemy)
            creature.transform.GetComponent <Renderer>().material.color = new Color(0, 0, 0);
            enemyParams.Enemylife = 100;
            enemyParams.moveSpeed = 20;
            enemyParams.Damage    = 9001;
        }
        else
        {
            // red (weak enemy)
            creature.transform.GetComponent <Renderer>().material.color = new Color(1, 0, 0);
            enemyParams.Enemylife = 1;
            enemyParams.moveSpeed = 1;
            enemyParams.Damage    = 0.1f;
        }
    }
Пример #2
0
    void proceduralEnemyGeneration(GameObject creature)
    {
        float color = Random.value;

        EnemyFollowing enemyParams = creature.GetComponent <EnemyFollowing>();

        renders = creature.GetComponentsInChildren <Renderer> ();
        foreach (Renderer rend in renders)
        {
            rend.material.color = new Color(1.0f - color, color, 1.0f / color);
        }
        enemyParams.Enemylife = (int)(9 * color + 1);  // [1, 10]
        enemyParams.moveSpeed = (int)(12 * color + 2); // [2, 10]
        enemyParams.Damage    = 19.9f * color + 0.1f;  // [0, 10]
    }
Пример #3
0
 // Start is called before the first frame update
 void Start()
 {
     Physics2D.queriesStartInColliders = false;
     enemyscript    = transform.parent.gameObject.GetComponent <Enemy>();
     enemyFollowing = transform.parent.gameObject.GetComponent <EnemyFollowing>();
 }