首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一UI元素使用iTween移动动画

统一UI元素使用iTween移动动画
EN

Stack Overflow用户
提问于 2018-10-18 11:58:04
回答 2查看 3.9K关注 0票数 0

我使用iTween为每个主菜单元素提供动画。但是动画不是按照欲望的想法来玩的,一些不同的东西在运行,所以我对此感到困惑,想出一个解决方案。

我想玩游戏标题,移动动画从1200个单位到0单位使用iTween移动动画。但就像这样,我得到了一个结果- -540个单位就被阻止了:

这类代码,我已经为UI图像移动动画编写了:

代码语言:javascript
复制
iTween.MoveTo (ballTitleObj, iTween.Hash ("x", 0f, "speed", 100f, "delay", 1f));

我知道iTween使用Transform组件,UI元素使用work RectTransform,但是我需要为解决方案做些什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-18 16:23:46

首先,获取标题的RectTransform

代码语言:javascript
复制
this.titleRectTransform = ballTitleObj.GetComponent<RectTransform>();

然后,调用iTween.ValueTo,因为您不想更改转换,所以需要更改RectTransform

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
public void MoveBallTitle(Vector2 position){
    this.titleRectTransform.anchoredPosition = position;
}

这个答案是基于统一问答网站上的这个答案

票数 0
EN

Stack Overflow用户

发布于 2018-10-18 16:01:41

好的,现在花足够的时间来解决这个问题,我至少找到了一个解决方案。

我开始使用DOTween而不是iTween:DOTween -文档

它的内置包含对Unity动画的支持,我可以在项目中轻松地实现。下面是对我有用的代码行:

代码语言:javascript
复制
ballTitle.DOAnchorPosX (0f, 1f, false).SetDelay (0.5f).SetEase(Ease.OutBack);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52873463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档