Раньше я думал, что доступ к переменным из отдельных скриптов - это правильный способ общения между скриптами в единстве. Теперь я знаю более правильный способ запуска сценария через другой сценарий, и это путем вызова функции в отдельном сценарии, например так ...
//script1
public script2name Var;
void start()
{
VAr = GameObject.FindObjectOfType<script2name>();
}
void func()
{
//picks up a coin
VAr.NEWFUNC();
}
//script2
public GameObject newcoin;
void func()
{ }
public void NEWFUNC()
{
instantiate(newcoin, transform.position, Quaternion.identity);
}
}