void OnEnable() { meshFilter = GetComponent <MeshFilter>(); generator = new RockGenerator(); generator.foundNearest += OnSettingsOnfoundNearest; }
void Initialize() { RockGeneratorGUI.fileExported += HandleFileExported; generator = new RockGenerator { Settings = defaultSettings }; previewObj = new GameObject { hideFlags = HideFlags.HideAndDontSave }; previewMeshFilter = previewObj.AddComponent <MeshFilter>(); var renderer = previewObj.AddComponent <MeshRenderer>(); renderer.material = Resources.Load <Material>("Rock"); previewObj.SetActive(false); backgroundTexture = new Texture2D(1, 1); backgroundTexture.SetPixel(0, 0, new Color(.5f, .5f, .5f)); backgroundTexture.Apply(); previewBackground = new GUIStyle { normal = { background = backgroundTexture } }; CreateMesh(); }
public void Start() { RockGenerator.Generate(domain, Settings.NUM_ROCKS); domain.Clean(); // Upload the Server's domain // We're just using UpdateId 1, as this will be the only update from the server lobbySpace.Put("components", "1", JsonBuilder.BuildComponentsJSONString(domain)); }
void Start() { var settings = new RockGenerationSettings { GridSettings = new VoronoiGridSettings { Size = 5, Randomness = .75f }, StockDensity = 8, TargetTriangleCount = 220, Distortion = .5f, PatternSize = 1.35f, Transform = Convert.FromUnityMatrix(UnityEngine.Matrix4x4.TRS(new Vector3(2, 2, 2), Quaternion.identity, Vector3.one)) }; generator = new RockGenerator { Settings = settings }; }
public static bool OnGUI(RockGenerator generator) { var groupStyle = GUI.skin.box; var newSettings = new RockGenerationSettings(generator.Settings); using (var vs = new VerticalScope(groupStyle)) { newSettings.StockDensity = SettingSlider(nameof(newSettings.StockDensity), newSettings.StockDensity, 2, 16, "N1"); newSettings.TargetTriangleCount = Mathf.RoundToInt( SettingSlider(nameof(newSettings.TargetTriangleCount), newSettings.TargetTriangleCount, 50, 2000, "N0", logScale: true ) ); } using (var vs = new VerticalScope(groupStyle)) { using (var gcs = new GUIChangedScope()) { var Uniformity = Mathf.Clamp01(1 - newSettings.GridSettings.Randomness); Uniformity = SettingSlider(nameof(Uniformity), Uniformity, 0, 1); if (GUI.changed) { newSettings.GridSettings = new VoronoiGridSettings(newSettings.GridSettings) { Randomness = 1 - Uniformity }; } } newSettings.Distortion = SettingSlider(nameof(newSettings.Distortion), newSettings.Distortion, -1, 1); newSettings.PatternSize = SettingSlider(nameof(newSettings.PatternSize), newSettings.PatternSize, .5f, 2.5f); } using (var vs = new VerticalScope(groupStyle)) using (var gcs = new GUIChangedScope()) { var scale = newSettings.Scale; Label("Shape:"); var newX = SettingSlider("X", Mathf.Clamp((float)scale.X, .5f, 2), 0.5f, 2); var newY = SettingSlider("Y", Mathf.Clamp((float)scale.Y, .5f, 2), 0.5f, 2); var newZ = (float)scale.Z; if (GUI.changed) { var m = UnityEngine.Matrix4x4.TRS(DEFAULT_POS, rotation, new Vector3(newX, newY, newZ)); newSettings.Transform = Convert.FromUnityMatrix(m); } } if (Button("Make Rock")) { var newGridSettings = new VoronoiGridSettings(newSettings.GridSettings); newGridSettings.Randomness += 1e-6f; newSettings.Transform = Convert.FromUnityMatrix( UnityEngine.Matrix4x4.TRS(DEFAULT_POS + Random.insideUnitSphere, rotation = Random.rotation, Convert.ToVector3(newSettings.Scale)) ); newSettings.GridSettings = newGridSettings; } var settingsChanged = GUI.changed; if (settingsChanged) { generator.Settings = newSettings; } if (Button("Save this one")) { var path = FileSaver.SaveMesh(generator.LatestMesh, "rock"); OnFileExported(path); } return(settingsChanged); }
public void Init() { ItemGen = new ItemGenerator(); RockGen = new RockGenerator(); ItemGen.Start(); }