我有这个代码:
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");
}
但我觉得有一个更好的更清洁的解决方案来做到这一点。
最佳答案
阅读评论线程后,我相信 OP 正在使用的与 HOTween 捆绑在一起的 Assets 一定有其阻止 OnComplete 回调的问题。
由于我从 Assets 商店导入了 Unity2018.2 中的 HOTween 并测试了 OnComplete 回调仍然有效,所以问题是由于 OP 使用的过时/修改过的 HOTween 插件。
关于c# - HOTween OnComplete(MyFunction) 未被触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54214188/