Ejemplo n.º 1
0
    void Awake()
    {
        data = gameObject.AddComponent<BuildrData>();
        data.Init();
        constraints = ScriptableObject.CreateInstance<BuildrRuntimeConstraints>();

    }
Ejemplo n.º 2
0
    public static void Generate(BuildrData data, BuildrRuntimeConstraints _constraints)
    {
        constraints = _constraints;
        uint seed = (uint)(constraints.useSeed ? constraints.seed : Random.Range(0, int.MaxValue));

        constraints.seed = (int)seed;//reassign value incase it's changed
        constraints.rgen = new RandomGen(seed);
        RandomGen rgen = constraints.rgen;

        //Debug.Log("Generate Seed "+seed);

        data.ResetData(constraints.constrainPlanByPlan);

        if (!constraints.constrainPlanByPlan)
        {
            GenerateFloorPlan(data);
        }
        else
        {
            data.plan = constraints.plan;
        }

        data.floorHeight = rgen.OutputRange(constraints.minimumFloorHeight, constraints.maximumFloorHeight);
        float minBuildingSize = (constraints.constrainHeight) ? constraints.minimumHeight : BuildrGenerateConstraints.MINIMUM_BUILDING_HEIGHT;
        float maxBuildingSize = (constraints.constrainHeight) ? constraints.maximumHeight : BuildrGenerateConstraints.MAXIMUM_BUILDING_HEIGHT;

        foreach (BuildrVolume volume in data.plan.volumes)
        {
            volume.height         = rgen.OutputRange(minBuildingSize, maxBuildingSize);
            volume.numberOfFloors = Mathf.FloorToInt(volume.height / data.floorHeight);
        }

        //texture generation
        GetTextures(data);

        //facade generation
        GenerateFacades(data);

        //roof generation
        GenerateRoof(data);

        //building generation

        //build/optimise
    }
Ejemplo n.º 3
0
 void Awake()
 {
     data = gameObject.AddComponent <BuildrData>();
     data.Init();
     constraints = ScriptableObject.CreateInstance <BuildrRuntimeConstraints>();
 }