• Examples (Unity)
• Examples (iOS)
• Examples (Java/Android)
• Examples (C++)
Server API Documentation


» Unity/C# examples

In this section of the documentation we provide a series of brief tutorials on the C# examples for the Unity platform distributed as a specific package on the SmartFoxServer 2X download page. Specifically the tutorials refer to the Unity 2017.1 examples, but the concepts and the code to interact with the SFS2X API are valid for any version of Unity (unless otherwise noted).

Most tutorials analyze a single example, describing its objectives, giving an insight into the SmartFoxServer features it wants to highlight and providing the direct link to download the source code, which includes all the assets required to compile and test it (both client and — if existing — server side). If necessary, code excerpts are provided in the tutorial itself, in order to better explain the approach that was followed to implement a specific feature. At the bottom of the tutorial, additional resources are linked if available.

The tutorials follow an increasingly complexity curve from basic server connections over chat messaging to full realtime games with authoritative server extension.

Specifically the examples will show:

  1. basic connection
  2. chat messaging and room management
  3. buddy list management
  4. game rooms and extension messaging
  5. simple client side 3d object movement
  6. server authoritative first person shooter
  7. demo of the MMO-related features
  8. clients synchronization in a space shooter game
  9. protocol encryption

» Usability on different Unity deployment targets

All examples run seamless and are interoperable on the following build targets:

Other platforms might be compatible with the examples, but haven't been tested directly.

The user interfaces have been developed primarily for desktop usage, so they might not fit 100% into mobile screen size without a little extra work. Also they are based on the UI system available in Unity since version 4.6.

Please note that due to the different requirements of the Unity build targets, the SmartFoxServer C# API contained in the examples is made of three separate DLLs: a DLL specific for WebGL builds, a DLL for Universal Windows Platform builds and a DLL for all other Unity target platforms (including the Unity Editor itself).
Most examples use all three DLLs in separate subfolders under the Plugins folder. Each DLL is assigned to its target by clicking on it and selecting one or more platforms in the Inspector panel as follows:

Starting from Unity 2018.2, using a separate DLL for Universal Windows Platform builds is not needed anymore. You can assign the generic SmartFox2X.dll to that platform too.
Check this link for more information on the API setup.

» Usability on non-Unity platforms

The client API is fully usable on other .NET enabled platforms like ASP.NET or console applications and is thus not limited to Unity usage. The examples are not directly compilable on these platforms, but all relevant C# code is placed in the same Scripts folder and it's 99% usable via copy/paste in a different context.

When using the API on these targets you will have to either run the API in non-thread safe mode or process the callback events in a timer. Check this link for more information on non-thread safe mode.

» Requirements

Unless otherwise noted inside the tutorials:

All the examples make use of the latest version of the SmartFoxServer 2X C# API available at the time of their development. As the API evolve in time (bug fixes, new features), we strongly recommend that, after downloading an example, you overwrite the included API DLL files with those provided in the latest SmartFoxServer C# API package available on our website.