I create an array of Player with length of 2. I instantiate 1 of the 2 Player references and I set the other one to null. I run the game, and, as expected, I get alternating Logs of “100” and “NULL”. If I go to Visual Studio and edit the script (i.e. add and then remove a blank line), then when I go back to Unity, I only get Logs of “100” for both Player objects. Why does players[0] become instantiated?
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
Player[] players;
void Start()
{
players = new Player[2];
players[0] = null;
players[1] = new Player();
}
void Update()
{
for (int i = 0; i < 2; i++)
{
if (players *== null)*
{
Debug.Log(“NULL”);
}
else
{
Debug.Log(players*.health);*
}
}
}
}
[System.Serializable]
public class Player
{
public int health = 100;
}