public static GameObject GetTerrainToolsRoot() { GTerrainTools tools = Object.FindObjectOfType <GTerrainTools>(); if (tools != null) { return(tools.gameObject); } else { return(null); } }
public static GStylizedTerrain CreateStylizedTerrain(GTerrainData srcData = null) { GameObject g = new GameObject("Low Poly Terrain"); g.transform.localPosition = Vector3.zero; g.transform.localRotation = Quaternion.identity; g.transform.localScale = Vector3.one; GTerrainData terrainData = GTerrainData.CreateInstance <GTerrainData>(); terrainData.Reset(); string assetName = "TerrainData_" + terrainData.Id; //AssetDatabase.CreateAsset(terrainData, string.Format("Assets/{0}.asset", assetName)); GUtilities.EnsureDirectoryExists(GGriffinSettings.Instance.DefaultTerrainDataDirectory); AssetDatabase.CreateAsset(terrainData, Path.Combine(GGriffinSettings.Instance.DefaultTerrainDataDirectory, assetName + ".asset")); if (srcData != null) { srcData.CopyTo(terrainData); } Material mat = GGriffinSettings.Instance.WizardSettings.GetClonedMaterial(); if (mat == null && GGriffinSettings.Instance.TerrainDataDefault.Shading.CustomMaterial != null) { mat = Object.Instantiate(GGriffinSettings.Instance.TerrainDataDefault.Shading.CustomMaterial); } if (mat != null) { string matName = "TerrainMaterial_" + terrainData.Id; mat.name = matName; //AssetDatabase.CreateAsset(mat, string.Format("Assets/{0}.mat", matName)); GUtilities.EnsureDirectoryExists(GGriffinSettings.Instance.DefaultTerrainDataDirectory); AssetDatabase.CreateAsset(mat, Path.Combine(GGriffinSettings.Instance.DefaultTerrainDataDirectory, matName + ".mat")); terrainData.Shading.CustomMaterial = mat; } GStylizedTerrain terrain = g.AddComponent <GStylizedTerrain>(); terrain.GroupId = 0; terrain.TerrainData = terrainData; Undo.RegisterCreatedObjectUndo(g, "Creating Low Poly Terrain"); GameObject colliderGO = new GameObject("Tree Collider"); GameObjectUtility.SetParentAndAlign(colliderGO, terrain.gameObject); colliderGO.transform.localPosition = Vector3.zero; colliderGO.transform.localRotation = Quaternion.identity; colliderGO.transform.localScale = Vector3.one; GTreeCollider collider = colliderGO.AddComponent <GTreeCollider>(); collider.Terrain = terrain; GTerrainTools tools = Object.FindObjectOfType <GTerrainTools>(); if (tools == null) { CreateTerrainTools(null); } Selection.activeGameObject = g; return(terrain); }
public static void CreateTerrainTools(MenuCommand menuCmd) { GameObject g = new GameObject("Polaris V2 Tools"); if (menuCmd != null) { GameObjectUtility.SetParentAndAlign(g, menuCmd.context as GameObject); } g.transform.localPosition = Vector3.zero; g.transform.localRotation = Quaternion.identity; g.transform.localScale = Vector3.one; g.transform.hideFlags = HideFlags.HideInInspector; GTerrainTools tools = g.AddComponent <GTerrainTools>(); tools.hideFlags = HideFlags.HideInInspector; GameObject terrainGroup = new GameObject("Terrain Group"); GUtilities.ResetTransform(terrainGroup.transform, g.transform); terrainGroup.transform.hideFlags = HideFlags.HideInInspector; GTerrainGroup group = terrainGroup.AddComponent <GTerrainGroup>(); group.GroupId = -1; GameObject texturePainter = new GameObject("Geometry & Texture Painter"); GUtilities.ResetTransform(texturePainter.transform, g.transform); texturePainter.transform.hideFlags = HideFlags.HideInInspector; GTerrainTexturePainter texturePainterComponent = texturePainter.AddComponent <GTerrainTexturePainter>(); texturePainterComponent.GroupId = -1; GameObject foliagePainter = new GameObject("Foliage Painter"); GUtilities.ResetTransform(foliagePainter.transform, g.transform); foliagePainter.transform.hideFlags = HideFlags.HideInInspector; GFoliagePainter foliagePainterComponent = foliagePainter.AddComponent <GFoliagePainter>(); foliagePainterComponent.GroupId = -1; foliagePainterComponent.gameObject.AddComponent <GRotationRandomizeFilter>(); foliagePainterComponent.gameObject.AddComponent <GScaleRandomizeFilter>(); GameObject objectPainter = new GameObject("Object Painter"); GUtilities.ResetTransform(objectPainter.transform, g.transform); objectPainter.transform.hideFlags = HideFlags.HideInInspector; GObjectPainter objectPainterComponent = objectPainter.AddComponent <GObjectPainter>(); objectPainterComponent.GroupId = -1; objectPainterComponent.gameObject.AddComponent <GRotationRandomizeFilter>(); objectPainterComponent.gameObject.AddComponent <GScaleRandomizeFilter>(); GameObject assetExplorer = new GameObject("Asset Explorer"); GUtilities.ResetTransform(assetExplorer.transform, g.transform); assetExplorer.transform.hideFlags = HideFlags.HideInInspector; assetExplorer.AddComponent <GAssetExplorer>(); GameObject helpTool = new GameObject("Help"); GUtilities.ResetTransform(helpTool.transform, g.transform); helpTool.transform.hideFlags = HideFlags.HideInInspector; helpTool.AddComponent <GHelpComponent>(); Selection.activeGameObject = terrainGroup; Undo.RegisterCreatedObjectUndo(g, "Creating Terrain Tools"); }