- Home /
i want to create a multiplayer like fruit ninja, with a server and a client and only ONE scene but i can't make this with synced colours, see the video please
sorry for my bad english but i'm italian, how can i sync the colours in the both scenes? i want the same colours of balls and string, if anyone can solve it please help me, this is for high school project, thanks!
this is the video: http://youtu.be/h_m5qGl3A5I
and these are the two scripts with problems:
instantiate.js
var SpaceCraft : Transform;
function OnNetworkLoadedLevel () {
// Instantiating SpaceCraft when Network is loaded
if(Network.isClient)
Network.Instantiate(SpaceCraft, transform.position, transform.rotation, 0);
}
function OnPlayerDisconnected (player : NetworkPlayer) {
Network.RemoveRPCs(player, 0);
Network.DestroyPlayerObjects(player);
}
ConnectionGUI.js
var remoteIP = "127.0.0.1";
var remotePort = 25000;
var listenPort = 25000;
var useNAT = false;
var yourIP = "";
var yourPort = "";
var ipaddress;
var port;
function OnGUI () {
// Checking if you are connected to the server or not
if (Network.peerType == NetworkPeerType.Disconnected)
{
// If not connected
if (GUI.Button (new Rect(10,10,100,30),"Connect"))
{
Network.useNat = useNAT;
// Connecting to the server
Network.Connect(remoteIP, remotePort);
}
if (GUI.Button (new Rect(10,50,100,30),"Start Server"))
{
Network.useNat = useNAT;
// Creating server
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);
}
}
// Fields to insert ip address and port
remoteIP = GUI.TextField(new Rect(120,10,100,20),remoteIP);
remotePort = parseInt(GUI.TextField(new
Rect(230,10,40,20),remotePort.ToString()));
}
else
{
// Getting your ip address and port
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"))
{
// Disconnect from the server
Network.Disconnect(200);
}
}
}
function OnConnectedToServer () {
// Notify our objects that the level and the network are ready
for (var go : GameObject in FindObjectsOfType(GameObject))
go.SendMessage("OnNetworkLoadedLevel",
SendMessageOptions.DontRequireReceiver);
}
Answer by Julien-Lynge · Jan 30, 2013 at 03:08 AM
As I understand it, you want to save information between scenes. Normally, Unity unloads everything from a scene when you change to a new scene. You want to keep color information so you can use it in the new scene.
There are several ways to do this. You can use the method DontDestroyOnLoad to keep a script from being destroyed. You can save information to this script, and then use it in the new scene.
You can also save information to a static variable. Static variable are separate from any instance of a script, so if the component gets destroyed the static variable does not. You can then access the static variable from the new scene to get your information.
Good luck.
Your answer
Follow this Question
Related Questions
how do get camera, scene enemy in photon unity ? 0 Answers
How do you use a camera from another scene on your skybox? 1 Answer
i need help about players hands positions in 2D multiplayer card game 0 Answers
Scene View Camera does not rotate(Different issue than the usual...) 0 Answers
Cannot close/unload a scene that is open in editor during playmode (using C# code)? 3 Answers