示例#1
0
        void Update()
        {
            //add by lzp

            if (!MapMgr.Instance.InMainCity)
            {
                if (!CoreEntry.GameStart || !CoreEntry.InFightScene)
                {
                    return;
                }
            }


            if (true == IsMouseOverUI())
            {
                return;
            }

            Vector3 touchPos = Vector3.zero;

            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                //if (Input.GetMouseButtonDown(1))
                //{


                //    HitBack();
                //    //Invoke("HitBack",0.3f);
                //}
                if (Input.GetMouseButtonDown(0))
                {
                    touchPos = Input.mousePosition;


                    {
                        ////取消自动战斗
                        //PlayerObj player = CoreEntry.gActorMgr.MainPlayer ;
                        //if (player != null && CoreEntry.gGameMgr.AutoFight)
                        //{
                        //        CoreEntry.gGameMgr.StopAutoTask();
                        //    CoreEntry.gGameMgr.AutoFight = false;
                        //        player.CancleAutoSet();
                        //}
                    }
                }
            }
            else if (Input.touchCount > 0)
            {
                int   count = Input.touchCount;
                Touch touch = Input.GetTouch(count - 1);
                touchPos = touch.position;

                // PlayerObj player = CoreEntry.gActorMgr.MainPlayer;

                //{

                //        // 取消自动战斗
                //        CoreEntry.gGameMgr.StopAutoTask();
                //        if (player != null && CoreEntry.gGameMgr.AutoFight)
                //         player.CancleAutoSet();


                //}


                //    PlayerObj player = CoreEntry.gTeamMgr.MainPlayer.GetComponent<PlayerObj>();
                //   player.m_bAutoMove = false;
            }


            if (touchPos != Vector3.zero)
            {
                if (CoreEntry.gCameraMgr.MainCamera == null)
                {
                    return;
                }

                Ray ray = CoreEntry.gCameraMgr.MainCamera.ScreenPointToRay(touchPos);
                //Ray uiRay = CoreEntry.uiMgr.uiCamera.ScreenPointToRay(touchPos);
                //if (Physics.Raycast(uiRay, 1000.0f, uiLayerMask))
                //{
                //    return;
                //}
                PlayerObj player = CoreEntry.gActorMgr.MainPlayer;

                //{
                //    //取消自动战斗

                //    if (player != null && CoreEntry.gGameMgr.AutoFight)
                //        player.CancleAutoSet();

                //}


                player.m_bAutoMove = false;

                PlayerAutoMove playerMove = player.GetComponent <PlayerAutoMove>();
                if (playerMove)
                {
                    playerMove.Stop(true);
                }


                RaycastHit rayCastHit;

                if (Physics.Raycast(ray, out rayCastHit, 1000.0f, groundLayerMask))
                {
                    if (m_callbackMove != null)
                    {
                        m_callbackMove(rayCastHit.point);
                    }
                }
                else
                {
                    //如果没取到,就使用NAVMESH
                    NavMeshHit hit;
                    if (NavMesh.SamplePosition(CoreEntry.gCameraMgr.MainCamera.ScreenToWorldPoint(touchPos), out hit, 100.0f, -1))
                    {
                        if (null != m_callbackMove)
                        {
                            m_callbackMove(hit.position);
                        }
                    }
                }
            }
            else
            {
                PlayerObj player = CoreEntry.gActorMgr.MainPlayer;
                if (player != null)
                {
                    player.m_bAutoMove = true;
                }
            }
        }