iTween的用法总结

简介: Unity3D插件-iTween的基本用法本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)1 ...

Unity3D插件-iTween的基本用法


本文提供全流程,中文翻译。

Chinar坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)




1

Introduce —— 基本介绍


iTween 官网—— iTween官方文档介绍(英文薄弱,可以用“360极速浏览器”自带的谷歌翻译功能)


推荐看下官方文档的介绍,里边的提供了键值对的解释。结合 Hash() 函数,往里边填值即可

几乎所有 iTween 提供函数用法,都需传入对象,和一个哈希表。

iTween 提供了一个 Hash() 函数,不用实例化哈希表,往里边一个一个Add键值对。直接Hash()函数里加入需要的键值对,来达到我们想要的效果

这里写图片描述

举个栗子黑白88

iTween 支持的功能:

这里写图片描述

控制音频:AudioFrom、AudioTo、AudioUpdate、Stab

控制相机:CameraFadeAdd、CameraFadeDepth、CameraFadeDestroy、CameraFadeSwap、CameraFadeFrom、CameraFadeTo、CameraTexture

变色控制:ColorFrom、ColorTo、ColorUpdate

绘制相关:DrawLine、DrawLineGizmos、DrawLineHandles、DrawPath、DrawPathGizmos、DrawPathHandles

淡入淡出:FadeFrom、FadeTo、FadeUpdate

视角控制:LookFrom、LookTo、LookUpdate、LookType

移动控制:MoveAdd、MoveBy、MoveFrom、MoveTo、MoveUpdate

路径操作:PutOnPath、PointOnPath

旋转操作:RotateAdd、RotateBy、RotateFrom、RotateTo、RotateUpdate

缩放操作:ScaleAdd、ScaleBy、ScaleFrom、ScaleTo、ScaleUpdate

震动控制:ShakePosition、ShakeRotation、ShakeScale

其他:Count、PathLength、EaseType(动画过度类型)、FloatUpdate、Hash、Init、Pause、Resume、Stop、StopByName、PunchPosition、PunchRotation、PunchScale、RectUpdate、ValueTo、Vector2Update、Vector3Update



2

EaseType —— 缓冲函数


iTween 中定义了许多 EaseType 类型

是不同的 贝赛尔曲线 函数 :实现不同的过渡效果

这里都不一一列举,如果需要测试自己想要的效果,而又不知道该使用哪个函数。

可以看下网络大神提供的网站势力,一目了然↓

举个栗子黑白88

曲线实例图解

球体运动图解
这里写图片描述


3

Hashtable Usage —— 哈希表的用法


Hash() —— 哈希函数中的键值对顺序随意,但 必须按照官方要求去写,是固定的
举个栗子黑白88

using UnityEngine;


/// <summary>
/// 测试iTween——哈希表类
/// </summary>
public class TEST1 : MonoBehaviour
{
    public GameObject      TargetGameObject; //目标物体:添加目标物体到inspector面板中
    public float           Time = 2;         //过渡时间
    public iTween.EaseType ITweenType;       //过渡动画曲线类型:可以外部调节


    /// <summary>
    /// 更新函数
    /// </summary>
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) //如果点击鼠标左键
        {
            //iTween.MoveTo(TargetGameObject, new Vector3(3, 3, 3), Time); //移动(目标物体,目标位置,时间)


            //Hashtable args = new Hashtable();                 //实例化一个哈希表对象
            //args.Add("x",                3);                  //添加x坐标:3
            //args.Add("time",             2);                  //时间为:2秒
            //args.Add("delay",            0.1);                //延时:0.1秒
            //args.Add("oncomplete",       "onupdatefunction"); //动画结束时:回调函数
            //args.Add("oncompletetarget", gameObject);         //调用目标物体,脚本的 完成方法 onpupdatefunction
            //args.Add("looptype",         "pingpong");         //过度动画类型:来回动画(可自己定义,根据iTween提供的贝塞尔曲线函数,来达到想要的效果)
            //iTween.MoveTo(TargetGameObject, args);            //移动物体(目标物体,哈希表)


            //和上边方式一模一样,用iTween的Hash()函数,直接添加即可
            iTween.MoveTo(TargetGameObject,iTween.Hash("looptype", "pingpong", "oncompletetarget", gameObject, "oncomplete", "onupdatefunction", "delay", 0.1,"x", 3, "time", 2, "easetype", ITweenType));
        }


        if (Input.GetMouseButtonDown(1)) //如果点击鼠标右键
        {
            TargetGameObject.transform.position = Vector3.zero; //把物体位置归零
        }
    }


    /// <summary>
    /// 打印数字:名字自定义
    /// </summary>
    private void onupdatefunction()
    {
        print("动画完毕");
    }
}

