// Create link to any grid that exists, or create a new grid private static void CreateLinkToGrid() { gridGameObject = GameObject.Find(MAST_Const.grid.defaultParentName); // If grid exists already, get a reference to its component if (gridGameObject != null) { gridComponent = gridGameObject.GetComponent <MAST_Grid_Component>(); // If the gridcomponent isn't found, then this grid gameobject is dead if (gridComponent == null) { // Destroy existing grid and create a new one DestroyGrid(); CreateNewGrid(); } UpdateGridSettings(); } // If no grid exists, create a new grid else { CreateNewGrid(); } }
// --------------------------------------------------------------------------- // Create a New Grid in the Hierarchy from the Grid Prefab // --------------------------------------------------------------------------- static void CreateNewGrid() { // Create new Grid GameObject gridGameObject = GameObject.CreatePrimitive(PrimitiveType.Plane); gridGameObject.transform.position = new Vector3(0f, 0f, 0f); gridGameObject.name = MAST_Const.grid.defaultName; gridGameObject.layer = 4; // Configure Grid GameObject MeshRenderer MeshRenderer gridMeshRenderer = gridGameObject.GetComponent <MeshRenderer>(); gridMeshRenderer.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off; gridMeshRenderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; gridMeshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; gridMeshRenderer.receiveShadows = false; // Configure Grid GameObject Material if (gridMaterial == null) { gridMaterial = MAST_Asset_Loader.GetGridMaterial(); } gridMaterial.SetColor("_Color", MAST_Settings.gui.grid.fillColor); gridMeshRenderer.material = gridMaterial; //Create parent object, used to make the grid unselectable while it still displays it's gizmos gridParent = new GameObject(MAST_Const.grid.defaultParentName); gridGameObject.transform.SetParent(gridParent.transform); // Add MAST_Grid_Component script to grid and pass grid preferences to it gridComponent = gridGameObject.AddComponent <MAST_Grid_Component>(); UpdateGridSettings(); // Return the grid to its last saved height MoveGridToNewHeight(); // Hide the grid in the hierarchy gridParent.hideFlags = HideFlags.HideInHierarchy; }