SocketPlayer.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class SocketPlayer : JC.SocketIO.SocketIOClient
  5. {
  6. public PKGameMode_OnlinePK gameMode;
  7. void Start()
  8. {
  9. connectServer("http://192.168.101.14:8000/socket.io/");
  10. }
  11. public override void onLoad()
  12. {
  13. Debug.Log("onLoad");
  14. call("RandomMatchRoom", 0);
  15. }
  16. public override void onReload()
  17. {
  18. Debug.Log("onReload");
  19. }
  20. public override void onDestroy()
  21. {
  22. Debug.Log("onDestroy");
  23. }
  24. public override void onMiss()
  25. {
  26. Debug.Log("onMiss");
  27. }
  28. bool isMyTime = false;
  29. float uploadTimeCountDown = 0;
  30. void Update() {
  31. if (playerIndex < 0) return;
  32. isMyTime = playerIndex == gameMode.currentPlayerIndex;
  33. BowCamera.ins.banUserControl = !isMyTime;
  34. if (isMyTime) {
  35. uploadTimeCountDown -= Time.deltaTime;
  36. if (uploadTimeCountDown <= 0) {
  37. uploadTimeCountDown = 1f / 30;
  38. UploadPKGameData();
  39. }
  40. } else {
  41. BowCamera.ins.transform.rotation = Quaternion.Lerp(BowCamera.ins.transform.rotation, bowCameraTargetRotation, Time.deltaTime * 10);
  42. }
  43. }
  44. PKGameData pkGameDataSend = new PKGameData();
  45. void UploadPKGameData() {
  46. Quaternion bowCameraR = BowCamera.ins.transform.rotation;
  47. pkGameDataSend.rx = bowCameraR.x;
  48. pkGameDataSend.ry = bowCameraR.y;
  49. pkGameDataSend.rz = bowCameraR.z;
  50. pkGameDataSend.rw = bowCameraR.w;
  51. call("UploadPKGameData", pkGameDataSend);
  52. }
  53. Quaternion bowCameraTargetRotation;
  54. public void OnReceivePKGameData(PKGameData pkGameData) {
  55. bowCameraTargetRotation.x = pkGameData.rx;
  56. bowCameraTargetRotation.y = pkGameData.ry;
  57. bowCameraTargetRotation.z = pkGameData.rz;
  58. bowCameraTargetRotation.w = pkGameData.rw;
  59. }
  60. //被服务器调用接口
  61. int roomID;
  62. int playerIndex = -1;
  63. public void OnJoinRoomSuccess(int roomID, int playerIndex) {
  64. this.roomID = roomID;
  65. this.playerIndex = playerIndex;
  66. Debug.Log("OnJoinRoomSuccess " + roomID + ", " + playerIndex);
  67. }
  68. }
  69. public class PKGameData {
  70. public float rx;
  71. public float ry;
  72. public float rz;
  73. public float rw;
  74. }