title: C# UNITY Instantiate Class (Create Object) without using new operator
body: <p>example I have class name "PlayerClass" and "StatClass"</p>
  
  <h1>PlayerClass</h1>
  
  <pre><code>public float health = 100 ;
  public float experience;
  </code></pre>
  
  <h1>StatClass</h1>
  
  <pre><code>PlayerClass playerclass = new PlayerClass()
  public float health2;
  public float experience2;
  health2 = playerclass.health;
  experience2 = playerclas.experience;
  </code></pre>
  
  <p>usually I have to create "PlayerClass playerclass = new PlayerClass()"</p>
  
  <p>the result will be the same health2 and experience2;
  but whenever i made a change on healt from player class with code of course, the result healt2 from StatClass will be the same it was 100</p>
  
  <p>Sory for my bad english.</p>
  
  <p>----------------- Edited -----</p>
  
  <h1>GameControl</h1>
  
  <pre><code>public class GameControl : MonoBehaviour {
  
      public static GameControl control;
  
      public float health = 100;
      public float experience = 1000;
      // Use this for initialization
  
      void Awake () {
          /*
           * Awake Start Before Start() Happen
           */
          if (control == null) {
              DontDestroyOnLoad (gameObject);
              control = this;
          } else if (control != this) {
              Destroy (gameObject);
          }
      }
  }
  </code></pre>
  
  <h1>GetHealth</h1>
  
  <pre><code>public class GetHealth : MonoBehaviour {
  
      public static GetHealth getHealth;
      GameControl gameControl = new GameControl();
      //GameControl gameControl;
  
      public static float health;
      Text text;
  
      void Awake () {
          /*
           * Awake Start Before Start() Happen
           */
  
          if (getHealth == null) {
              DontDestroyOnLoad (gameObject);
              getHealth = this;
          } else if (getHealth != this) {
              Destroy (gameObject);
          }
  
          text = GetComponent&lt;Text&gt; ();
          health = 0;
      }
  
      void Update(){
          health = gameControl.health;
          text.text = "Health: " + health;
      }
  }
  </code></pre>
  
  <p>I made Change on value variable Health in GameControl. but Get Health always access 100 the same as first time when variable GameControl haven't changed. I think it was maybe because we use "new" on GetHealth class.</p>
  
  <pre><code>GameControl gameControl = new GameControl();
  </code></pre>
  
  <p>Is there another way to solve this without "new".</p>