我使用iTween为每个主菜单元素提供动画。但是动画不是按照欲望的想法来玩的,一些不同的东西在运行,所以我对此感到困惑,想出一个解决方案。
我想玩游戏标题,移动动画从1200个单位到0单位使用iTween移动动画。但就像这样,我得到了一个结果- -540个单位就被阻止了:

这类代码,我已经为UI图像移动动画编写了:
iTween.MoveTo (ballTitleObj, iTween.Hash ("x", 0f, "speed", 100f, "delay", 1f));我知道iTween使用Transform组件,UI元素使用work RectTransform,但是我需要为解决方案做些什么呢?
发布于 2018-10-18 16:23:46
首先,获取标题的RectTransform:
this.titleRectTransform = ballTitleObj.GetComponent<RectTransform>();然后,调用iTween.ValueTo,因为您不想更改转换,所以需要更改RectTransform。
iTween.ValueTo(ballTitleObj, iTween.Hash(
"from", this.titleRectTransform.anchoredPosition,
"to", new Vector2(0, this.titleRectTransform.anchoredPosition.y),
"speed", 100f,
"delay", 1f,
"onupdatetarget", this.gameObject,
"onupdate", "MoveBallTitle"));
}在调用iTween.ValueTo的同一个类中,需要定义一个更新anchoredPosition的MoveBallTitle方法:
public void MoveBallTitle(Vector2 position){
this.titleRectTransform.anchoredPosition = position;
}这个答案是基于统一问答网站上的这个答案的
发布于 2018-10-18 16:01:41
好的,现在花足够的时间来解决这个问题,我至少找到了一个解决方案。
我开始使用DOTween而不是iTween:DOTween -文档
它的内置包含对Unity动画的支持,我可以在项目中轻松地实现。下面是对我有用的代码行:
ballTitle.DOAnchorPosX (0f, 1f, false).SetDelay (0.5f).SetEase(Ease.OutBack);https://stackoverflow.com/questions/52873463
复制相似问题