这里写图片描述


4

Example —— 例子1- - 抛物线运动


这是一个官方的例子,照着写的

MoveTo —— 移动到指定坐标

MoveBY —— 在自身的基础上,做增量移动

举个栗子黑白88

using UnityEngine;


/// <summary>
/// 球体自身挂载的脚本
/// </summary>
public class MySphere : MonoBehaviour
{
    public  Vector3         TargetPos;     //目标位置
    private GameObject      Sphere;        //子物体 圆球的位置
    public  iTween.EaseType ShangEaseType; //上过度动画的类型
    public  iTween.EaseType XiaEaseType;   //下过度动画的类型


    /// <summary>
    /// 初始化方法
    /// </summary>
    void Start()
    {
        Sphere = transform.Find("Sphere").gameObject;                                                                             //找到球体预设物的子物体:Sphere
        iTween.MoveTo(gameObject, iTween.Hash("time", .7,  "position", TargetPos, "easetype", iTween.EaseType.easeOutCubic));     //移动到青色球所在的位置
        iTween.FadeTo(gameObject, iTween.Hash("time", .5,  "delay",    3,         "alpha",    0, "onComplete", "DestroyTarget")); //修改透明度
        iTween.MoveBy(Sphere, iTween.Hash("time",     .35, "y",        5,         "easetype", ShangEaseType));                    //移动球体预设物子物体Sphere 相对位置 y轴 到5:即向上移动
        iTween.MoveBy(Sphere, iTween.Hash("delay",    .35, "time",     .35,       "y",        -5, "easetype", XiaEaseType));      //向下移动,并调用方法
        //MoveBY是在自身的基础上,做增量移动
        //MoveTo是移动到指定坐标
    }


    /// <summary>
    /// 删除物体
    /// </summary>
    private void DestroyTarget()
    {
        Destroy(gameObject); //删除物体
    }
}

using UnityEngine;


/// <summary>
/// 测试脚本——球体运动类,挂在空物体
/// </summary>
public class Test_1 : MonoBehaviour
{
    public GameObject SphereGameObject; //球体预设物
    public Transform  CyanTransform;    //中心球体的位置:青色球体位置


    /// <summary>
    /// 更新函数
    /// </summary>
    void Update()
    {
        RaycastHit hitinfo;                                                        //碰撞对象
        Ray        ray        = Camera.main.ScreenPointToRay(Input.mousePosition); //屏幕点转射线 —— 拿到射线对象
        bool       isCollider = Physics.Raycast(ray, out hitinfo);                 //射线是否照射到碰撞对象: hitinfo —— 返回bool值
        if (isCollider && hitinfo.collider.tag == "Ground")                        //如果照射到,并且对象标签是 “Ground”(标签需要自己设定地面为"Ground")
        {
            CyanTransform.position = hitinfo.point; //移动红色物体的坐标 —— 到被照射的点上
        }
        if (Input.GetMouseButtonDown(0)) //如果点击鼠标左键
        {
            Spawn(); //调用生成方法
        }
    }


    /// <summary>
    ///  生成物体
    /// </summary>
    void Spawn()
    {
        GameObject go                         = (GameObject) Instantiate(SphereGameObject); //实例化物体
        go.GetComponent<MySphere>().TargetPos = CyanTransform.position;                     //给物体身上的脚本中的 目标位置TargetPos 赋值:青色球体的位置
    }
}

这里写图片描述


支持

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!


先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


