Skip to main content

Create Network Cube

In this guide we will spawn cube and synchronize position of cube by network

Let's begin!

Networked prefab​

Every networked object must have a Ragon Link component, this component contains information about the network state of the object do all replication work.

Create GameObject named for example Player and add Ragon Link component:

img.png

Ragon Transform Component​

To replicate the position we will use the Ragon Transform Component, add it to our player object, set Target and also set the switch to synchronize the position

img.png

Player Behaviour​

Now we should create our component for controlling:

public class Player : RagonBehaviour
{
public override void OnUpdateEntity()
{
var direction = Vector3.zero;
var rotation = transform.rotation.eulerAngles.y;

if (Input.GetKey(KeyCode.A))
{
direction += transform.right * 10 * Time.deltaTime;
}
else if (Input.GetKey(KeyCode.D))
{
direction -= transform.right * 10 * Time.deltaTime;
}

transform.rotation = Quaternion.Euler(0, rotation, 0);
transform.position += direction;
}
}

Defining player prefab​

Define our player prefab in Game Network created in previous step:

public class GameNetwork : MonoBehaviour, IRagonListener
{
[SerializeField] private GameObject PlayerPrefab;

Edit OnJoined method at Game Network script, add code for spawn our player

public void OnJoined()
{
Debug.Log("Joined");
RagonNetwork.Room.CreateEntity(PlayerPrefab);
}

Play​

tip

Don't forget to turn on in Project Build Settings

  • Run in Background
  • Fullscreen Mode to Windowed

Open Ragon Tools windows:

ragon-tools-popup

Set checkbox Build true and Players count 2

ragon-tools

And press Play Only Clients, and it should build and open two clients like on the gif below:

ragon-play