Проблема в том что, когда я получаю позицию монетки(Share) и передаю в Animator этого объекта, параметр аниматора не меняет значение, следовательно и анимация не меняется.
Объясню код: Передается заранее созданный объект через Instantiate, извлекая оттуда монетки(сферы) и по их позиции задается параметр в аниматор, по которому и отображается нужная анимация.
GameObject SetShareOnParametrs(GameObject game)
{
int CountShare = 0; //Колличество сфер в префабе
foreach (Transform child in game.transform)
{
if (child.tag == "Point")
{
CountShare++;
}
}
//Спавн сфер с нужными параметрами
GameObject[] Spheres = new GameObject[CountShare];
int a = 0;
foreach (Transform child in game.transform)
{
if (child.tag == "Point")
{
Spheres[a] = child.gameObject;
a++;
}
}
Vector3[] PositSphere = new Vector3[CountShare];
//Задается номер анимации для сфер
for (int i = 0; i < CountShare; i++)
{
PositSphere[i] = Spheres[i].transform.localPosition;
Spheres[i].GetComponent<Animator>().SetInteger("Money", Mathf.RoundToInt(PositSphere[i].z));
Spheres[i].transform.localPosition = PositSphere[i];
//Вывод в консоль параметр аниматора и положения объекта
Debug.Log(Spheres[i].GetComponent<Animator>().GetInteger("Money").ToString() + " " + Spheres[i].transform.localPosition.ToString());
}
return game;
}
Проведя пару тестов я выявил, что первый создаваемый префаб в котором находятся монетки(сферы) анимация правильно определяется, а в последующих префабах параметр аниматора вообще не задается. Хотя по "Дебагу" я проверил, что параметр задается правильно, а в самом окне аниматора этот параметр как и был 0 так и остался.