Jump to content
  • Advertisement
Sign in to follow this  
kks21199

Sharing gameobjects, variables, strings between scripts

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

If you intended to correct an error in the post then please contact us.

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 this post


Link to post
Share on other sites
Advertisement

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 this post


Link to post
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 this post


Link to post
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.

 

@EDIT: Cleaned up original post and made reply more clear.

Edited by ByteTroll

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!