我有此代码:
void FunctionName( Vector3 pos, Vector3 targetPos){
Vector3[] path = new Vector3[] {
pos,
new Vector3(targetPosition.x, ((directionDown) ? 100 : -300), 0),
new Vector3(targetPosition.x, targetPosition.y + ( ( directionDown ) ? 300 : -500 ), 0)
};
Transform starEffect = starEffectObject.transform;
starEffect.localPosition = pos;
HOTween.To(starEffect,
1.5f,
new TweenParms()
.Prop(
"localPosition",
new PlugVector3Path(path, EaseType.Linear, true)
)
.OnComplete(TriggerFunction)
);
}
private void TriggerFunction() {
Debug.Log("asd");
}
我的问题是OnComplete(TriggerFunction)
并未按照HOTween documentation
但是,如果我将OnComplete(TriggerFunction)
替换为OnStart(TriggerFunction)
,一切正常。
有人可以帮助我解决这个问题吗?或者,请按正确的方向发送给我,以寻求在补间结束时触发TriggerFunction
的替代解决方案。
谢谢!
更新:
我设法用它欺骗:
StartCoroutine(TriggerFunction(0.2f));
IEnumerator TriggerFunction(float delay) {
yield return new WaitForSeconds(delay);
Debug.Log("asd");
}
但是我觉得有更好的更清洁的解决方案。
答案 0 :(得分:2)
我还没有使用过HOTween,但是从文档来看,它似乎正在寻找具有不同签名的函数。
致电时
.OnComplete(TriggerFunction)
可能正在寻找没有参数的回调函数 私有void TriggerFunction()
如果您要打电话 .OnComplete(TriggerFunction,1,2,3) 那么您可以将函数与单个参数一起使用 私有void TriggerFunction(TweenEvent数据)
答案 1 :(得分:0)
在阅读注释线程后,我认为与HOTween捆绑在一起的资产OP正在使用,其问题必须阻止OnComplete回调。
好像我使用的是过时的HOTween版本 与我正在使用的另一个软件包。更新后一切正常 像魅力一样。
由于我已从资产商店在Unity2018.2中导入HOTween,并测试了OnComplete回调仍然有效,因此问题出在OP使用的HOTween插件已过时/已修改。