|  | @@ -47,7 +47,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          private RotationGesture rotationGesture;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private int maxLayer = int.MinValue;//最上层的层级数
 | 
	
		
			
				|  |  | +        // private int maxLayer = int.MinValue;//最上层的层级数
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          protected override void OnInit()
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -115,6 +115,10 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              UpdateBg(ItemCfgArray.Instance.GetCfg(EquipDataCache.cacher.bgId));
 | 
	
		
			
				|  |  |              UpdateBody();
 | 
	
		
			
				|  |  |              UpdateScene();
 | 
	
		
			
				|  |  | +            for (int i = 0; i < _itemGameObjs.Count; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                PhotographDataManager.Instance.SetLayer(_itemGameObjs[i], i * 100, "up");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              if (GuideDataManager.GetGuideCountCopy(ConstGuideId.PHOTOGRAPH) > 0)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  _ui.m_loaGuide.enabled = false;
 | 
	
	
		
			
				|  | @@ -188,7 +192,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  case EnumPhotographType.SCENE:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    AddSceneItem(itemCfg, false);
 | 
	
		
			
				|  |  | +                    AddSceneItem(itemCfg, false, true);
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  |                  case EnumPhotographType.EFFECT:
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -222,9 +226,17 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      hitGameObj = hitGameObj.transform.parent.gameObject;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    PhotographDataManager.Instance.SetItemLayer(hitGameObj, maxLayer);
 | 
	
		
			
				|  |  | -                    maxLayer = PhotographDataManager.Instance.GetMaxLayer(hitGameObj, maxLayer) + 1;
 | 
	
		
			
				|  |  |                      _ui.m_comSelectBox.target.visible = true;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    int index = _itemGameObjs.IndexOf(hitGameObj);
 | 
	
		
			
				|  |  | +                    GameObject gameObject = _itemGameObjs[index];
 | 
	
		
			
				|  |  | +                    _itemGameObjs.RemoveAt(index);
 | 
	
		
			
				|  |  | +                    _itemGameObjs.Add(gameObject);
 | 
	
		
			
				|  |  | +                    for (int i = 0; i < _itemGameObjs.Count; i++)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        PhotographDataManager.Instance.SetLayer(_itemGameObjs[i], i * 100, "up");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      if (!_equipDistance.ContainsKey(hitGameObj))
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          SceneController.SetGameObjectCenter(hitGameObj);
 | 
	
	
		
			
				|  | @@ -384,7 +396,6 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              gameObject.transform.localScale = new Vector3(value, value, 1);
 | 
	
		
			
				|  |  |              Vector2 size = SceneController.GetGameObjectSize(gameObject);
 | 
	
		
			
				|  |  |              _ui.m_comSelectBox.target.size = size;
 | 
	
		
			
				|  |  | -            // _ui.m_comSelectBox.target.SetSize(size.x, size.y);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          private void ControllerRotate(float value, GameObject gameObject)
 | 
	
		
			
				|  |  |          {
 | 
	
	
		
			
				|  | @@ -407,9 +418,8 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              GameObject bodyParent = _sceneObject.transform.Find(RolePath).gameObject;
 | 
	
		
			
				|  |  |              SceneController.UpdatePhotographBody(PhotographDataManager.Instance._equipRoleData.ToArray(), _sceneObject, bodyParent);
 | 
	
		
			
				|  |  | -            _itemGameObjs.Add(bodyParent);
 | 
	
		
			
				|  |  | +            AddItemGameObject(bodyParent, false);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            maxLayer = PhotographDataManager.Instance.GetMaxLayer(bodyParent, maxLayer) + 1;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //添加初始场景道具
 | 
	
		
			
				|  |  |          private void UpdateScene()
 | 
	
	
		
			
				|  | @@ -421,21 +431,20 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(key);
 | 
	
		
			
				|  |  |                      int defaultLayer = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).defaultLayer;
 | 
	
		
			
				|  |  | -                    AddSceneItem(itemCfg, true);
 | 
	
		
			
				|  |  | +                    AddSceneItem(itemCfg, true, false);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          private void UpdateNpc(ItemCfg itemCfg)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            maxLayer++;
 | 
	
		
			
				|  |  |              Transform tf = _sceneObject.transform.Find(NpcResPath);
 | 
	
		
			
				|  |  |              string resPath = ResPathUtil.GetNpcPicFPath(itemCfg.res);
 | 
	
		
			
				|  |  |              SceneController.SetSpriteRendererToTransform(tf, resPath);
 | 
	
		
			
				|  |  |              SpriteRenderer spr = tf.GetComponent<SpriteRenderer>();
 | 
	
		
			
				|  |  | -            spr.sortingOrder = maxLayer;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              tf.localPosition = new Vector2(-spr.bounds.center.x, -spr.bounds.center.y);
 | 
	
		
			
				|  |  |              SceneController.SetBoxCollider2DToGameObject(tf.gameObject);
 | 
	
		
			
				|  |  | -            _itemGameObjs.Add(tf.parent.gameObject);
 | 
	
		
			
				|  |  | +            AddItemGameObject(tf.parent.gameObject, true);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          private void UpdateBorder(ItemCfg itemCfg)
 | 
	
	
		
			
				|  | @@ -452,7 +461,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void AddSceneItem(ItemCfg itemCfg, bool isDefaultLayer)
 | 
	
		
			
				|  |  | +        private void AddSceneItem(ItemCfg itemCfg, bool isDefaultLayer, bool setLayer)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              int index = 0;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -467,13 +476,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  parentGameObj = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, index, 1));
 | 
	
		
			
				|  |  |                  SceneController.AddItemToScene(_sceneObject, parentGameObj, itemCfg.id, 2, itemCfg.resLayer2);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                maxLayer = PhotographDataManager.Instance.GetMaxLayer(parentGameObj, maxLayer) + 1;
 | 
	
		
			
				|  |  | -                _itemGameObjs.Add(parentGameObj);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if (!isDefaultLayer)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    PhotographDataManager.Instance.SetItemLayer(parentGameObj, maxLayer);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                AddItemGameObject(parentGameObj, setLayer);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (itemCfg.resLayer1 > 0)
 | 
	
	
		
			
				|  | @@ -487,18 +490,37 @@ namespace GFGGame
 | 
	
		
			
				|  |  |                  parentGameObj = new GameObject(string.Format("{0}_{1}_{2}", itemCfg.id, index, 0));
 | 
	
		
			
				|  |  |                  SceneController.AddItemToScene(_sceneObject, parentGameObj, itemCfg.id, 1, itemCfg.resLayer1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                maxLayer = PhotographDataManager.Instance.GetMaxLayer(parentGameObj, maxLayer) + 1;
 | 
	
		
			
				|  |  | -                _itemGameObjs.Add(parentGameObj);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                if (!isDefaultLayer)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    PhotographDataManager.Instance.SetItemLayer(parentGameObj, maxLayer);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                AddItemGameObject(parentGameObj, setLayer);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        private void AddItemGameObject(GameObject parentGameObj, bool setLayer)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            _itemGameObjs.Add(parentGameObj);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            if (setLayer)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                int index = _itemGameObjs.Count - 1;
 | 
	
		
			
				|  |  | +                PhotographDataManager.Instance.SetLayer(_itemGameObjs[index], index * 100, "up");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            _itemGameObjs.Sort((GameObject a, GameObject b) =>
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                int layerA = PhotographDataManager.Instance.GetMinLayer(a);
 | 
	
		
			
				|  |  | +                int layerB = PhotographDataManager.Instance.GetMinLayer(b);
 | 
	
		
			
				|  |  | +                if (layerA < layerB)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    return -1;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                else if (layerA > layerB)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    return 1;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return 0;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -575,10 +597,45 @@ namespace GFGGame
 | 
	
		
			
				|  |  |          private void OnClickBtnUp()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            int index = _itemGameObjs.IndexOf(memoryHitGameObj);
 | 
	
		
			
				|  |  | +            if (index < 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                PromptController.Instance.ShowFloatTextPrompt("未选中任物品");
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (index == _itemGameObjs.Count - 1)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                PromptController.Instance.ShowFloatTextPrompt("已经在最上层了");
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            GameObject gameObject = _itemGameObjs[index];
 | 
	
		
			
				|  |  | +            _itemGameObjs.RemoveAt(index);
 | 
	
		
			
				|  |  | +            _itemGameObjs.Insert((index + 1), gameObject);
 | 
	
		
			
				|  |  | +            PhotographDataManager.Instance.SetLayer(memoryHitGameObj, (index + 1) * 100, "up");
 | 
	
		
			
				|  |  | +            PhotographDataManager.Instance.SetLayer(_itemGameObjs[index], index * 100, "down");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          private void OnClickBtnDown()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            int index = _itemGameObjs.IndexOf(memoryHitGameObj);
 | 
	
		
			
				|  |  | +            if (index < 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                PromptController.Instance.ShowFloatTextPrompt("未选中任物品");
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (index == 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                PromptController.Instance.ShowFloatTextPrompt("已经在最下层了");
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            GameObject gameObject = _itemGameObjs[index];
 | 
	
		
			
				|  |  | +            _itemGameObjs.RemoveAt(index);
 | 
	
		
			
				|  |  | +            _itemGameObjs.Insert((index - 1), gameObject);
 | 
	
		
			
				|  |  | +            PhotographDataManager.Instance.SetLayer(memoryHitGameObj, (index - 1) * 100, "down");
 | 
	
		
			
				|  |  | +            PhotographDataManager.Instance.SetLayer(_itemGameObjs[index], index * 100, "up");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          private void OnClickBtnPhotograph()
 | 
	
		
			
				|  |  |          {
 |