UNET

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(Known issues & workarounds)
(Snippets)
Line 53: Line 53:
 
= Snippets =
 
= Snippets =
  
 
+
<syntaxhighlight lang="csharp">
 
// ClientRpc is called on the server - invokes on clients
 
// ClientRpc is called on the server - invokes on clients
 
[ClientRpc]
 
[ClientRpc]
Line 59: Line 59:
 
Debug.Log( "Got message from the server: " + msg  );
 
Debug.Log( "Got message from the server: " + msg  );
 
}
 
}
 +
</syntaxhighlight>
  
 +
<br/>
 +
 +
<syntaxhighlight lang="csharp">
 
// Commands are called on clients - invokes on the server
 
// Commands are called on clients - invokes on the server
 
// Note that you can only send commands if you own the object it calls from
 
// Note that you can only send commands if you own the object it calls from
Line 66: Line 70:
 
Debug.Log( "Got message from a client: " + msg );
 
Debug.Log( "Got message from a client: " + msg );
 
}
 
}
 +
</syntaxhighlight>
 +
 +
<br/>
  
 +
<syntaxhighlight lang="csharp">
 
// SyncVars are automatically sent from the server to other clients.
 
// SyncVars are automatically sent from the server to other clients.
 
// Note that you still need a command to notify the server of the change
 
// Note that you still need a command to notify the server of the change
Line 77: Line 85:
 
Debug.Log( "Changed myString to " + myString );
 
Debug.Log( "Changed myString to " + myString );
 
}
 
}
 +
</syntaxhighlight>

Revision as of 18:54, 3 July 2015

Contents

Refs

Tutorials (video)

Unite 2014 (Aug. 27) - New Unity Networking in 5.x

UNET Part 1 - Setup and Movement Syncing (parts 2, 3, and 4 linked from video)

Unite 2015 (June 24th) - UNET example (Tanks demo) <- should be put on asset store soon

Unity 5 UNET Multiplayer Tutorials - Making a basic survival co-op

Unity’s demo projects

http://forum.unity3d.com/threads/unet-sample-projects.331978/ (← Network starter is nice, also scroll a little down to find transport layer demo; also note the comment by Evil Otaku if you are having issues connecting with iOS, Android or WP8)

Other info

https://www.assetstore.unity3d.com/en/#!/content/40756 Unity 5 Survival Shooter (NOT UNET)

Architecture Ideas

http://www.neatcorporation.com/Projects/Flowstorm/TempFiles/ChatRelay.jpg

Known issues & workarounds

Example from http://docs.unity3d.com/Manual/UNetInternetServicesOverview.html does not work:

http://forum.unity3d.com/threads/matchmaker-issue-working-from-the-same-pc-not-working-from-different-pc.336945/

// This seems to be occasionally required for online matchmaking
// This is your 5-digit project UNET ID at multiplayer.unity3d.com
// This is due to be fixed in an upcoming patch release (was not in 5.1.1p3)
void Awake() 
{
    PlayerPrefs.SetString( "CloudNetworkingId", "12345" );
}

Snippets

// ClientRpc is called on the server - invokes on clients
[ClientRpc]
public void RpcMyMethod( string msg ) {
	Debug.Log( "Got message from the server: " + msg  );
}


// Commands are called on clients - invokes on the server
// Note that you can only send commands if you own the object it calls from
[Command]
public void CmdMyMethod( string msg ) {
	Debug.Log( "Got message from a client: " + msg );
}


// SyncVars are automatically sent from the server to other clients.
// Note that you still need a command to notify the server of the change
// if it comes from a client. Hook is optional
[SyncVar(hook="OnSomeoneChangedMyString")]
public string myString;
 
public void OnSomeoneChangedMyString( string myString ) {
	this.myString = myString;
	Debug.Log( "Changed myString to " + myString );
}
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox