コード例 #1
0
    void Update()
    {
        if (showGrid == false)
        {
            updateFlags = GridEditUpdateFlag.None;
            return;
        }

        if (cam.IsCamDirty())
        {
            var camDirtyFlags = cam.GetCamDirtyFlags();

            if ((camDirtyFlags & GridEditCameraDirtyFlag.OrthogonalSizeChange) != 0)
            {
                updateFlags |= GridEditUpdateFlag.Regenerate;
            }
            else if ((camDirtyFlags & GridEditCameraDirtyFlag.CameraMove) != 0)
            {
                updateFlags |= GridEditUpdateFlag.Reposition;
            }

            cam.SetCamNotDirty();
        }
        else if ((lastUpdatedMousePos.x != Input.mousePosition.x) ||
                 (lastUpdatedMousePos.y != Input.mousePosition.y))
        {
            updateFlags |= GridEditUpdateFlag.MouseMove;
        }

        if (updateFlags != GridEditUpdateFlag.None)
        {
            if ((updateFlags & GridEditUpdateFlag.Regenerate) != 0)
            {
                SetGrid(gridSetter);
            }
            else if ((updateFlags & GridEditUpdateFlag.Reposition) != 0)
            {
                RepositionGrid();
            }
            else if ((updateFlags & GridEditUpdateFlag.MouseMove) != 0)
            {
                UpdateMouseOver(Input.mousePosition);
            }

            updateFlags = GridEditUpdateFlag.None;
        }
    }
コード例 #2
0
    void ReleaseGrid()
    {
        showGrid = false;

        foreach (MapGeneratorGUIGridLineDirection dir in Enum.GetValues(typeof(MapGeneratorGUIGridLineDirection)))
        {
            var targetList = GetGridList(dir);

            targetList.ForEach(t => Destroy(t.gameObject));
            targetList.Clear();
        }

        cam.SetCamNotDirty();
        updateFlags = GridEditUpdateFlag.None;

        UpdateIndicatorsActive();
    }