public override void execute(short cmd, short ErrCode, byte[] payloads) { base.execute(cmd, ErrCode, payloads); #if PROTOBUFF #region ###### TimerMgr.Register("delayHeartBeat", 15f, () => { DebugTool.LogRed("发送心跳包"); // var mydata = GameProxy.mine; // msg.PlayerInfo playerinfo = new msg.PlayerInfo (); // playerinfo.FrameIndex = 0; // playerinfo.Level = mydata.level; // playerinfo.Userid = mydata.userid; // playerinfo.Nickname = mydata.nickname; // playerinfo.SpawnPos = mydata.spawnPos;//TODO 处理拉回 Netmanager.sendHeartBeating(); }); #endregion try { var data = getData <msg.Rspn_HeartBeating> (); var statusCode = data.Status; // List<msg.PlayerInfo> playerList = data.PlayerList; // 暂不使用心跳把拉回坐标 2019.3.26 facade.DispatchEvent (new CEvent (Event_Player.SyncPos_HeartBeat.ToString (), new object[]{ playerList })); DebugTool.LogRed(string.Format("收到服务器返回 心跳包:<<<<<<<<< statusCode :{0}", statusCode)); } catch (Exception ex) { DebugTool.LogError(ex.Message); } // TimerMgr.Register ("delayHeartBeat", 15f, () => { // DebugTool.LogRed ("发送心跳包"); // msg.PlayerInfo playerinfo = new msg.PlayerInfo(); // playerinfo.FrameIndex = 0 ; // playerinfo.Level = // Netmanager.sendHeartBeating (playerinfo); // }); #else foreach (var item in payloads) { DebugTool.LogYellow(item); } getData(); var statusCode = ReadInt(); DebugTool.LogRed(string.Format("收到服务器返回 心跳包:<<<<<<<<< statusCode :{0}", statusCode)); TimerMgr.Register("delayHeartBeat", 15f, () => { DebugTool.LogRed("发送心跳包"); Netmanager.sendHeartBeating(); }); #endif // facade.DispatchEvent (new CEvent (Event_Player.New_player.ToString (), new object[]{ data })); }
private void Updated() { if (minStopDis < role.stepOffset) { minStopDis = role.stepOffset; } //tt -= Time.deltaTime; if (this.role == null || this.anim == null) { return; } //============================================================================ if (_targetPoint != Vector3.zero) { targetPos = _targetPoint; } //======= debug print //if (tt < 0f) //{ //var boo = dis > minStopDis; //if (boo) Debug.Log("can move :: " + boo + " - > dis:: " + dis + " stopDis:: " + minStopDis + " / speed::" + curSpeed + " / turn::" + curTurn); //tt = 5f; //} Debug.DrawLine(this.role.transform.position, this.role.transform.position + this.role.gameObject.transform.forward, Color.grey); // Debug.DrawLine(this.role.transform.position, this.role.transform.position + Vector3.back, Color.green); // Debug.DrawLine(this.role.transform.position, this.role.transform.position + Vector3.forward, Color.green); // Debug.DrawLine(this.role.transform.position, this.role.transform.position + Vector3.left, Color.green); // Debug.DrawLine(this.role.transform.position, this.role.transform.position + Vector3.right, Color.green); // Debug.DrawLine(this.role.transform.position, targetPos + this.role.transform.forward * 1.2f, Color.yellow); // Debug.DrawLine(this.role.transform.position, targetPos, Color.blue); //======= // if (!_isMovingTarget) // { // vv = .4f; // } //================= // Debug.Log("->> " + dis +"|"+ minStopDis); // if (setDis > minStopDis) // { // arrived = false; // // step = 0; // } // else // { // arrived = true; // // step = 1; // } //================= dis = ((Vector3.Distance(this.role.transform.position, targetPos))); // + this.role.transform.forward * .2f))); var target_offset = targetPos + this.role.transform.forward * 1.2f; // Debug.DrawLine(targetPos + this.role.transform.forward * 1f ,targetPos, Color.red); // Debug.DrawLine(targetPos , target_offset, Color.red); // dir = 0f; // _dir = Mathf.Clamp(_dir, -.4f, .4f); if (arrived == false) { dir = Vector3.Dot(this.role.transform.right, target_offset - this.role.transform.position); // Debug.Log (" 未到达目的地 "); switch (walkMode) { case true: { //走 //Debug.Log("walk"); if (dis <= edgs) // / 2f)//近距 { if (Forward > .4f * ss) { Forward -= .001f * ss; } // Forward = 1f; else { Forward = .3f; } } else if (dis > edgs) //远距 { Forward = .6f * ss; } // Forward = 1f * ss; } break; case false: { //跑 //Debug.Log("run"); if (dis <= edgs) // / 2f)//近距 { if (Forward > .4f * ss) { Forward -= .001f * ss; } // Forward = 1f; else { Forward = .3f; } } else if (dis > edgs) //远距 { Forward = 1f * ss; } // Forward = 1f * ss; } break; } if (!lockOnece) { Forward = 0f; } //if (angle < 45f && Forward > .9f * ss) //{ // var rt = Quaternion.LookRotation(new Vector3(targetPos.x, 0f, targetPos.z) - new Vector3(role.transform.position.x, 0f, role.transform.position.z)); // //Debug.Log("ooo" + rt.eulerAngles); // this.role.transform.rotation = Quaternion.Lerp(role.transform.rotation, rt, Time.deltaTime * 10f); //} //dir = (int)(dir * 10f) / 10f; //_dir *= 200f; //dir = Mathf.Lerp(dir, _dir, Time.deltaTime * 5f); if (_isMovingTarget) { // edgs = .7f; // anim.SetFloat("Forward", Forward); } else { // edgs = .7f; // Debug.Log ("angle : " + angle); if (_moveAfterTurn) { var angle = Vector3.Angle(this.role.transform.forward, target_offset - role.transform.position); if (angle < 20f) { anim.SetFloat("Forward", Forward); } else { anim.SetFloat("Forward", 0f); } } else { anim.SetFloat("Forward", Forward); } } if (anim != null) { anim.SetFloat("Turn", dir); } } else { dir = 0f; Forward = 0f; if (anim != null) { anim.SetFloat("Forward", Forward); anim.SetFloat("Turn", dir); } } if (!lockOnece) { Forward = 0f; } //ball.transform.position = this.dog.position + Vector3.right; //ball2.transform.position = this.dog.position + Vector3.forward; //ball3.transform.position = this.dog.position; //float angle = Mathf.Acos(Vector3.Dot(targetPos, this.transform.position)) * Mathf.Rad2Deg; // } //================= var vv = 0f; //1.2f; var setDis = dis + vv; // Debug.Log("dis:"+dis + " | minStopDis: " + minStopDis); if (setDis <= minStopDis) { // 到达目的地 // if (toAutoToward && angle > 1f && !_isMovingTarget) // { // // Debug.DrawLine (this.role.transform.position, targetPos, Color.red, 3f); // Debug.Log("目标自动朝向s :"); // // anim.SetFloat("Turn", dir); // toTurn = true; // } // else // { if (lockOnece) { lockOnece = false; //Debug.Log("到了"); //----------------------------- if (toAutoToward) { Forward = 0f; anim.SetFloat("Forward", Forward); //__direction = Vector3.back; // __direction = Vector3.zero; switch (Direction) { case TowardDirection.South: __direction = Vector3.back; break; case TowardDirection.North: __direction = Vector3.forward; break; case TowardDirection.East: __direction = Vector3.left; break; case TowardDirection.West: __direction = Vector3.right; break; default: __direction = Vector3.zero; break; } //DebugTool.LogRed("Direction: " + Direction); var tt = 3f; //* Mathf.Abs(dir) / 360f; // DebugTool.LogYellow (tt + " | "+ dir); // DebugTool.LogCyan("目标已抵达1 : delayTime : " + tt); //DebugTool.LogCyan("目标已抵达1 :"); if (this._endCallback != null) { this._endCallback(); this._endCallback = null; } // var vxv = targetPos - (this.role.gameObject.transform.forward);//this.role.transform.position // var ang = Quaternion.LookRotation(vxv); // // DebugTool.LogRed(" : dir : " + Vector3.Angle(targetPos, this.role.gameObject.transform.forward) + " ang : " + ang.eulerAngles + " : " + angle ); // Debug.DrawLine(this.role.transform.position + this.role.gameObject.transform.forward, targetPos, Color.yellow); TimerMgr.Register("delayTurnAnim", tt, () => { arrived = true; // DebugTool.LogCyan ("delayTurnAnim stop"); dir = 0f; Forward = 0f; if (anim != null) { anim.SetFloat("Forward", Forward); // anim.SetFloat ("Turn", dir); } //DebugTool.LogCyan("目标已抵达2 :"); // if (this._endCallback != null) { // this._endCallback (); // this._endCallback = null; // // } }, () => { //DebugTool.LogCyan("目标已抵达 :turn :: " + dir); // DebugTool.LogCyan ("delayTurnAnim" + _dir); //dir = (int)(dir * 10f) / 10f; //_dir *= 200f; targetPos = this.role.transform.position + __direction * .5f; // target = this.role.transform.position + __direction * .51f; var _dir = Vector3.Dot(this.role.transform.right, targetPos - this.role.transform.position); this.dir = _dir; // dir = Mathf.Lerp (dir, _dir, Time.deltaTime * 5f); if (anim != null) { anim.SetFloat("Turn", dir); Forward = 0f; anim.SetFloat("Forward", Forward); } // if (dir < 1f) { // //Debug.Log("目标已抵达 : after turn" + Direction); // this._endCallback (); // this._endCallback = null; // } }); } else { // TimerMgr.Register ("delayStopAnim", 1.5f, () => { // DebugTool.LogCyan ("delayStopAnim"); arrived = true; Forward = 0f; if (anim != null) { anim.SetFloat("Forward", Forward); // anim.SetFloat ("Turn", dir); } //DebugTool.LogCyan("目标已抵达 :"); if (this._endCallback != null) { this._endCallback(); this._endCallback = null; // arrived = true; } //----------------------------- // }); } } // this.role.transform.position += (targetPos - this.role.transform.position) * Time.deltaTime; // } _targetPoint = Vector3.zero; } }