19.05.2013, 20:32
(Tento příspěvek byl naposledy změněn: 20.05.2013, 07:06 uživatelem G-Phys. Edited 9 times in total.)
Já zatím jen tak zkouším (když se nudím) vytvořit něco podobného hře Mario catch na nintendu a pokud se mi to povede dotáhnout do funkční fáze tak tomu budu říkat Derpy catch , zatím jsem zkutil jen jeden script v JS pro Unity3D (trvalo mi to celí den než mi to začalo fungovat jak má ), který mi zajišťuje možnost založit server nebo se k serveru připojit. Uvidíme co z teho vznikne
Kdyby někoho zajímal ten script tak je tady: (udělal jsem tam malou chybku, ale už je opravená)
Kdyby někoho zajímal ten script tak je tady: (udělal jsem tam malou chybku, ale už je opravená)
Kód:
// network
var pass = "password";
var cpass = "password";
private var maxplayers : int = players -1; //měl jsem tu překlep, napsal jsem -2 místo -1
private var players : int = 2;
var ip = "127.0.0.1";
private var playerCount: int = 0;
function LaunchServer() {
Network.incomingPassword = pass;
var useNat = !Network.HavePublicAddress();
Network.InitializeServer(maxplayers, 25001, useNat);
}
function ConnectToServer() {
Network.Connect(ip, 25001, cpass);
}
function OnPlayerConnected(player: NetworkPlayer) {
log = "Player" + playerCount++ + " connected!";
}
function OnConnectedToServer() {
log = "Connected to server";
}
function OnPlayerDisconnected(player: NetworkPlayer) {
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
function OnFailedToConnect(error: NetworkConnectionError) {
log = "Could not connect to server: "+ error + "!";
}
// gui
private var log = " ";
var cWindowRect : Rect = Rect(20, 20, 220, 70);
var sWindowRect : Rect = Rect(20, 95, 220, 70);
function OnGUI() {
cWindowRect = GUI.Window (0, cWindowRect, ConnectWindow, "Connect to server");
sWindowRect = GUI.Window (1, sWindowRect, ServerWindow, "Start the server");
if(Network.isServer) {log = "Server is running";} else {if(Network.isClient){log = "Client is connected";}}
GUI.Label(Rect(3,0,600,20),log);
}
// windows
function ConnectWindow(windowID : int) {
ip = GUI.TextField (Rect (10, 20, 110, 20), ip, 25);
cpass = GUI.TextField (Rect (10, 42, 110, 20), cpass, 25);
if(Network.isClient) {if(GUI.Button(Rect(125,20,85,20),"Disconnect")) {Network.Disconnect(); log = "Disconected";}} else {if(GUI.Button(Rect(125,20,85,20),"Connect")) {ConnectToServer();}}
}
function ServerWindow(windowID : int) {
pass = GUI.TextField (Rect (10, 42, 110, 20), pass, 25);
GUILayout.BeginHorizontal();
players = GUILayout.HorizontalSlider(players, 2, 12, GUILayout.Width(70));
GUILayout.Label(players + "/20",GUILayout.Width(35));
GUILayout.EndHorizontal();
if(Network.isServer) {if(GUI.Button(Rect(125,20,85,20),"Disconnect")) {Network.Disconnect();log = "Disconected";}} else {if(GUI.Button(Rect(125,20,85,20),"Host")) {LaunchServer();}}
}