Sharing between gameobjects, variables, strings between scripts.

Hello guys, i am trying to share things between scripts. The first thing i would like to share is a type of level:

I have two levels, main menu and one game level. So the thing is the player selects a type of level in the main menu (like what type of models to use). There are total two type of different models. So now when the player clicks play after selecting the model, i want the script in the game level to receive the type of model information.

in this case, lets take it theme1 and theme2.

So if the player checks theme1, i want the script in this level to make a variable called result and point it to a script called TypeTheme1.
now, in the script whenever i point result i will get the things from TypeTheme1 scripts.

Now i can do with changing the models.

Second is how do i share gameobjects models which are public

so i have a script,

public GameObject m_Straight_S_Tile;

public GameObject m_Left_S_Tilee;

public GameObject m_Right_S_Tile;

public GameObject m_T_S_Tile;

public GameObject m_Jump_S_Tile;

public GameObject m_Obstacle_S_Tile;

now in the inspector i have choosed the models for the script directly into the script import setting.

So, now in the other script if I add the scripts name can i access the gameobjects which are public and in some cases also public floats, vaiables and function.

i don’t need the gameobject.find(“”)getcomponent<>;
it’s because this things are in different levels.

I am actually connecting between scripts but can’t s but get this done, i think i won’t use that scripts in any object and use one main script to get the public functions from the script.

It’s important as i need to share between highscore, store items and many.

Need it in C#
and if you know it in .js, add it too, i can translate a little

Could you clear the question up?

You want to reference a script not in the scene, or a different scene?

~lanDog

You just need to a configuration script, with DontDestroyOnLoad which has all the values. You are seriously over complicating something that is not that complicated.

landon91235 : something like that, and also scripts that are not active in the scenes but has value…

EliteMossy : any example pls…i read the example in unity, its ok, but still i can’t access the public intergers or strings or any other status

but some scripts are not even on the game scenes, they are in like a public script which has all the varuables connected to each other

i found this one clue,

1st script:

public static string ThemeType  = "3dd";

2nd script:

public string TypeofTile = 1stscript.ThemeType;

static goes pure and good and i can access the string, integer variable. I have not tested functions and gameobjects yet…but how do i now use a if statement like

if( TypeofTile = "3dd" ){

//do dome things here...


}

but some error shows up saying, can’t turn string into a bool and if I use integer, then can’t turn an int to bool :shock: :-x :rage: :face_with_spiral_eyes:

help

if( TypeofTile == " 3dd" ) {
}

note the double equals! :wink:

with single equals you were trying to convert the string…

very very easy mistake to make…just have to get used to it. one = for declaration or changing variable values, two == for comparisons.

seejayjames : ooh ok, thanks. i made a mistake in a simple thing :stuck_out_tongue:

but i think gameobjects doesn;t works in that public static way

Also take a look at PlayerPrefs, you can use it to store and read simple information.

i will read it and try

any others out there

Can you elaborate on the DontDestroyOnLoad? I use a config script (attached to an empty gameobject) that I store many of the “static” or “global” variables I need to access from other scripts, particularly any that need to be accessed by multiple scripts. I don’t have DontDestroyOnLoad, should I have it?

Edit: Never mind, it’s for preservation when loading new levels. Gotcha.

so can you share some points with me, and explain it to me a liitle please