Example #1
0
    // 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();
        }
    }
Example #2
0
    // ---------------------------------------------------------------------------
    // 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;
    }