Skip to content

Commit

Permalink
Multiple weather system generation
Browse files Browse the repository at this point in the history
Using Perlin noise
  • Loading branch information
brainwipe committed Aug 23, 2017
1 parent 83382e7 commit 3120f87
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 61 deletions.
68 changes: 11 additions & 57 deletions Assets/Scenes/main.unity
Original file line number Diff line number Diff line change
Expand Up @@ -196,15 +196,15 @@ Prefab:
m_Modifications:
- target: {fileID: 4077828997907110, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalPosition.x
value: 3.59
value: 50
objectReference: {fileID: 0}
- target: {fileID: 4077828997907110, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4077828997907110, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalPosition.z
value: -2.14
value: 50
objectReference: {fileID: 0}
- target: {fileID: 4077828997907110, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalRotation.x
Expand All @@ -228,15 +228,15 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalPosition.y
value: 66
value: 114
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalPosition.z
value: -2.45
value: -2.87
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalRotation.x
value: 0.1564345
value: 0.2164396
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalRotation.y
Expand All @@ -248,20 +248,15 @@ Prefab:
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalRotation.w
value: 0.98768836
value: 0.97629607
objectReference: {fileID: 0}
- target: {fileID: 4312340392071748, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
propertyPath: m_LocalEulerAnglesHint.x
value: 18
value: 25
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: c00a0010c86c86f4283b6e9c4c6aff5e, type: 2}
m_IsPrefabParent: 0
--- !u!1 &816895618 stripped
GameObject:
m_PrefabParentObject: {fileID: 1144079346509390, guid: 09cb3adbeac165f44a5de7b5101140b9,
type: 2}
m_PrefabInternal: {fileID: 1988986127}
--- !u!1 &1173164697
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -338,54 +333,12 @@ Transform:
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1173164697}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -0.1, z: 0}
m_LocalPosition: {x: 50, y: -0.1, z: 50}
m_LocalScale: {x: 100, y: 0.1, z: 100}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1988986127
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalPosition.x
value: -8.39
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalPosition.y
value: 0.372
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalPosition.z
value: -2
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4562654999839626, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 09cb3adbeac165f44a5de7b5101140b9, type: 2}
m_IsPrefabParent: 0
--- !u!1 &2111925490
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -413,7 +366,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2111925492
MonoBehaviour:
Expand All @@ -426,4 +379,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4bfbbd5b66a5e14449c7f913e88804d5, type: 3}
m_Name:
m_EditorClassIdentifier:
AnticyclonePrefab: {fileID: 816895618}
AnticyclonePrefab: {fileID: 1144079346509390, guid: 09cb3adbeac165f44a5de7b5101140b9,
type: 2}
85 changes: 81 additions & 4 deletions Assets/Scripts/GameManager.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,93 @@
using System.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class GameManager : MonoBehaviour {

public GameObject AnticyclonePrefab;

private int playAreaX;
private int playAreaZ;

private GameObject[] weatherSystems;

private float perlinScale = 0.1f;
private int numberOfWeatherSystems = 20;
private float sqrWeatherMinSeparation = 250;

void Start () {

playAreaX = 100;
playAreaZ = 100;
GenerateWeatherSystems();
}
void Update () {

void Update () {

}

private void GenerateWeatherSystems()
{
weatherSystems = new GameObject[numberOfWeatherSystems];
var weatherSystemCount = 0;

for (float x=0; x < playAreaX; x++)
{
for (float z=0; z < playAreaZ; z++)
{
float perlinX = x / (playAreaX * perlinScale);
float perlinZ = z / (playAreaZ * perlinScale);
int result = (int) (Mathf.PerlinNoise(perlinX,perlinZ) * 10);
if (result < 8)
{
continue;
}

var newWeatherSystemLocation = new Vector3(x, 0f, z );

if (weatherSystemCount == 0)
{
CreateWeatherSystem(newWeatherSystemLocation, weatherSystemCount);
weatherSystemCount++;
continue;
}

if (!HasWeatherSystemThere(newWeatherSystemLocation))
{
CreateWeatherSystem(newWeatherSystemLocation, weatherSystemCount);
weatherSystemCount++;
}
}
}
}

private void CreateWeatherSystem(Vector3 location, int index)
{
if (index >= weatherSystems.Length)
{
return;
}
weatherSystems[index] = Instantiate(AnticyclonePrefab, location, Quaternion.identity);
weatherSystems[index].tag = "WeatherSystem";
}

private bool HasWeatherSystemThere(Vector3 locationToCheck)
{
foreach(var weatherSystem in weatherSystems)
{
if (weatherSystem == null)
{
continue;
}

var rawDifference = weatherSystem.transform.position - locationToCheck;
if (rawDifference.sqrMagnitude < sqrWeatherMinSeparation)
{
return true;
}
}

return false;
}
}

0 comments on commit 3120f87

Please sign in to comment.