• Create Account

## Sharing gameobjects, variables, strings between scripts

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

4 replies to this topic

### #1Sugavanas  Members

Posted 04 May 2013 - 02:28 PM

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

### #2rip-off  Moderators

Posted 04 May 2013 - 03:38 PM

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.

### #3Sugavanas  Members

Posted 05 May 2013 - 01:07 AM

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

### #4ByteTroll  Members

Posted 05 May 2013 - 07:54 PM

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, 05 May 2013 - 07:56 PM.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

### #5CJ_COIMBRA  Members

Posted 06 May 2013 - 04:40 AM

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, 06 May 2013 - 04:41 AM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.