コード例 #1
0
    internal void SpawnBaddie(EnemyFunction.EnemyID id, Vector3?spawnPos = null) //Quick setup for objects
    {
        GameObject GridPieceTemp = Grid[UnityEngine.Random.Range(0, 21), 22];    //one less than the grid size

        spawnPos = spawnPos ?? new Vector3(GridPieceTemp.transform.position.x + (GridPieceTemp.GetComponent <Renderer>().bounds.size.x / 2), GridPieceTemp.transform.position.y, GridPieceTemp.transform.position.z + (GridPieceTemp.GetComponent <Renderer>().bounds.size.y / 2));
        GameObject tempMesh = GameObject.CreatePrimitive(PrimitiveType.Cube); //grab a cube mesh
        GameObject Enemy    = GameManager.AssignComponents(id.ToString(), tempMesh.GetComponent <MeshFilter>().mesh, new Material(Shader.Find("Unlit/Color")), true);

        Destroy(tempMesh);
        Enemy.transform.position = (Vector3)spawnPos + Vector3.up;
        Enemy.transform.SetParent(gameObject.transform); //Orderliness
        Enemy.AddComponent <EnemyFunction>();
        Enemy.GetComponent <EnemyFunction>().EnemyType(id);
        AudioSource.PlayClipAtPoint(spawnsound, GameObject.Find("Main Camera").transform.position, 0.02f);
        GameManager.PushToEventLog("Spawning " + Enemy.name);
    }
コード例 #2
0
    private EnemyFunction.EnemyID[] GenerateStage()
    {
        LevelDifficulty = (int)((5 * Mathf.Sin((2 * Mathf.PI * OnStage) / -3)) + (5 * OnStage) + 3); //kwikmaffs
        int totalLevelSet = 0;
        List <EnemyFunction.EnemyID> temp = new List <EnemyFunction.EnemyID>();

        while (totalLevelSet < LevelDifficulty) //build level selecing enemies on the fly to fufill the levels difficulty cap
        {
            int tempint = UnityEngine.Random.Range(1, 12);
            switch (tempint)
            {
            default:
                temp.Add(EnemyFunction.EnemyID.Default);
                break;

            case 2:
                temp.Add(EnemyFunction.EnemyID.Charger);
                break;

            case 3:
                temp.Add(EnemyFunction.EnemyID.Teleport);
                break;

            case 4:
                temp.Add(EnemyFunction.EnemyID.Regenerator);
                break;

            case 5:
                temp.Add(EnemyFunction.EnemyID.Shielded);
                break;

            case 6:
                temp.Add(EnemyFunction.EnemyID.Phasing);
                break;

            case 9:
                temp.Add(EnemyFunction.EnemyID.Mother);
                break;

            case 8:
                temp.Add(EnemyFunction.EnemyID.Knight);
                break;

            case 10:
                temp.Add(EnemyFunction.EnemyID.Undead);
                break;

            case 11:
                temp.Add(EnemyFunction.EnemyID.Assasin);
                break;

            case 7:
                temp.Add(EnemyFunction.EnemyID.Support);
                break;
            }
            totalLevelSet += tempint;
        }
        EnemyFunction.EnemyID[] temparray = new EnemyFunction.EnemyID[temp.Count];
        for (int i = 0; i < temp.Count; i++)
        {
            temparray[i] = temp[i];
        }
        return(temparray);
        //code for spawning specific stages, tutorial stage? or just bugtesting
        //EnemyFunction.EnemyID[] Stage0 = new EnemyFunction.EnemyID[] {EnemyFunction.EnemyID.Assasin,EnemyFunction.EnemyID.Bonus, EnemyFunction.EnemyID.Boss, EnemyFunction.EnemyID.Charger, EnemyFunction.EnemyID.Default, EnemyFunction.EnemyID.Knight, EnemyFunction.EnemyID.Mother, EnemyFunction.EnemyID.Phasing, EnemyFunction.EnemyID.Regenerator, EnemyFunction.EnemyID.Shielded, EnemyFunction.EnemyID.Teleport, EnemyFunction.EnemyID.Undead}; Stages.Add(Stage0); //Planned Stages
    }