Имеется модель с костями и анимацией. Сделал одному из пальцев тег TorchPoint.
Написал следующий код
Синтаксис:
Используется csharp
static public void AddTorch(GameObject Torch, GameObject Player)
{
//Изменяем анимацию на анимацию с факелом
Animator anim = Player.GetComponent<Animator>();
anim.SetBool("Torch", true);
//Ищем кость на модели к которой крепим факел
foreach (Transform child in Player.transform)
{
if (child.tag == "TorchPoint")
{
//Создаем факел
GameObject to = Instantiate(Torch, child.position, Quaternion.Euler(-90, 0, 0));
to.transform.SetParent(child.transform);
break;
}
}
}
{
//Изменяем анимацию на анимацию с факелом
Animator anim = Player.GetComponent<Animator>();
anim.SetBool("Torch", true);
//Ищем кость на модели к которой крепим факел
foreach (Transform child in Player.transform)
{
if (child.tag == "TorchPoint")
{
//Создаем факел
GameObject to = Instantiate(Torch, child.position, Quaternion.Euler(-90, 0, 0));
to.transform.SetParent(child.transform);
break;
}
}
}
После чего факел появляется в нулевых координатах персонажа. Изменял строчку на локальную позицию
Синтаксис:
Используется csharp
...
GameObject to = Instantiate(Torch, child.localPosition, Quaternion.Euler(-90, 0, 0));
...
GameObject to = Instantiate(Torch, child.localPosition, Quaternion.Euler(-90, 0, 0));
...
После чего факел появляется хрен пойми где.