Главная » Статьи » Unity3D Multiplayer

Урок 6.Мультиплеер в StarTrooper. Клиент Сервер. UDP Broadcast.

Теперь займемся над созданием второго типа соединения – UDP Broadcast Connection, на прошлом уроке мы написали первый тип соединения MasterServer/Client.

1) Создайте новую сцену – UDPServer.

2) Создайте новый C# скриптUDPConnectionGUI.

3) Перетащите UDPConnection в папку Plugins.

4) Создайте новый empty GameObjectUDPServer.

5) Добавьте скрипт UDPConnectionGUI в объект UDPServer.

Горячие обзоры про дисковые накопители и цифровое фото читай на http://www.root-master.ru

6) Добавьте компонент NetworkView  в UDPServer, и измените параметр Observed на UDPServer (Transform) и откройте скрипт UDPConnectionGUI, введите в него:

  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Net;
  4. using System.Net.Sockets;
  5. using System.Threading;
  6. public class UDPConnectionGUI : MonoBehaviour {
  7. private UdpClient server;
  8. private UdpClient client;
  9. private IPEndPoint receivePoint;
  10. private string port = "6767";
  11. private int listenPort = 25001;
  12. private string ip = "0.0.0.0";
  13. private string ip_broadcast = "255.255.255.255";
  14. private bool youServer = false;
  15. private bool connected = false;
  16. private string server_name = "";
  17. private int clear_list = 0;
  18. public void Update() {
  19. if(clear_list++>200)
  20. {
  21. server_name = "";
  22. clear_list = 0;
  23. }
  24. 30
  25. }
  26. public void Start() {
  27. Debug.Log("Start");
  28. LoadClient();
  29. }
  30. public void LoadClient() {
  31. client = new UdpClient(System.Convert.ToInt32(port));
  32. receivePoint = new
  33. IPEndPoint(IPAddress.Parse(ip),System.Convert.ToInt32(port));
  34. Thread startClient = new Thread(new ThreadStart(start_client));
  35. startClient.Start();
  36. }
  37. public void start_client() {
  38. bool continueLoop =true;
  39. try
  40. {
  41. while(continueLoop)
  42. {
  43. byte[] recData = client.Receive(ref receivePoint);
  44. System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
  45. server_name = encode.GetString(recData);
  46. if(connected)
  47. {
  48. server_name = "";
  49. client.Close();
  50. break;
  51. }
  52. }
  53. } catch {}
  54. }
  55. public void start_server() {
  56. try
  57. {
  58. while(true)
  59. {
  60. System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
  61. byte[] sendData = encode.GetBytes(Network.player.ipAddress.ToString());
  62. 31
  63. server.Send(sendData,sendData.Length,ip_broadcast,System.Convert.ToInt32(port));
  64. Thread.Sleep(100);
  65. }
  66. } catch {}
  67. }
  68. void OnGUI() {
  69. if(!youServer)
  70. {
  71. if(GUI.Button(new Rect(10,10,100,30),"Start Server"))
  72. {
  73. youServer = true;
  74. Network.InitializeServer(32, listenPort);
  75. string ipaddress = Network.player.ipAddress.ToString();
  76. ip = ipaddress;
  77. client.Close();
  78. server = new UdpClient(System.Convert.ToInt32(port));
  79. receivePoint = new
  80. IPEndPoint(IPAddress.Parse(ipaddress),System.Convert.ToInt32(port));
  81. Thread startServer = new Thread(new ThreadStart(start_server));
  82. startServer.Start();
  83. }
  84. if(server_name!="")
  85. {
  86. if(GUI.Button(new Rect(20,100,200,50),server_name))
  87. {
  88. connected = true;
  89. Network.Connect(server_name, listenPort);
  90. }
  91. }
  92. }
  93. else
  94. {
  95. if(GUI.Button(new Rect(10,10,100,30),"Disconnect"))
  96. {
  97. Network.Disconnect();
  98. youServer = false;
  99. server.Close();
  100. LoadClient();
  101. }
  102. }
  103. }
  104. }

Всё на этом мы написали тип соединения UDP Broadcast Connection.


Категория: Unity3D Multiplayer | Добавил: Шаке (24.03.2012)
Просмотров: 12440 | Комментарии: 3
Всего комментариев: 3
3 AMisha Ml  
0
Мои дорогоие - Здравствуйте Все!

Вот попалось на форуме :http://globalkras.ru/news/id/3868 - Заправка картриджей

Может попробовать купитьhttp://saiga-rsn.ru/Uchenie_razrabotayut_pischevoy_D/ - Заправка картриджей

2 Партнерские программы  
0
http://partnerkas.ru/fayloobmenniki/zarabotay-s-vip-file.html - Заработай с VIP-FILE
http://partnerkas.ru/farma-partnerki/farm-partnerka-ot-doktor-dik.html - Фарма партнерки от Доктор Дик
http://partnerkas.ru/na-raznie-temi/partnerka-iur-konsultatsiy.html - Партнерка юр.консультаций
http://partnerkas.ru/partkurs/novaya-partnerskaya-programma.html - Новая партнерская программа
http://partnerkas.ru/na-raznie-temi/partnerskaya-programma-pokupka-prodazha-ssilok.html - Партнерская программа - покупка, продажа ссылок

1 Книги  
0
http://muzka.net - фэнтези книга
http://muzka.net - rybub xbnfnm jykfqy
http://muzka.net - читать научную фантастику
http://muzka.net - книги интересные читать
http://muzka.net - рейтинг триллеры

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
/>meta http-equiv=