Exemple #1
0
 protected virtual void CheckTouchKey()
 {
     if (mSkillTouchIndex == 0)
     {
         if (mTouchHandler.IsTouched(TOUCH_KEY.Skill1))
         {
             mSkillTouchIndex = 1;
         }
         if (mTouchHandler.IsTouched(TOUCH_KEY.Skill2))
         {
             mSkillTouchIndex = 2;
         }
         if (mTouchHandler.IsTouched(TOUCH_KEY.Skill3))
         {
             mSkillTouchIndex = 3;
         }
         if (mTouchHandler.IsTouched(TOUCH_KEY.Skill4))
         {
             mSkillTouchIndex = 4;
         }
     }
 }
Exemple #2
0
    void FixedUpdate()
    {
        if (CharacterManager.player == null)
        {
            return;
        }
#if UNITY_STANDALONE
        xoff = Input.GetAxis("Horizontal");
        zoff = Input.GetAxis("Vertical");
#elif UNITY_EDITOR
        xoff = Input.GetAxis("Horizontal") != 0 ? Input.GetAxis("Horizontal") : up.upPosition.x;
        zoff = Input.GetAxis("Vertical") != 0 ? Input.GetAxis("Vertical") : up.upPosition.y;
#elif UNITY_ANDROID
        xoff = up.upPosition.x;
        zoff = up.upPosition.y;
#elif UNITY_IPHONE
        xoff = up.upPosition.x;
        zoff = up.upPosition.y;
#endif

        CheckMapInfo();
        v = new Vector3(xoff, 0f, zoff);
        if (Camera.main != null)
        {
            Quaternion q = Camera.main.transform.rotation;
            v = Quaternion.Euler(0f, q.eulerAngles.y, 0f) * v;
        }
        //if(GameLibrary.isMoba)
        //    v = Quaternion.Euler(0f, 45f, 0f) * v;

        if (mTouchHandler != null)
        {
            if (Mathf.Abs(xoff) > 0.1f || Mathf.Abs(zoff) > 0.1f)
            {
                mTouchHandler.Touch(TOUCH_KEY.Run);
            }
            else
            {
                mTouchHandler.Release(TOUCH_KEY.Run);
            }
            mTouchHandler.mOffset = v;
        }

        if (xoff == 0 && zoff == 0)
        {
            if (last_xoff != 0 || last_zoff != 0)
            {
                //   ClientSendDataMgr.GetSingle().GetWalkSend().SendSelfPos( CharacterManager.player.transform.position );
                //   ClientSendDataMgr.GetSingle().GetWalkSend().SendOrientation( CharacterManager.player.transform.rotation.eulerAngles );

                if (FSDataNodeTable <MapInfoNode> .GetSingleton().DataNodeList.ContainsKey(playerData.GetInstance().selfData.mapID))
                {
                    MapInfoNode tempMN = FSDataNodeTable <MapInfoNode> .GetSingleton().DataNodeList [playerData.GetInstance().selfData.mapID];

                    if (tempMN != null)
                    {
                        if (StartLandingShuJu.GetInstance().currentScene == tempMN.MapName)
                        {
                            Vector3 pos = CharacterManager.player.transform.position;
                            //  WalkSendMgr.GetSingle().GetWalkSend().SendSelfPos( playerData.GetInstance().selfData.accountId , new Vector3( pos.x , pos.y , pos.z ) );
                        }
                    }
                }
            }

            if (CharacterManager.player != null && !CharacterManager.instance.shouldMove && CheckLastMove())
            {
                CharacterManager.instance.PlayerStop();
            }
            tempTime = 0;
        }
        else if (Mathf.Abs(xoff) > 0.1f || Mathf.Abs(zoff) > 0.1f)
        {
            if (FightTouch._instance != null)
            {
                if (CharacterManager.playerCS.pm.isAutoMode)
                {
                    FightTouch._instance.OnAutoClick();
                    CharacterManager.instance.PlayerStop();
                }
                FightTouch._instance.CancelTp();
            }
            if (UIRole.instance != null)
            {
                UIRole.instance.CancelRide();
            }
            if (CharacterManager.instance.shouldMove)
            {
                if (!(mTouchHandler.IsTouched(TOUCH_KEY.Attack) || mTouchHandler.IsTouched(TOUCH_KEY.Skill1) || mTouchHandler.IsTouched(TOUCH_KEY.Skill2) ||
                      mTouchHandler.IsTouched(TOUCH_KEY.Skill3) || mTouchHandler.IsTouched(TOUCH_KEY.Skill4)))
                {
                    CharacterManager.instance.shouldMove = false;
                }
            }
            else
            {
                RotatePlayer();
                CharacterManager.instance.PlayerMove(v.normalized * Time.deltaTime);
            }
            //if ( Time.frameCount % 30 == 0 )//每隔30帧处理一次
            tempTime += Time.deltaTime;
            if (OnMove != null)
            {
                OnMove(tempTime);
            }
            if (tempTime > 0.3f)
            {
                tempTime = 0f;

                if (FSDataNodeTable <MapInfoNode> .GetSingleton().DataNodeList.ContainsKey(playerData.GetInstance().selfData.mapID))
                {
                    MapInfoNode tempMN = FSDataNodeTable <MapInfoNode> .GetSingleton().DataNodeList[playerData.GetInstance().selfData.mapID];

                    if (tempMN != null)
                    {
                        if (StartLandingShuJu.GetInstance().currentScene == tempMN.MapName)
                        {
                            Vector3 pos = CharacterManager.player.transform.position;
                            // WalkSendMgr.GetSingle().GetWalkSend().SendSelfPos(playerData.GetInstance().selfData.accountId, new Vector3(pos.x, pos.y, pos.z));
                        }
                    }
                }
                //ClientSendDataMgr.GetSingle().GetWalkSend().SendSelfPos(CharacterManager.player.transform.localPosition);
            }
        }
        else
        {
            if (CharacterManager.player != null && !CharacterManager.instance.shouldMove && CheckLastMove())
            {
                //玩家停下来要同步给服务器位置
                //ClientSendDataMgr.GetSingle().GetWalkSend().SendSelfPos(CharacterManager.player.transform.localPosition);
                CharacterManager.instance.PlayerStop();
            }
            tempTime = 0;
        }
        last_xoff = xoff; last_zoff = zoff;
    }