您的位置:首页 > 移动开发 > Unity3D

iTween更改onupdate代理方法

2015-03-24 13:34 141 查看
void CallBack(string callbackType){
if (tweenArguments.Contains(callbackType) && !tweenArguments.Contains("ischild")) {
//establish target:
GameObject target;
if (tweenArguments.Contains(callbackType+"target")) {
target=(GameObject)tweenArguments[callbackType+"target"];
}else{
target=gameObject;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (tweenArguments[callbackType] is Action<object>)
{
((Action<object>)tweenArguments[callbackType]).Invoke((object)tweenArguments[callbackType + "params"]);
}
else
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//throw an error if a string wasn't passed for callback:
if (tweenArguments[callbackType].GetType() == typeof(System.String)) {
target.SendMessage((string)tweenArguments[callbackType],(object)tweenArguments[callbackType+"params"],SendMessageOptions.DontRequireReceiver);
}else{
Debug.LogError("iTween Error: Callback method references must be passed as a String!");
Destroy (this);
}
}
}

更改后可以尝试用代理的方式写方法 例如:

iTween.ValueTo(gameObject, iTween.Hash("from", 1,
"to", 0,
"speed", 1,
"onupdate", (Action<object>)(newVal =>
{ hudStatusSlider.value = (float)newVal; })
));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Unity3D iTween
相关文章推荐