Контроллер Unity Genrics Animation - PullRequest
0 голосов
/ 18 сентября 2018

Привет, ребята, работающие над контроллером Genric Animation,

Public Animator anim

Public void GenAnim <t>(string "name", t val)
{
   If (t is float)
   {
       anim.setfloat ("name",  val)
   }

If (t is bool)
    {
     anim.settrigger("name",  val)
     }

If (t is int)
     {
     anim.setint ("name",  val)
     }
}

Проблема была в том, что вы не можете передать t в функции anim.set, и я не мог понять, как его кастовать или обойти, я чувствую, что есть простое исправление, которое я пропускаю Пожалуйста, дайте мне знать, если у вас есть идеи

Приветствия

1 Ответ

0 голосов
/ 18 сентября 2018

Дженерики не могут действительно сделать это чистым способом, но предложение @ Rup о перегрузках методов будет работать:

public Animator anim;

public void SetParameter(string name, bool value)
{
    anim.SetBool(name, value);
}

public void SetParameter(string name, float value)
{
    anim.SetFloat(name, value);
}

public void SetParameter(string name, int value)
{
    anim.SetInteger(name, value);
}

Таким образом, вызов SetParameter выберет правильную версию на основе предоставленного вами параметра.

Вы также можете иметь SetParameter (имя строки) без значения для вызова SetTrigger, но нет GetTrigger (вместо этого это ResetTrigger). Вам решать, как вы хотите справиться с этим.

...