Есть две части кода:
using UnityEngine;
using UnityEngine.Events;
public class cubeCollisionDetector : MonoBehaviour
{
public UnityEvent scoreUp;
public UnityEvent scoreDown;
private string cubeName;
private string[] cubeNameMassive;
public void OnCollisionEnter(Collision collision)
{
if (collision.transform.tag == "sphere")
{
cubeName = gameObject.name;
Destroy(GameObject.Find(gameObject.name));
string nameToCount = gameObject.name.Split('(')[0];
string[] cubeNameMassive = nameToCount.Split('/');
string colour = cubeNameMassive[3];
if (colour.Contains("red"))
{
scoreUp.Invoke();
}
else if (colour.Contains("green"))
{
scoreDown.Invoke();
}
}
}
}
и
using UnityEngine;
using UnityEngine.UI;
public class scoringScript : MonoBehaviour
{
static private int scoring = 0;
public void scoringUpMethod()
{
scoring++;
Debug.Log(scoring);
GetComponent<Text>().text = "scoring: " + scoring.ToString();
}
public void scoringDownMethod()
{
scoring--;
Debug.Log(scoring);
GetComponent<Text>().text = "scoring: " + scoring.ToString();
}
}
Потому что Вы собственноручно написанным кодом при запуске игры удаляете свои настройки, заданные в редакторе:
Класс cubeCollisionDetector в методе Start
заменяет ссылки, заданные в редакторе.
Условия
if (scoreUp != null)
...
if (scoreDown != null)
...
выполняются, т.к. Вы задали ссылки на методы в другом скрипте. Поэтому код работает должным образом - "затирает" старое значение, заданное Вами, на new UnityEvent()
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как проще и красивей записать следующий код :
Необходимо создать личный кабинет клиента бухгалтерской фирмыВ личном кабинете для пользователя будет доступна информация о сдаче налоговой...