Unity Genrics动画控制器

时间:2018-09-17 23:39:22

标签: unity3d generics animator

嘿,使用通用动画控制器的人,

from urllib.request import urlopen
from urllib.request import Request
import urllib.parse 

values = """

{
"Name": "Paul",
"Email": "someEmail@email.com",
"HasExternalDoubleOptIn": false,
"CustomFields": [
"Age=25",
"Country=USA"
]
}"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
data = values.encode()
req = Request('https://api.moosend.com/v3/subscribers/7cfad3edfd9ad-07d7-4c51-810e-74e27sdsf8505c2e/subscribe.json?apikey=77f6s34dfd8914-4e3c-4d61-8435-9346f5b4adf6&New%20item=', data=values, headers=headers)
response_body  = urlopen(req).read()  
print(response_body)

问题是,您无法将t传递给anim.set函数,而我无法解决如何投射或绕开它的感觉,我觉得我缺少一个简单的解决方案 如果您有任何想法,请告诉我

欢呼声

1 个答案:

答案 0 :(得分:2)

泛型不能真正以一种干净的方式做到这一点,但是@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(string name)没有值来调用SetTrigger,但是没有GetTrigger(它是ResetTrigger)。由您自己决定如何处理。