# Sharing gameobjects, variables, strings between scripts

This topic is 1722 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

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

##### Share on other sites

I'm finding it difficult to understand your question. In particular, your use of the word "script" is confusing. Are you talking about using C# as a scripting language? Or is a "script" a file containing C# code? Perhaps you're using it to mean a class, or a function/method?

I would recommend describing your game a little first, then asking your question with reference to the actual, concrete things and concepts in the game.

##### Share on other sites

I'm finding it difficult to understand your question. In particular, your use of the word "script" is confusing. Are you talking about using C# as a scripting language? Or is a "script" a file containing C# code? Perhaps you're using it to mean a class, or a function/method?

I would recommend describing your game a little first, then asking your question with reference to the actual, concrete things and concepts in the game.

he game is alike temple run, but don't need to see that as the question i am asking can be used to all the games

the scripts are the c# files which are in unity3d [i forgot to mention that]

i have one

script name = random.cs

public gameobject testy1


which is in a c# script and it is not active in any gameobjects.. I have another script which uses the random.cs  script to access the testy1 gameobject.

but i don't seem to have access to it. the second script is active and make a decision as the user chooses but unfortunately i can't do it

##### Share on other sites

It's been a bit since I have had to use C#, but you should use class/struct accessors.  Here is a code snippet:

Say we have a level and a player.  The player class contains a position variable.  Stuff needs to know about the players position, so, you would do something like this:

Vector2 position;
public Vector2 Position
{
get
{
return (position);
}
set
{
position = value;
}
}


If you need to get/set the variable from another class, just use the accessor.

Edited by ByteTroll

##### Share on other sites

I am not sure if I understand what your are asking precisely, but if you want to carry something from one scene to another in Unity3D, you can use the

DontDestroyOnLoad(this.gameObject)


method in the Start() or Awake() of a script that is attached to the gameobject you want to keep or you can save something in the PlayerPrefs and them load it again on the other scene. Does that make sense to you?

Edited by CJ_COIMBRA