我只是想知道你如何顺利地将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
的孩子
答案 0 :(得分:1)
这取决于您在哪里使用Lerp
?你打电话一次吗?或在Update()
。使用正确的参数调用更新应该有效。
在Lerp
旁边,您可以使用带有位置曲线的Animator
组件从一个点移动到另一个点。
还有另一个使用LeanTween插件的选项,它是资产商店的免费插件。
LeanTween.move(gameObject, yourFinalPosition, duration);
答案 1 :(得分:0)
如果使用动画师,您可以访问动画曲线,这样您就可以获得非常好的控制动画 棘手的部分是如果你想使用'应用根运动'(让动画从它们开始而不是固定位置开始)你需要将它应用于被认为是ROOT的东西: - 使用正常变换创建一个空的游戏对象 - 将带有文本的画布添加到此新游戏对象中 - 将动画应用于gameobject变换(不是UI rectTransform) - 在检查器中的动画上,您现在应该可以单击“生成根运动曲线”并选择“动画制作工具”的“应用根运动”复选框
希望这有帮助,花了几个小时才能开始工作:)我用它来漂浮敌人的伤害文本显示