Unity NGUI TWEEN

大家都知道NGUI中自带了缓动(Tween),我一开始使用的时候,只能让他缓动1次。这里面有一个UIPlayTween可以帮你多次的运行Tween。当然,你可以借助DOTween , ITween等专业的第三方缓动插件。本篇文章只讲解: NGUI的Tween

首先对栗子进行一些简单的讲解:

主要是对“目标GO”进行位移操作

对于“目标GO”需要挂载:TweenPosition , UIPlayTween , 还有我自己的一个脚本 : TestTweenPos(只要是操作TweenPosition,UIPlayTween)

关于 : TweenPosition:

关于 UIPlayTween:

关于 TestTweenPos:

有2个参数 : 分别是上面的TweenPosition和UIPlayTween

上 TestTweenPos代码 :

using UnityEngine;
using System.Collections;

public class TestTweenPos : MonoBehaviour {

	// Use this for initialization
    public TweenPosition _tweenPos;
    public UIPlayTween _playTween;
    private bool _isRe = false;
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}

    public void StartTween( Vector2 _location )
    {
        if( !this._isRe)
        {
            this._tweenPos.from = new Vector3(this.gameObject.transform.localPosition.x, this.gameObject.transform.localPosition.y, 0);
            this._tweenPos.to = new Vector3(_location.x, _location.y, 0.0f);
        }
        else
        {
            this._tweenPos.to = new Vector3(this.gameObject.transform.localPosition.x, this.gameObject.transform.localPosition.y, 0);
            this._tweenPos.from = new Vector3(_location.x, _location.y, 0.0f);
        }
        this._isRe = !this._isRe;
        this._playTween.Play(true);
    }
}

这个UIPlayTween的“Toggle”,它就是可开关的意思( 点一下从From 运行到 To , 在点一下从To 运行到 From ,再点从From 运行到To ), 若需要TweenPosition持续的运行,那就需要实时的改变(交换)From和To的值。

时间: 2024-10-12 16:03:14

Unity NGUI TWEEN的相关文章

Unity NGUI Tween动画回调不执行问题

最近工作中遇到了一个问题 NGUI的Tween动画完成 回调函数 偶尔不执行 偶现Bug 今天我仔细看了下代码发现 TweenPosition tempTween = varTar.GetComponent<TweenPosition>(); if (tempTween == null) { Debuger.LogError("MainUITaskAward: Play() tempTween == null"); return; } tempTween.ResetToBe

【Unity NGUI游戏开发之三】TweenPosition位移动画(二):相对于UIAnchor不同分辨率下的完美适配位移动画

Unity中的UI我们采用的是NGUI,NGUI的界面位移动画,我们一般使用的是TweenPosition. 一种是简单的相对位移,不考虑分辨率适配问题,只需要简单的从位置A到位置B,已经在文中介绍了: [Unity NGUI游戏开发之二]TweenPosition位移动画(一):不相对于Anchor的位移动画 另外一种是考虑到屏幕分辨率适配的位移动画,我们游戏中大多遇到的是这种情况. eg.我们想让一个UI从屏幕外沿着屏幕的左边移动到屏幕的中央,TweenPositon播放动画,在960*64

【Unity NGUI游戏开发之五】多分辨率下完美分布式协同开发

NGUI多分辨率下完美分布式协同开发:不同分辨率下相对于屏幕坐标的Perfab数据不再丢失 NGUI多分辨率下完美分布式协同开发不同分辨率下相对于屏幕坐标的Perfab数据不再丢失 开发问题 原因分析 案例 完美过程 案例分析 实现过程 开发问题: NGUI分布式开发中,用git管理资源,团队成员每人负责一个perfab,所有现对于屏幕大小的相对位置的perfab因为引用了perfab外的数据,导致perfab的Anchor锚点数据丢失,最后的perfab集成后,必须重新设置,导致开发成本大幅度

Unity NGUI监听按钮点击事件的三种方法

NGUI版本:3.6.5 1.直接实现OnClick方法: 创建一个脚本,在脚本中实现OnClick()方法,绑定该脚本到按钮上,点击时就会实现OnClick函数内容: 2.使用SendMessage: 选择按钮后,打开Component——NGUI——Interaction,选择Button Message,为按钮添加一个UIButton Message组件: 然后设置UIButton Message中的参数即可: Target:接收按钮消息的游戏对象: Function Name:接收按钮消

Unity NGUI 使用经验

在.NET下使用了约2个月的Unity NGUI后,感觉.NET cs用起来还比较容易上手,Unity 2D项目中使用NGUI也非常好用.其丰富的库支持,让愿意花时间的人一学就会用,比如我们用得比较多的,iTween/EasyTouch/FxMaker/UnityVS等.尤其UnityVS让原来使用VS习惯的人,用起来那叫一个爽! 费话不多说了,下面说说我们以开发过程中解决的一些问题和关注的一些参数问题. 作为一个程序,保障游戏的流畅性是游戏可玩性高的重要基础. 1. 尽量把Draw Calls

Unity NGUI UIPanel下对粒子或自定义Mesh的剪裁

写在开篇: 越来越烦那些无脑转发自己不做验证的博主论坛楼主,网上好不容易找到一些资料,结果代码搞下来却是错的,有些确实是因为版本问题太老不兼容,但是有些明显是有问题的,转发前自己试试就知道肯定是不能用的.结果...哎...真是不想说啥了. 这次是在小地图中画线画圈,用到了动态绘制Mesh,小地图需要对这些线进行裁切,所以去网上搜了一篇叫做<Unity NGUI UIPanel下对粒子的剪裁>的文章.当然还是感谢一下原作者提供的思路.我这里对这篇文章中涉及到的代码进行了优化改动,使之可以使用.没

Unity+NGUI性能优化方法总结

一共9招. 1 资源分离打包与加载 游戏中会有很多地方使用同一份资源.比如,有些界面会共用同一份字体.同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等.可以在制作游戏安装包时将这些公用资源从其它资源中分离出来,单独打包.比如若资源A和B都引用了资源C,则将C分离出来单独打一个bundle.在游戏运行时,如果要加载A,则先加载C:之后如果要加载B,因为C的实例已经在内存,所以只要直接加载B,让B指向C即可.如果打包时不将C从A和B分离出来,那么A的包里会有一份C,B

Unity+NGUI多分辨率适配方案

说起unity的适配方案,网上可谓是一查一大堆,但是真正要应用到项目中的时候,总会出现各式各样的问题.由于最近自己要做一个小游戏,在开始做游戏之前,就想着先好好搞一搞适配这块,以后新起项目的时候也会用得着. NGUI应该是现在大部分开发者都会去选择的UI插件,虽然NGUI还存在着不少问题,像是相对来说,NGUI还是比较靠谱的,所以这里只是针对NGUI做适配方案. NGUI中对于每一个场景,都是以UIRoot为GameObject树的根的,UIRoot下面主要有这几种属性 1) Scaling S

Unity NGUI实现Tabview

unity版本:4.5.1 NGUI版本:3.5 参考链接:http://blog.csdn.net/g__dragon/article/details/17242969,作者:CSDN G_Dragon Tabview可以参考NGUI中的示例,场景Examples\Scenes\Example 13 - Tabs 1.用NGUI创建一个2D UI,在该UI Root下新建一个Panel,然后在该Panel下新建两个toggle,在NGUI下创建tab键如下所示: 打开Widget Wizard