В моем эксперименте это работает, вы уверены, что не меняете цвет где-нибудь в коде?
Test2:
public class test2 : MonoBehaviour
{
public Color winColor;
private Color[] colors = { new Color(0, 1, 0, 1), new Color(1, 0, 0, 1), new Color(1, 1, 1, 1), new Color(0, 0, 1, 1), new Color(1, 1, 0, 1), new Color(0, 0, 0, 1) };
// Start is called before the first frame update
void Start()
{
winColor = colors[1];
Debug.Log("con wincolor:" + winColor);
}
}
Test1:
public class test1 : MonoBehaviour
{
private Color winingColor;
// Start is called before the first frame update
void Start()
{
winingColor = GameObject.Find("test").GetComponent<test2>().winColor;
Debug.Log("test1:" + winingColor);
}
}
Также, на мой взгляд, было бы лучше использовать добытчики / сеттеры для доступа к публичным свойствам, они дают вам большую гибкость:
public class test2 : MonoBehaviour
{
private Color[] colors = { new Color(0, 1, 0, 1), new Color(1, 0, 0, 1), new Color(1, 1, 1, 1), new Color(0, 0, 1, 1), new Color(1, 1, 0, 1), new Color(0, 0, 0, 1) };
public Color winColor
{
get; set;
}
// Start is called before the first frame update
void Start()
{
winColor = colors[1];
Debug.Log("con wincolor:" + winColor);
}
}