Ejemplo n.º 1
0
    private void Generate()
    {
        controller = new BoidController();

        // Set swarm size based on world size with random variance
        controller.swarmCount = Mathf.FloorToInt(Mathf.Lerp(
                                                     100f + (100f * (Config.WorldSize - 6f) * 0.5f),
                                                     300f + (300f * (Config.WorldSize - 6f) * 0.5f),
                                                     Mathf.Pow(Random.value, 2)));

        float size = Config.WorldSize;

        if (size < 12)
        {
            size = 12;
        }
        controller.worldSphere = size * 4f;
        controller.innerSphere = controller.worldSphere - size * 1.25f;

        // A single mesh is shared by all boids
        var mesh = controller.Generate(Tile.Brighten(Tile.Colors[0], 0.8f), Tile.Colors[32]);

        if (meshFilter != null)
        {
            meshFilter.mesh = mesh;

            // Update the mesh bounds so that it becomes visible to the player
            meshFilter.sharedMesh.bounds = new Bounds(Vector3.zero, Vector3.one * 500f);
        }
    }
Ejemplo n.º 2
0
        private void Generate()
        {
            controller = new BoidController();
            var mesh = controller.Generate();

            meshFilter.mesh = mesh;
        }
Ejemplo n.º 3
0
        private void Generate()
        {
            targetPalette = RandomE.TetradicPalette(0.25f, 0.75f);
            targetPalette.Add(ColorHSV.Lerp(targetPalette[2], targetPalette[3], 0.5f));

            controller = new BoidController();
            var mesh = controller.Generate(targetPalette[0].WithSV(1, 1).ToColor(),
                                           targetPalette[1].WithSV(0.8f, 0.8f).ToColor());

            meshFilter.mesh = mesh;
        }
Ejemplo n.º 4
0
        private void Awake()
        {
            controller = new BoidController(meshFilter);
            controller.Generate();
            StartCoroutine(controller.Simulate());

            var maxSpeedSlider = InstantiateControl <SliderControl>(leftPanel);

            maxSpeedSlider.Initialize("Max speed", 0, 30,
                                      value: (int)controller.maxSpeed,
                                      onValueChanged: value => controller.maxSpeed = value);

            var interactionRadiusSlider = InstantiateControl <SliderControl>(leftPanel);

            interactionRadiusSlider.Initialize("Interaction radius", 0, 30,
                                               value: (int)controller.interactionRadius,
                                               onValueChanged: value => controller.interactionRadius = value);

            var cohesionCoefficientSlider = InstantiateControl <SliderControl>(leftPanel);

            cohesionCoefficientSlider.Initialize("Cohesion coefficient", 0, 30,
                                                 value: (int)controller.cohesionCoefficient,
                                                 onValueChanged: value => controller.cohesionCoefficient = value);

            var separationDistanceSlider = InstantiateControl <SliderControl>(leftPanel);

            separationDistanceSlider.Initialize("Separation distance", 0, 30,
                                                value: (int)controller.separationDistance,
                                                onValueChanged: value => controller.separationDistance = value);

            var separationCoefficientSlider = InstantiateControl <SliderControl>(leftPanel);

            separationCoefficientSlider.Initialize("Separation coefficient", 0, 30,
                                                   value: (int)controller.separationCoefficient,
                                                   onValueChanged: value => controller.separationCoefficient = value);

            var alignmentCoefficientSlider = InstantiateControl <SliderControl>(leftPanel);

            alignmentCoefficientSlider.Initialize("Alignment coefficient", 0, 30,
                                                  value: (int)controller.alignmentCoefficient,
                                                  onValueChanged: value => controller.alignmentCoefficient = value);

            var simulateToggle = InstantiateControl <ToggleControl>(leftPanel);

            simulateToggle.Initialize("Simulate", simulate, value => simulate = value);

            var generateButton = InstantiateControl <ButtonControl>(leftPanel);

            generateButton.Initialize("Generate", controller.Generate);
        }
Ejemplo n.º 5
0
        private void Awake()
        {
            controller = new BoidController(meshFilter);
            controller.Generate();
            StartCoroutine(controller.Simulate());

            var maxSpeedSlider = InstantiateControl<SliderControl>(leftPanel);
            maxSpeedSlider.Initialize("Max speed", 0, 30,
                value: (int) controller.maxSpeed,
                onValueChanged: value => controller.maxSpeed = value);

            var interactionRadiusSlider = InstantiateControl<SliderControl>(leftPanel);
            interactionRadiusSlider.Initialize("Interaction radius", 0, 30,
                value: (int) controller.interactionRadius,
                onValueChanged: value => controller.interactionRadius = value);

            var cohesionCoefficientSlider = InstantiateControl<SliderControl>(leftPanel);
            cohesionCoefficientSlider.Initialize("Cohesion coefficient", 0, 30,
                value: (int) controller.cohesionCoefficient,
                onValueChanged: value => controller.cohesionCoefficient = value);

            var separationDistanceSlider = InstantiateControl<SliderControl>(leftPanel);
            separationDistanceSlider.Initialize("Separation distance", 0, 30,
                value: (int) controller.separationDistance,
                onValueChanged: value => controller.separationDistance = value);

            var separationCoefficientSlider = InstantiateControl<SliderControl>(leftPanel);
            separationCoefficientSlider.Initialize("Separation coefficient", 0, 30,
                value: (int) controller.separationCoefficient,
                onValueChanged: value => controller.separationCoefficient = value);

            var alignmentCoefficientSlider = InstantiateControl<SliderControl>(leftPanel);
            alignmentCoefficientSlider.Initialize("Alignment coefficient", 0, 30,
                value: (int) controller.alignmentCoefficient,
                onValueChanged: value => controller.alignmentCoefficient = value);

            var simulateToggle = InstantiateControl<ToggleControl>(leftPanel);
            simulateToggle.Initialize("Simulate", simulate, value => simulate = value);

            var generateButton = InstantiateControl<ButtonControl>(leftPanel);
            generateButton.Initialize("Generate", controller.Generate);
        }