- Home /
how can I present a choice under function OnNetworkLoadedLevel
So I wanted to use the networking script so that when your connected you can choose between two types of ships,and they spawn at the empty object attached to it. first I thought of GUI buttons but they don't work unless your under OnGUI. I also tried Inputs but I guess that doesn't work. I'm a beginner at coding so don't tell me anything really confusing. thanks in advance
this is what I have right now:
var Player : Transform;
var Player2 : Transform;
function OnNetworkLoadedLevel ()
{
if( Input.GetKey( KeyCode.Q ) ) {
Network.Instantiate(Player, transform.position, transform.rotation, 0);
}// Instantiate object to the network in the position of Spawn
if( Input.GetKey( KeyCode.E ) ) {
Network.Instantiate(Player2, transform.position, transform.rotation, 0);
}
}
Answer by whydoidoit · May 28, 2012 at 03:42 PM
You can't wait for something like that - I think that's your problem. OnNetworkLoadedLevel isn't going to wait for user input.
Your best bet is to have a "state" when the level is loaded that shows a choice using an OnGUI - when the player has chosen (by clicking a button I guess) you would instantiate the ship and hide the OnGUI.
var chosenShip = false;
function OnGUI() {
if(chosenShip)
return;
if(GUILayout.Button("Ship1")) {
//Instantiate the ship
chosenShip = true;
}
//Other buttons etc
}
You would attach this script to some empty game object that is loaded with the scene.
Now bear in mind you might want enemies etc waiting until that ship is chosen too. You need an easy way to know if the game is ready:
In that case you can do this:
public static var chosenShip : boolean;
function Start() {
chosenShip = false;
}
function OnGUI() {
if(chosenShip)
return;
if(GUILayout.Button("Ship1")) {
//Instantiate the ship
chosenShip = true;
}
//Other buttons etc.
}
Let's say the script is called ChooseShip - you can now get anything to check whether it is chosen by doing
if(ChooseShip.chosenShip)
//Do something
else
//Do something different
Answer by Tioanbeast · May 28, 2012 at 04:13 PM
thanks for the help.
No problem! Please mark the question as answered if your happy with it. It get's it off the list of unanswered questions that a lot of us use to find things to help with.
Also put things like you comment above as a comment otherwise it confuses people because it's currently listed as an answer :)
Your answer
Follow this Question
Related Questions
Simple code is not recognizing tag anymore. 0 Answers
Multiplayer Problems 0 Answers
Instantiated object from client player not moving when spawned. How can I fix this? 0 Answers
Player Spawning Network issue 1 Answer
Big Delay in Networking 0 Answers