Прохождение игры saints row. Наконец, мы реализуем последний тип соединения - Direct Connect. Для этого:
1) Откройте сцену StarTrooper.
2) Создайте новый JavaScript и
назовите его ConnectionGUI.
3) Перетащите, ранее созданный, скрипт к главной камере(MainCamera). Введите
в скрипте:
- var remoteIP =
"127.0.0.1";
- var remotePort =
25000;
- var listenPort =
25000;
- var useNAT = false;
- var yourIP =
"";
- var yourPort =
"";
- function Awake() {
- if
(FindObjectOfType(MasterServerGUI))
- this.enabled =
false;
- if(FindObjectOfType(UDPConnectionGUI))
- this.enabled =
false;
- }
- function OnGUI () {
- if (Network.peerType
== NetworkPeerType.Disconnected)
- {
- // Если не
соединен
- if (GUI.Button (new
Rect(10,10,100,30),"Connect"))
- {
- Network.useNat =
useNAT;
- // Соединение
с сервером
- Network.Connect(remoteIP,
remotePort);
- }
- if (GUI.Button (new
Rect(10,50,100,30),"Start Server"))
- {
- Network.useNat =
useNAT;
- // Создание
сервера
- Network.InitializeServer(32,
listenPort);
- // Notify our
objects that the level and the network is ready
- for (var go :
GameObject in FindObjectsOfType(GameObject))
- {
- go.SendMessage("OnNetworkLoadedLevel",
- SendMessageOptions.DontRequireReceiver);
- }
- }
- remoteIP =
GUI.TextField(new Rect(120,10,100,20),remoteIP);
- remotePort =
parseInt(GUI.TextField(new
- Rect(230,10,40,20),remotePort.ToString()));
- }
- else
- {
- // Если подключен
- // Взятие ip address и порта
- ipaddress =
Network.player.ipAddress;
- port =
Network.player.port.ToString();
- GUI.Label(new
Rect(140,20,250,40),"IP Adress: "+ipaddress+":"+port);
- if (GUI.Button (new
Rect(10,10,100,50),"Disconnect"))
- {
- // отсоединение
- Network.Disconnect(200);
- }
- }
- }
- function
OnConnectedToServer() {
- // Notify our
objects that the level and the network is ready
- for (var go :
GameObject in FindObjectsOfType(GameObject))
- go.SendMessage("OnNetworkLoadedLevel",
- SendMessageOptions.DontRequireReceiver);
- }
- function
OnDisconnectedFromServer () {
- if (this.enabled !=
false)
- Application.LoadLevel(Application.loadedLevel);
- else
- {
- var
_NetworkLevelLoad : NetworkLevelLoad =
- FindObjectOfType(NetworkLevelLoad);
- _NetworkLevelLoad.OnDisconnectedFromServer();
- }
- }
|
Теперь можете проверить работоспособность данного скрипта.
|