Unity - 如何平滑地动画UI文本?

时间:2015-08-12 11:18:20

标签: animation text unity3d

我只是想知道你如何顺利地将UnityEngine.UI从一个位置转换到另一个位置?

我目前的代码是:

GameObject rank1;
GameObject rankSlot1;

rank1 = GameObject.Find("Rank1");
rankSlot1 = GameObject.Find("RankSlot1");

rank1.transform.position = new Vector3(Mathf.Lerp (rank1.transform.position.x, rankSlot1.transform.position.x, 0.1f), rankSlot1.transform.position.y, 0);

但似乎Mathf.Lerp不起作用:/

谢谢!

编辑:所有这些游戏对象都有Rect Transform,因为他们是Canvas的孩子

2 个答案:

答案 0 :(得分:1)

这取决于您在哪里使用Lerp?你打电话一次吗?或在Update()。使用正确的参数调用更新应该有效。

Lerp旁边,您可以使用带有位置曲线的Animator组件从一个点移动到另一个点。

还有另一个使用LeanTween插件的选项,它是资产商店的免费插件。

LeanTween.move(gameObject, yourFinalPosition, duration);

答案 1 :(得分:0)

如果使用动画师,您可以访问动画曲线,这样您就可以获得非常好的控制动画 棘手的部分是如果你想使用'应用根运动'(让动画从它们开始而不是固定位置开始)你需要将它应用于被认为是ROOT的东西:   - 使用正常变换创建一个空的游戏对象   - 将带有文本的画布添加到此新游戏对象中   - 将动画应用于gameobject变换(不是UI rectTransform)   - 在检查器中的动画上,您现在应该可以单击“生成根运动曲线”并选择“动画制作工具”的“应用根运动”复选框

希望这有帮助,花了几个小时才能开始工作:)我用它来漂浮敌人的伤害文本显示