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.

119 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 GameStart = 202;
  12. public const short GameWin = 203;
  13. public const short GameOver = 204;
  14. }
  15. public class PlayerMsg : MessageBase
  16. {
  17. public byte ID;
  18. public PlayerMsg() { }
  19. public PlayerMsg(byte playerID)
  20. {
  21. this.ID = playerID;
  22. }
  23. public override void Serialize(NetworkWriter writer)
  24. {
  25. writer.Write(ID);
  26. }
  27. public override void Deserialize(NetworkReader reader)
  28. {
  29. ID = reader.ReadByte();
  30. }
  31. }
  32. public class VectorMsg : PlayerMsg
  33. {
  34. public Vector3 vector;
  35. public VectorMsg() { }
  36. public VectorMsg(byte PlayerID, Vector3 Vector) : base(PlayerID)
  37. {
  38. this.vector = Vector;
  39. }
  40. public override void Serialize(NetworkWriter writer)
  41. {
  42. base.Serialize(writer);
  43. writer.Write(vector);
  44. }
  45. public override void Deserialize(NetworkReader reader)
  46. {
  47. base.Deserialize(reader);
  48. vector = reader.ReadVector3();
  49. }
  50. }
  51. public class QuaternionMsg : PlayerMsg
  52. {
  53. public Quaternion quaternion;
  54. public QuaternionMsg() { }
  55. public QuaternionMsg(byte PlayerID, Quaternion quaternion) : base(PlayerID)
  56. {
  57. this.quaternion = quaternion;
  58. }
  59. public override void Serialize(NetworkWriter writer)
  60. {
  61. base.Serialize(writer);
  62. writer.Write(quaternion);
  63. }
  64. public override void Deserialize(NetworkReader reader)
  65. {
  66. base.Deserialize(reader);
  67. quaternion = reader.ReadQuaternion();
  68. }
  69. }
  70. public class StringMsg : PlayerMsg
  71. {
  72. public string String;
  73. public StringMsg() { }
  74. public StringMsg(byte PlayerID, string String) : base(PlayerID)
  75. {
  76. this.String = String;
  77. }
  78. public override void Serialize(NetworkWriter writer)
  79. {
  80. base.Serialize(writer);
  81. writer.Write(String);
  82. }
  83. public override void Deserialize(NetworkReader reader)
  84. {
  85. base.Deserialize(reader);
  86. String = reader.ReadString();
  87. }
  88. }
  89. }