You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
2.5 KiB

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Networking;
  5. namespace Multiplayer
  6. {
  7. public class PlayerMsgID
  8. {
  9. public const short Position = 200;
  10. public const short Rotation = 201;
  11. public const short Lobby = 202;
  12. public const short GameWin = 203;
  13. public const short GameOver = 204;
  14. public const short GameStart = 205;
  15. }
  16. public class PlayerMsg : MessageBase
  17. {
  18. public byte ID;
  19. public PlayerMsg() { }
  20. public PlayerMsg(byte playerID)
  21. {
  22. this.ID = playerID;
  23. }
  24. public override void Serialize(NetworkWriter writer)
  25. {
  26. writer.Write(ID);
  27. }
  28. public override void Deserialize(NetworkReader reader)
  29. {
  30. ID = reader.ReadByte();
  31. }
  32. }
  33. public class VectorMsg : PlayerMsg
  34. {
  35. public Vector3 vector;
  36. public VectorMsg() { }
  37. public VectorMsg(byte PlayerID, Vector3 Vector) : base(PlayerID)
  38. {
  39. this.vector = Vector;
  40. }
  41. public override void Serialize(NetworkWriter writer)
  42. {
  43. base.Serialize(writer);
  44. writer.Write(vector);
  45. }
  46. public override void Deserialize(NetworkReader reader)
  47. {
  48. base.Deserialize(reader);
  49. vector = reader.ReadVector3();
  50. }
  51. }
  52. public class QuaternionMsg : PlayerMsg
  53. {
  54. public Quaternion quaternion;
  55. public QuaternionMsg() { }
  56. public QuaternionMsg(byte PlayerID, Quaternion quaternion) : base(PlayerID)
  57. {
  58. this.quaternion = quaternion;
  59. }
  60. public override void Serialize(NetworkWriter writer)
  61. {
  62. base.Serialize(writer);
  63. writer.Write(quaternion);
  64. }
  65. public override void Deserialize(NetworkReader reader)
  66. {
  67. base.Deserialize(reader);
  68. quaternion = reader.ReadQuaternion();
  69. }
  70. }
  71. public class StringMsg : PlayerMsg
  72. {
  73. public string String;
  74. public StringMsg() { }
  75. public StringMsg(byte PlayerID, string String) : base(PlayerID)
  76. {
  77. this.String = String;
  78. }
  79. public override void Serialize(NetworkWriter writer)
  80. {
  81. base.Serialize(writer);
  82. writer.Write(String);
  83. }
  84. public override void Deserialize(NetworkReader reader)
  85. {
  86. base.Deserialize(reader);
  87. String = reader.ReadString();
  88. }
  89. }
  90. }