private void Start() { #if !UNITY_EDITOR try { #endif mIsClick = true; DragState = LandDragState.Invalid; EventDispatcher.Instance.AddEventListener(FarmCellTipEvent.EVENT_TYPE, OnShowFarmCellTip); EventDispatcher.Instance.AddEventListener(FarmMenuDragEvent.EVENT_TYPE, OnFarmMenuDrag); EventDispatcher.Instance.AddEventListener(FarmMatureRefresh.EVENT_TYPE, OnFarmMatureRefresh); EventDispatcher.Instance.AddEventListener(FarmOrderFlyAnim.EVENT_TYPE, FlyOrderExp); for (var i = 0; i < SeedButtons.Count; i++) { var j = i; var deleget = new EventDelegate(() => { OnClickMenu(j); }); SeedButtons[i].onClick.Add(deleget); var listItemLogic = SeedButtons[i].gameObject.GetComponent <ListItemLogic>(); listItemLogic.Index = j; } #if !UNITY_EDITOR } catch (Exception ex) { Logger.Error(ex.ToString()); } #endif }
public void OnTouchFarmLand(PlowLandFrame land) { if (DragState == LandDragState.Invalid) { DragState = LandDragState.Operate; TouchFarmLands.Clear(); TouchFarmLands.Add(land); } else if (DragState == LandDragState.Draging) { if (mTouchingFarmLand != null && mTouchingFarmLand != land) { //第一个必须是选中的那个土地 if (!TouchFarmLands.Contains(mTouchingFarmLand)) { return; } } if (!TouchFarmLands.Contains(land)) { TouchFarmLands.Add(land); EventDispatcher.Instance.DispatchEvent(new FarmLandCellClick(land.DataModel.Index, true)); } } Logger.Info("TouchFarmLand......{0}", land.name); }
private void OnFarmMenuDrag(IEvent ievent) { var e = ievent as FarmMenuDragEvent; if (e.Index == -1) { DragState = LandDragState.Invalid; TouchFarmLands.Clear(); mTouchingFarmLand = null; } else { DragState = LandDragState.Draging; TouchFarmLands.Clear(); } }
public void OnClickLand(PlowLandFrame land) { if (land == null) { return; } land.OnClickLand(); if (mTouchingFarmLand != null) { //mTouchingFarmLand = null; return; } MatureTimeBg.gameObject.SetActive(false); if (mMatureTimer != null) { StopCoroutine(mMatureTimer); mMatureTimer = null; } mMatureScend = 0; if (land.DataModel.State == (int)LandState.Lock) { //这块土地还未开垦,请提升农场等级! var e1 = new ShowUIHintBoard(300302); EventDispatcher.Instance.DispatchEvent(e1); return; } var parent = UIManager.GetInstance().GetUIRoot(UIType.TYPE_TIP); var loc = parent.transform.worldToLocalMatrix * land.LockSprite.worldCenter; loc.x -= 100; loc.y += 70; loc.z = -300; LandMenu.transform.localPosition = loc; LandMenu.transform.localPosition += new Vector3(-80, 0, 0); SpringPanel.Stop(MenuObject.gameObject); ResetScrollViewPostion(); EventDispatcher.Instance.DispatchEvent(new FarmLandCellClick(land.DataModel.Index, false)); mTouchingFarmLand = land; DragState = LandDragState.Invalid; }
private void LateUpdate() { #if !UNITY_EDITOR try { #endif if (LandMenu.gameObject.activeSelf) { // var x = LandMenuScroll.transform.localPosition.x; // int beginIndex = 0; // var LandMenusCount0 = LandMenus.Count; // for (int i = 0; i < LandMenusCount0; i++) // { // var landMenu = LandMenus[i]; // if (i == 0) // { // beginIndex = (int) x/2; // } // int thisIndex = beginIndex + i*32; // // Vector3 thisPos = GetPosByIndex(thisIndex); // if (x < 0) // { // landMenu.BtnMenu.transform.localPosition = new Vector3(thisPos.x - 60*i - x, thisPos.y - 45, 0); // } // else // { // landMenu.BtnMenu.transform.localPosition = new Vector3(thisPos.x - 60*i - x, thisPos.y - 45, 0); // } // } // UpdatMenuPostion(); } if (Input.touchCount == 1 || Input.GetMouseButton((int)InputManager.MOUSE_BUTTON.MOUSE_BUTTON_LEFT)) { var pos = Input.mousePosition; var nUIRay = UICamera.mainCamera.ScreenPointToRay(pos); RaycastHit nHit; if (Physics.Raycast(nUIRay, out nHit, 10, LayerMask.GetMask("UI"))) { var hitObj = nHit.collider.gameObject; if (hitObj) { { var __list1 = FarmLands; var __listCount1 = __list1.Count; for (var __i1 = 0; __i1 < __listCount1; ++__i1) { var landLogic = __list1[__i1]; { if (landLogic.ColliderObject == hitObj) { OnTouchFarmLand(landLogic); return; } } } } } } if (TouchFarmLands.Count == 0) { mIsClick = false; } } else { if (DragState == LandDragState.Operate) { if (mIsClick && TouchFarmLands.Count == 1) { Logger.Info("Click Land"); DragState = LandDragState.Invalid; OnClickLand(TouchFarmLands[0]); mIsClick = false; return; } TouchFarmLands.Clear(); } DragState = LandDragState.Invalid; mIsClick = true; } #if !UNITY_EDITOR } catch (Exception ex) { Logger.Error(ex.ToString()); } #endif }