public void Init() { DragProcessor <BackpackItem> dragProcessor_BackpackItem = new DragProcessor <BackpackItem>(); dragProcessor_BackpackItem.Init( UIManager.Instance.UICamera, LayerManager.Instance.LayerMask_BackpackItemGrid, (out Vector2 mouseScreenPos) => { if (ControlManager.Instance.BuildingInputActionEnabled) { mouseScreenPos = ControlManager.Instance.Building_MousePosition; return(true); } else { mouseScreenPos = Vector2.zero; return(false); } }, ScreenMousePositionToWorld_BackpackDragArea, delegate(BackpackItem bi, Collider collider, DragProcessor dragProcessor) { }, delegate(BackpackItem bi, Collider collider, DragProcessor dragProcessor) { } ); DragProcessor <MechaComponentDropSprite> dragProcessor_MechaComponentDropSprite = new DragProcessor <MechaComponentDropSprite>(); dragProcessor_MechaComponentDropSprite.Init( CameraManager.Instance.MainCamera, LayerManager.Instance.LayerMask_ItemDropped, (out Vector2 mouseScreenPos) => { if (ControlManager.Instance.BuildingInputActionEnabled) { mouseScreenPos = ControlManager.Instance.Building_MousePosition; return(true); } else { mouseScreenPos = Vector2.zero; return(false); } }, ScreenMousePositionToWorld_MechaEditorInventory, delegate(MechaComponentDropSprite mcds, Collider collider, DragProcessor dragProcessor) { Ray ray = CameraManager.Instance.MainCamera.ScreenPointToRay(ControlManager.Instance.Building_MousePosition); MechaComponentInfo mci = mcds.MechaComponentInfo.Clone(); ClientBattleManager.Instance.PlayerMecha.MechaInfo.AddMechaComponentInfo(mci, GridPosR.Zero); MechaComponent mc = ClientBattleManager.Instance.PlayerMecha.MechaComponentDict[mci.GUID]; GridPos gp = GridUtils.GetGridPosByMousePos(ClientBattleManager.Instance.PlayerMecha.transform, ray, Vector3.up, ConfigManager.GridSize); mci.InventoryItem.SetGridPosition(gp); DragManager.Instance.CurrentDrag = mc.GetComponent <Draggable>(); DragManager.Instance.CurrentDrag.SetOnDrag(true, collider, dragProcessor); mcds.PoolRecycle(); }, delegate(MechaComponentDropSprite mcds, Collider collider, DragProcessor dragProcessor) { } ); DragManager.Instance.Init( () => ControlManager.Instance.Building_MouseLeft.Down, () => ControlManager.Instance.Building_MouseLeft.Up, Debug.LogError, LayerManager.Instance.LayerMask_DragAreas); DragProcessor <MechaComponent> dragProcessor_MechaComponent = new DragProcessor <MechaComponent>(); dragProcessor_MechaComponent.Init( CameraManager.Instance.MainCamera, LayerManager.Instance.LayerMask_ComponentHitBox_Player, (out Vector2 mouseScreenPos) => { if (ControlManager.Instance.BuildingInputActionEnabled) { mouseScreenPos = ControlManager.Instance.Building_MousePosition; return(true); } else { mouseScreenPos = Vector2.zero; return(false); } } , ScreenMousePositionToWorld_MechaEditorInventory, delegate(MechaComponent mc, Collider collider, DragProcessor dragProcessor) { }, delegate(MechaComponent mc, Collider collider, DragProcessor dragProcessor) { } ); }