1 —— 云服务器超全购买流程 (新手必备!)

2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

3—— Windows 服务器配置、运行、建站一条龙 !

4 —— Linux 服务器配置、运行、建站一条龙 !





技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

相关文章
|
3月前
|
SQL 关系型数据库 MySQL
18 PDO你知道是什么吗?
路老师在知乎分享了PHP语言的知识,重点介绍了PDO(PHP Data Object)数据库抽象层。PDO旨在解决PHP早期版本的维护难题,提高代码的可移植性和兼容性。文章详细讲解了PDO的基本概念、特点、连接数据库的方法以及执行SQL语句的几种方式,包括`exec()`、`query()`、`prepare()`和`execute()`方法。适合PHP初学者深入了解和实践。
335 3
|
9月前
|
开发工具 Android开发 开发者
Android Studio详细下载,安装使用教程
Android Studio详细下载,安装使用教程
995 0
|
编解码 算法 数据安全/隐私保护
[资料]airplay协议
[资料]airplay协议
344 0
|
SQL HIVE
Caused by: java.io.IOException: Filesystem closed的处理
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://nameservice/user/hive/warehouse/om_dw.
3210 0
|
6月前
|
敏捷开发 测试技术 uml
UML 在敏捷开发中的应用与实践
【8月更文第23天】统一建模语言 (UML) 是一种广泛使用的图形化语言,用于描述软件系统的设计。它通过各种图表和符号来帮助开发团队理解系统的架构、行为和交互。而敏捷开发则是一种强调快速迭代、客户反馈和持续改进的软件开发方法论。这两种看似风格迥异的方法实际上可以很好地协同工作,以提高软件项目的效率和质量。
163 4
|
7月前
|
存储 算法 数据处理
C++一分钟之-范围基础:views与ranges
【7月更文挑战第1天】C++20的Ranges库简化了集合操作,引入了Range(具有begin()和end()的对象)和View(延迟计算的Range)。常见问题包括混淆Range与Container、忽视View的延迟性和错误修改只读View。要避免错误,需理解Range概念、明确操作执行时机并检查View的可变性。代码示例展示了如何过滤并平方vector中的奇数,体现Range的使用。范围库带来了代码的简洁和效率,但理解其工作原理至关重要。
179 0
|
8月前
|
监控 安全 网络安全
探讨网站加密访问的安全性问题:HTTPS的防护与挑战
**探讨HTTPS在网站加密中的角色,提供数据加密和身份验证,防范中间人攻击。心脏滴血漏洞示例显示持续维护的必要性。面临证书管理、性能影响和高级攻击挑战,应对措施包括更新、HSTS策略及用户教育。HTTPS是安全基础,但需不断优化以应对新威胁。**
571 2
|
6月前
|
SQL 关系型数据库 MySQL
OceanBase 的 SQL 兼容性与优化
【8月更文第31天】随着分布式计算的发展,越来越多的企业开始采用分布式数据库来满足其大规模数据存储和处理的需求。OceanBase 作为一款高性能的分布式关系数据库,其设计旨在为用户提供与传统单机数据库类似的 SQL 查询体验,同时保持高可用性和水平扩展能力。本文将深入探讨 OceanBase 的 SQL 引擎特性、兼容性问题,并提供一些针对特定查询进行优化的方法和代码示例。
448 0
|
9月前
|
应用服务中间件 Linux Apache
Netty &amp; Mina 入门级总结(转)
Netty &amp; Mina 入门级总结(转)
349 0
|
9月前
|
存储 人工智能 自然语言处理
通过阿里云 Milvus 与 PAI 搭建高效的检索增强生成(RAG)系统
阿里云Milvus现已无缝集成于阿里云PAI平台,一站式赋能用户构建高性能的检索增强生成(RAG)系统。您可以利用Milvus作为向量数据的实时存储与检索核心,高效结合PAI和LangChain技术栈,实现从理论到实践的快速转化,搭建起功能强大的RAG解决方案。
通过阿里云 Milvus 与 PAI 搭建高效的检索增强生成(RAG)系统

热门文章

最新文章