TeacherSocketClass.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. //课程的名字对应的ID
  5. public struct SubjectData
  6. {
  7. public string subject_name;
  8. public string id;
  9. }
  10. //课程的结构
  11. public struct CourseConfigData
  12. {
  13. public string subject_id;
  14. public string id;
  15. public string desc;
  16. public string course_name;
  17. public string open_audio;//是否开启语音
  18. public bool isFinish;//只有是已经做完的 才可以显示
  19. public bool isLock;//锁有锁的进不去 但是看得见
  20. public int sort_id;//排序优先级
  21. }
  22. public class StartConnectData
  23. {
  24. public short user_type;//用户类型
  25. public short school_id;//学校id
  26. public string user_name;//名字
  27. //public string device_id;//设备唯一编号
  28. }
  29. //房间列表信息
  30. public class RoomBackData
  31. {
  32. public short user_type;//用户类型
  33. public short school_id;//学校id
  34. public string user_name;//名字
  35. }
  36. public class BrocastClass
  37. {
  38. public short mType;//手柄射线是0 老师操作发给学生的 是1 学生
  39. }
  40. //位置信息
  41. public class MoveData
  42. {
  43. public Vector3 pos;
  44. }
  45. //核心操作信息 这个里面尽量只处理和点击有关的
  46. public class OperateData
  47. {
  48. public short index;//一个根据枚举类型来区别操作的
  49. public short canshu;//第一个参数
  50. }
  51. //选择题的数据传输
  52. public class SelectData
  53. {
  54. public short index;//题目编号
  55. public short res;//ABCD 选项 -1表示没有选
  56. public int costTime;//做题时间
  57. public int timeStamp;
  58. }
  59. //游戏得分
  60. public class ScoreData
  61. {
  62. public int score;//得分
  63. public int costTime;//用时
  64. }
  65. public class TimeLineData
  66. {
  67. public short data0;//
  68. public short data1;//
  69. public short data2;//
  70. }
  71. // item列表的点击参数较多 专门做一个类型
  72. public class ItemClickData
  73. {
  74. //public int type;// 点击的Item类型 可以判断是点击了哪一类哪个控件的
  75. public int firstId;//唯一的id
  76. public int secondId;//二级id
  77. public int thirdId;//三级级id
  78. public int forthId;//四级级id
  79. public float per;//播放的百分比 timeline 的进度 翻页的页数 电影的时长
  80. public int index;//Jump 的索引 页数
  81. public int playType;//播放的状态 TimeLineUIClickType 对应的这个
  82. public int timeStamp;
  83. public ItemClickData()
  84. {
  85. ResetTime();
  86. }
  87. public void ResetTime()
  88. {
  89. timeStamp = CStaticMethod.CurTimeStamp();
  90. }
  91. }
  92. //房间的列表信息
  93. public class SocketRoomItemArrayData
  94. {
  95. public short ct;//房间数量
  96. public SocketOnlineRoomItemData[] datas;
  97. }
  98. //老师创建房间时候发送的房间信息
  99. public class SocketRoomItemData
  100. {
  101. public int owner_id;//房主的ID
  102. public string owner_name;//老师的名字
  103. public string course_name;//自定义的房间名字
  104. public short subject_id;//创建的课程类别
  105. public short course_id;//课程的编号
  106. public bool is_public;//是否是公开课
  107. }
  108. //老师创建房间时候同步的房间信息
  109. public class SocketOnlineRoomItemData
  110. {
  111. public int owner_id;//房主的ID
  112. public string owner_name;//老师的名字
  113. public string course_name;//自定义的房间名字
  114. public short subject_id;//创建的课程类别
  115. public short course_id;//课程的编号
  116. public short room_id;//房间号码
  117. public short onlineCt;//在线人数
  118. public bool is_public;//是否是公开课
  119. public string AudioRoomName
  120. {
  121. get {
  122. return "jiaoyu_" + course_name.Replace("\0", "") + "_"+ room_id ;
  123. }
  124. }
  125. }
  126. //刚登陆时候返回去的默认的或者当前的房间号
  127. public class CurRoomData
  128. {
  129. public short room_id;//房间号码
  130. }
  131. public class DeleteRoomData
  132. {
  133. public short room_id;//房间号码
  134. }
  135. //发送的用户进入或者退出房间的消息
  136. public class UserEnterData
  137. {
  138. public short room_id;//房间号码
  139. public bool is_enter;// true 表示进入 false表示退出
  140. }
  141. //发送的用户进入或者退出房间的消息
  142. public class UserEnterBackData
  143. {
  144. public short user_type;//用户类型
  145. public string user_name;//学生的名字
  146. public bool is_enter;// true 表示进入 false表示退出
  147. }
  148. public class StudentListBackData
  149. {
  150. public short ct;
  151. public UserData[] data;
  152. }
  153. public class UserData
  154. {
  155. public int user_id;
  156. public short user_type;//用户类型
  157. public string user_name;//用户的名字
  158. }
  159. public class UserReport
  160. {
  161. //这里不存名字
  162. public string user_id;
  163. public string report_id;//题目id
  164. public int report_type;//题目的类型 0 表示选择题 1表示是走进度的 -1表示是游戏得分
  165. public float value = -1;//具体的值 -1 表示没有成绩
  166. public int costTime;//做题时间
  167. public int timeStamp;//提交答案的时间点
  168. public enum ReportType
  169. {
  170. Default,//默认没有状态
  171. Slider,//百分比
  172. Score,//计分游戏
  173. }
  174. }
  175. // 1013
  176. public class RoomOnlineData
  177. {
  178. public short room_id;//房间号码
  179. public short online_ct;//在线人数
  180. }
  181. //切换房主
  182. public class ChangeOwner
  183. {
  184. public int owner_id;//房主的ID
  185. public short room_id;//房间号码
  186. //public string owner_name;//老师的名字
  187. }
  188. public class RefreshData
  189. {
  190. public int pannelType;//当前面板的索引
  191. public int pageIndex;//当前的页数
  192. public int timelineMode;//TimeLine 的播放状态 暂停 开始
  193. public int chapterIndex;// 章节索引
  194. public int btnIndex;//当前章节Timeline的索引
  195. public int mrMode;//MR 的开启状态
  196. }
  197. public class VoiceChatPacket
  198. {
  199. public int Length;
  200. public int Compression;
  201. public byte[] Data;
  202. }
  203. public class AnswerData
  204. {
  205. public short id;//当前答案的id
  206. public bool isOpen;//打开还是关闭
  207. }
  208. public class DrawData
  209. {
  210. public int mType;// 开始 结束 正在画
  211. public float color_r;//颜色值预留
  212. public float color_b;//颜色值预留
  213. public float color_g;//颜色值预留
  214. public float color_a;//颜色值预留
  215. public float size;//画笔的尺寸
  216. public Vector3 point;//坐标点
  217. public Color GetColor()
  218. {
  219. return new Color(color_r, color_b, color_g, color_a);
  220. }
  221. public void SetColor(Color color)
  222. {
  223. color_r = color.a;
  224. color_b = color.b;
  225. color_g = color.g;
  226. color_a = color.a;
  227. }
  228. public DrawDataType CurType
  229. {
  230. get { return (DrawDataType)mType; }
  231. }
  232. public void ChangeType(DrawDataType v)
  233. {
  234. mType = (int)v;
  235. }
  236. public enum DrawDataType
  237. {
  238. Default,//默认没有状态
  239. Ready,//进入画画模式 监听到再次点击就是画线
  240. Select,//选择颜色
  241. Start,//开始画 上一部是Ready
  242. Pasue,//暂停
  243. End,//结束
  244. CleanLast,//撤销上一步
  245. CleanALL,//撤销所有
  246. Exit,//退出画画模式
  247. }
  248. }
  249. //房间的语音信息
  250. public class AudioData
  251. {
  252. public string roomName;//房间名字
  253. public string roomId;//语音的房间号
  254. public bool isOpen;//语音是否开启
  255. public string StrInfo()
  256. {
  257. return roomName + "_" + roomId;
  258. }
  259. }
  260. public class TestData
  261. {
  262. public int testA;
  263. public string testStr;
  264. public short testShourt;
  265. public bool boolTest;
  266. }
  267. public class MRData
  268. {
  269. public string mrName;
  270. public int test;// 1 开始 2 结束
  271. public int score;//当前得分
  272. public int timeStamp;//时间
  273. }
  274. public enum MRGameMode
  275. {
  276. Enter,// 默认进入
  277. Refresh,//刷新分数
  278. Exit,//退出
  279. }
  280. public class SocketCoreData
  281. {
  282. public short ct;//数据的数量
  283. public SocketClassData[] classes;
  284. public System.Object[] datas;
  285. }
  286. public class SocketClassData
  287. {
  288. public string DataClassName;//参数自定义类名
  289. }