`
wgcode
  • 浏览: 593441 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

unity动画插件Hotween的使用

 
阅读更多

Hotween与itween类似,也是一个插值插件,都是对位移,缩放,旋转,颜色等数值进行插值,各有各的优势。如果做一般常见的动画建议使用Hotween,但是遗憾的是Hotween不支持路径动画,如果支持就完美了。

官方网站:http://www.holoville.com/hotween/index.html

根据Hotween官方网站介绍,hotween是运行快,类型安全和面向对象的unity插件,兼容unity所有的脚本语言,并且在官方网站上有和unity对比的demo(http://www.holoville.com/hotween/testRun.html),一般情况下两者性能上的对比不是太明显,但是当游戏对象多的时候hotween的优势就显现出来了. 这也是我选择hotween的原因,下面介绍hotween在unity中的使用.

一、安装

首先去http://www.holoville.com/hotween/download.html下载hotween插件,然后把hotween解压到Assets/Plugins目录下(Plugins文件夹需要自己创建),节点结构大致是这样子的HotweenFloder;

开始编写代码使用.

首先要在类前面引用hotween的命名空间

1 using UnityEngine;
2 using System.Collections;
3 using Holoville.HOTween;
4 public class HotweenTest : MonoBehaviour {
5     // Use this for initialization
6     void Start () {
7     }
8 }

二、Hotween的基本使用方法

ok,引入完毕,然后在第一个例子中我会使用Transform对象,但是要记住一点的是hotween只能对物体的任何非静态的公有属性或者字段做动画.

Example1:

1 /*
2 //Parame1:要做动画的类,这里我们选择当前物体的变换组件Transform
3 //Parame2:动画运行时长
4 //Parame3:参数一的position属性,记住这第三个参数是第一个参数的属性
5 //Parame4:属性要达到的值,也就是动画做完之后物体的最终坐标
6 */
7 HOTween.To(gameObject.transform, 1, "position"new Vector3(10,20,30));

当然大多数情况下,我们做插值动画这些参数控制是远远不够的,那就需要添加更多的控制参数,

Example2:

1 HOTween.To(transform,2,new TweenParms().Prop("position",new Vector3(10,20,30)).Prop("rotation",newVector3(0,720,0)).Prop("localScale",newVector3(10,10,10)).Ease(EaseType.EaseInBack).Loops(3,LoopType.Yoyo).Delay(1));

代码看起来很长,不是很好理解,那我们换一种方式:

1 TweenParms parms = new TweenParms();
2 parms.Prop("position"new Vector3(10,20,30)); //坐标
3 parms.Prop("rotation"new Vector3(0,720,0)); //旋转
4 parms.Prop("localScale"new Vector3(10,10,10)); //缩放
5 parms.Ease(EaseType.EaseInBack); //加速度类型
6 parms.Loops(3,LoopType.Yoyo);//设置循环类型为往复循环
7 parms.Delay(1); //延迟时间
8 HOTween.To(myGameObject.transform, 2, parms );

这两种写法的动画效果是一模一样的,其中loops方法我觉得是做的比较好的,可以设置循环次数,itween是没有的

三、HOTween Sequence 动画队列

有时候我们需要播放一系列的动画,比如说:移动到远点–>旋转180–>放大2倍。。。

这时候就可以考虑使用hotween的队列动画.

01 Sequence mySequence = new Sequence(new SequenceParms().Loops(3,LoopType.Yoyo));
02  
03 //在队列后追加动画
04 mySequence.Append(HOTween.To(myGameObject1.transform, 1, new TweenParms().Prop("position"newVector3(0,0,0)).Ease(EaseType.EaseOutBounce)));
05  
06 //在队列最前插入
07 mySequence.Prepend(HOTween.To(myGameObject2.transform, 1, new TweenParms().Prop("position"newVector3(10,20,30)).Prop("rotation"new Vector3(0,720,0)).Prop("localScale"newVector3(4,4,4)).Ease(EaseType.EaseInElastic)));
08  
09 //在1秒后往队列中插入
10 mySequence.Insert(1, HOTween.To(myGameObject3.transform, 1, new TweenParms().Prop("position"newVector3(10,20,30)).Prop("rotation"new Vector3(0,720,0)).Prop("localScale"newVector3(4,4,4)).Ease(EaseType.EaseOutQuad)));
11  
12 //三种播放方式
13 mySequence.play();//播放或者继续播放(暂停后)
14 mySequence.PlayForward();//队列中从头往尾播放
15 mySequence.PlayBackwards();//队列中从尾往头播放

四、回调函数 Call back
不带参数的回调可以这样写:

1 HOTween.To(transform, 1, new TweenParms().Prop("position"newVector3(10,20,30)).OnComplete(completeCallBack()));
2  
3 private void completeCallBack() {
4   // Your code here
5 }


需要带一个或者多个参数的回调函数:

1 HOTween.To(transform, 1, new TweenParms().Prop("position"newVector3(10,20,30)).OnComplete(completeCallBack,350,Vector3.one));
2  
3 private void completeCallBack(TweenEvent e) {
4   Debug.Log(e.parms[0]);//第一个参数
5   Debug.Log(e.parms[1]);//第二个参数
6   Debug.Log(e.tween);//可以得到动画的所有信息
7 }

五、以speed为计量单位
一般我们使用Hotween开始一个动画,第二个参数是p_duration表示是时长,好想也没有找到如何根据速度来控制动画。 最近必须要用到speed,就找了一下,发现可以这样用:

1 TweenParms parms = new TweenParms();
2 parms.Prop("position",new Vector3(100,200,50));
3 parms.SpeedBased(true);
4          
5 HOTween.To(FurnacePanel,5,parms);

当在代码中设置SpeedBased为true之后,第二个参数就以速度来表示了,值越大自然运动的越快

分享到:
评论

相关推荐

    Unity插件HOTween

    Unity插件HOTween是一款广泛应用于Unity3D引擎的高级动画解决方案,专为开发者提供更加灵活、高效且功能丰富的动画控制。与ITween相比,HOTween在许多方面展现出其优势,使得它在Unity社区中获得了较高的评价。下面...

    DOTween(HOTween v2)(一个好用的Unity动画制作插件)

    DOTween(HOTween v2)是Unity开发者社区中广泛使用的第三方动画库,它极大地提升了在Unity引擎上创建和管理动画的效率。这个插件专为解决Unity内置动画系统可能存在的复杂性和性能瓶颈而设计,提供了简洁的API,...

    Hotween 最新版 插件 unity3d

    Hotween是一款专为Unity3D开发的高效动画插件,被誉为是比ITween更为节省资源的解决方案。在Unity3D的开发过程中,动画系统是非常重要的一部分,它允许开发者创建丰富的交互体验和动态视觉效果。Hotween就是这样一个...

    unity3d插件介绍

    4. **插值插件**:iTween和HOTween插件专注于动画平滑过渡,提供丰富的插值算法,使得游戏角色和物体的运动更加自然流畅。 5. **路径搜寻**:SimplePath插件解决了游戏中NPC自动寻路的问题,提供了简单易用的路径...

    A Unity C# animation engine. HOTween v2.zip

    HOTween是一个流行的C#插件,专为Unity设计,用于创建平滑、高效的动画效果。HOTween v2是对原版HOTween的升级,提供了更多的功能和优化。 HOTween的核心概念是Tween,它是一种过渡效果,允许对象从一个属性值平滑...

    Time Control and Pause Kit 时间控制和暂停套Unity插件unitypackage项目源码C#

    Time Control and Pause Kit 时间控制和暂停套Unity插件unitypackage项目源码C# 支持Unity版本3.5.7或更高 时间控制和暂停套件是一个易于使用的脚本,允许您向项目添加完整的时间控制和暂停功能。 特征: - Unity ...

    DOTween HOTween v2

    DOTween与HOTween是两个在Unity引擎中广泛使用的动画和时间管理库,它们极大地简化了游戏对象在场景中的动画效果实现。DOTween是Digital Ocean公司开发的一个高性能、易用且完全免费的插件,而HOTween是其前身,后来...

    HOTween公司常用

    HOTween是一款在游戏开发领域广泛应用的轻量级时间线动画库,特别是在Unity3D引擎中,它提供了高效且易用的解决方案,用于创建复杂的过渡效果和动画序列。HOTween这个名字中的“HO”可能代表“Highly Optimized”,...

    Unity3d心得

    - **iTween & HOTween**: 补间动画插件,支持平移、旋转和缩放等多种动画效果。HOTween相较于iTween更为强大,支持复合动画。 - **iTweenPath & CameraPath**: 用于创建复杂的运动路径,尤其适用于镜头移动或角色...

    SWS.rar_-baijiahao_sws空间曲线_unity 曲线_unitysws引擎_曲线编辑

    "SWS"可能是一个自定义的插件或工具,它扩展了Unity的标准功能,特别是在曲线编辑和动画系统方面。 首先,让我们详细了解一下"C#曲线绘制"。在Unity中,通常使用C#脚本来处理游戏逻辑和交互,包括曲线的生成和操作...

    DOTween动画插件

    DOTween是一款快速,高效,安全的面向对象的动画引擎,以优化C#用户,免费和开源,让您的开发节约大量的时间,它也是以前的Unity补间引擎HOTween的演变。与之相比,DOTween的速度提高了400%以上,效率更高,更加...

    对所有插值插件的分析看完这个你会熟悉所有面试不是问题

    - **路径动画**:如使用iTween中的路径插件(`iTweenPath`),可以轻松地为游戏中的角色或物体设计复杂的移动路径。 - **数值过渡**:如使用DoTween,可以轻松实现数值从一个值平滑过渡到另一个值的效果。 - **物体...

    最新Playmaker_v1.9.2.f3.zip

    Playmaker是Unity商店中的一个流行插件,由HOTween公司开发。它提供了一个可视化的工作流程,使得游戏逻辑的创建无需编写代码,通过图形化状态机的设计方式,开发者可以轻松管理对象的行为和交互。这尤其适合非编程...

    DoozyUI Complete UI Management System V3.1.3

    DoozyUI 是一个原生 Unity 编辑器的扩展工具,可简化专业用户界面的管理和动画绘制 - 无需编程知识。DoozyUI 方便初学者并可扩展,适合从业余开发者到专业软件和游戏工作室之间所有阶段的人员使用。 UI 的管理和...

    Tools-23-QR-Code-Generator-CN

    此插件依赖于一些第三方库,包括DOTween (HOTween v2),用于动画效果;Shapes2D,用于创建2D图形;以及UnityNativeShare,用于在Android和iOS设备上实现本地分享功能。你可以通过Unity的包管理器下载并导入这些依赖...

    DOTween.rar

    unity里面做插值动画的插件有许多,比较常见的有itween、hotween、dotween。根据大家的反馈和实际体验来说,dotween插件在灵活性、稳定性、易用性上都十分突出。能用的地方太多太多了,如果DOTween学精了的话,我...

    Simple Waypoint System v5.2

    Simple Waypoint System |Unity3d路径设计插件 Simple Waypoint System(SWS)是Unity3D的编辑器扩展,它允许你创建点 并生成路径。 AI巡逻行为 道路上运动 移动平台 相机和游戏对象动画 剪辑场景 3D GUI动画 功能...

Global site tag (gtag.js) - Google Analytics