void Update()
    {
        if (cam == null)
        {
            return;
        }

        float multiplier = Input.GetKey(KeyCode.LeftShift) ? speedAccelerationMultiplier : 1;

        cam.transform.Translate(Input.GetAxis("Horizontal") * moveSpeed * multiplier * Time.deltaTime, 0, 0);
        cam.transform.Translate(0, Input.GetAxis("Vertical") * moveSpeed * multiplier * Time.deltaTime, 0);

        if (lastUpdatedCameraPos != cam.transform.position)
        {
            lastUpdatedCameraPos = cam.transform.position;
            dirtyFlag           |= GridEditCameraDirtyFlag.CameraMove;
        }

        if (lastUpdateOrthogonalSize != cam.orthographicSize)
        {
            lastUpdateOrthogonalSize = cam.orthographicSize;
            dirtyFlag |= GridEditCameraDirtyFlag.OrthogonalSizeChange;
        }

        if (IsCamDirty())
        {
            UpdateCornerPos();
        }
    }
 public void SetCamNotDirty()
 {
     dirtyFlag = GridEditCameraDirtyFlag.None;
 }