コード例 #1
0
        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
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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
        }