title: void Start() not being called
body: <p>I'm making a game in Unity 4.3 with 2D mode. But for some reason the <code>void Start()</code> function isn't being called on the start of the scene. I even attached a <code>Debug.Log("Hello");</code> to the start function but it doesn't even do that so I know that the <code>Start()</code> function isn't being called. Although, the <code>Update()</code> function is called.</p>
  
  <p>Here is the script.</p>
  
  <pre><code>private void Start()
  {
      this.animation.Stop();
      Debug.Log("Hello");
  }
  </code></pre>
  
  <p>You can see, there is an Update method which does work.</p>
  
  <p><strong>EDIT:</strong> Whole script:</p>
  
  <pre><code>public class Player : MonoBehaviour
  {
  
  public Vector2 jumpForce = new Vector2(0, 300);
  public Vector2 moveForce = new Vector2(0, 300);
  public Vector2 sideForce = new Vector2 (250, 0);
  public GameObject obstacle;
  public float scrollSpeed = 30;
  public AnimationClip fly;
  public GameObject player;
  
  private float speed = 10.0f;
  
  private void Start()
  {
      Debug.Log("hi!");
      this.animation.Stop();
      Debug.Log("Hello");
  }
  
  private void Update() {
      onTouch();
  
      int fingerCount = 0;
      foreach (Touch touch in Input.touches) {
          if (touch.phase != TouchPhase.Ended &amp;&amp; touch.phase != TouchPhase.Canceled)
              fingerCount++;
  
      }
      /*if (fingerCount &gt; 0)
      {
          player.rigidbody2D.velocity = Vector2.zero;
          player.rigidbody2D.AddForce (moveForce);
      }*/
      try
      {
          player.rigidbody2D.velocity = Vector2.zero;
          player.rigidbody2D.AddForce (moveForce);
  
      } 
      catch(UnityException e)
      {
          Debug.Log("Fail");
      }
  
      if (Input.GetKeyDown ("right"))
      {
          player.rigidbody2D.velocity = Vector2.right;
          player.rigidbody2D.AddForce (sideForce);
      }
  
      accelorometer();
  }
  
  // Die by collision
  private void OnCollisionEnter2D(Collision2D other)
  {
      Die();
  }
  
  private void Die()
  {
      Application.LoadLevel(Application.loadedLevel);
  }
  
  private void accelorometer()
  {   
      // Get the accelerometer data:      
      Vector2 acceleration = Input.acceleration;
  
      // Get the forward value from one of the three channels in the acceleration data:
      float translation = acceleration.x * speed;
  
      // Make it move 10 meters per second instead of 10 meters per frame
      translation *= Time.deltaTime;  
  
      // Move translation along the object's z-axis
      player.transform.Translate (translation, 0, 0);
  }
  
  private void onTouch()
  {
      /*int fingerCount = 0;
  
      foreach (Touch touch in Input.touches) {
          if (touch.phase != TouchPhase.Ended &amp;&amp; touch.phase != TouchPhase.Canceled)
              fingerCount++;
  
      }
  
      if (Input.GetTouch(0).phase == TouchPhase.Began) 
      {
          rigidbody2D.velocity = Vector2.zero;
          rigidbody2D.AddForce (moveForce);
      }
  
      if (fingerCount &gt; 0) 
      {
          player.rigidbody2D.velocity = Vector2.zero;
          player.rigidbody2D.AddForce (moveForce);
      }*/
  
      if(Input.GetKeyDown ("up"))
      {
          Debug.Log("ghjkl");
  
          player.rigidbody2D.velocity = Vector2.zero;
          player.rigidbody2D.AddForce (moveForce);
      }
  
      //print("User has " + fingerCount + " finger(s) touching the screen");
  }
  </code></pre>