iTween for Unity
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/3833321.html
你曾经在你的游戏中制作过动画吗?问这个问题可能是愚蠢的,几乎每个Game都有动画,虽然有一些没有,但你必须处理有动画和没有动画。让我们结识 ITween。
iTween#
官方网站:http://itween.pixelplacement.com
官方文档:http://pixelplacement.com/itween/documentation.php
ITween只有一个文件,它提供了多种方法。它们可以被用来不仅在场景动画的对象,同时也改变自己的颜色,大小,位置,方向, 让我们尝试模拟一个很小的范围内进行我们的测试。
首先连接ITween的Asset Store:https://www.assetstore.unity3d.com/en/#!/content/84
在Unity中,我们应该看到像这样: 用以下内容创建一个新的阶段: Cube-这是我们将要进行动画处理的对象。
iTween导入Unity#
Tween示例#
void Start() { iTween.RotateFrom(gameObject, iTween.Hash("y", 90.0f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo)); iTween.MoveFrom(gameObject, iTween.Hash("y", 3.5f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo)); iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 2.0f)); iTween.ColorTo(gameObject, iTween.Hash("r", 1.0f, "g", 0.5f, "b", 0.4f, "delay", 1.5f, "time", 0.3f)); iTween.ScaleTo(gameObject, iTween.Hash("y", 1.75f, "delay", 2.8f, "time", 2.0f)); iTween.RotateBy(gameObject, iTween.Hash("x", 0.5f, "delay", 4.4f)); iTween.MoveTo(gameObject, iTween.Hash("y", 1.5f, "delay", 5.8f)); iTween.MoveTo(gameObject, iTween.Hash("y", 0.5f, "delay", 7.0f, "easetype", iTween.EaseType.easeInExpo)); iTween.ScaleTo(gameObject, iTween.Hash("y", 1.0f, "delay", 7.0f)); iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 8.0f)); iTween.ColorTo(gameObject, iTween.Hash("r", 0.165f, "g", 0.498f, "b", 0.729f, "delay", 8.5f, "time", 0.5f)); iTween.CameraFadeAdd(); iTween.CameraFadeTo(iTween.Hash("amount", 1.0f, "time", 2.0f, "delay", 10.0f)); }
Tween效果#
脚本分析#
运行并查看结果。还不错,不是吗? 让我们一行一行来分析脚本。
RotateFrom#
iTween.RotateFrom(gameObject, iTween.Hash("y", 90.0f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo));
方法RotateFrom用来旋转一个对象。不像RotateTo和RotateBy,RotateFrom用于初始化指定角度的旋转和旋转到其原始状态。方法,最喜欢的人,有过载。您可以使用一个或长或短的版本:
RotateFrom(GameObject target, Vector3 rotation, float time);
RotateFrom(GameObject target, Hashtable args);
iTween.Hash#
我们通过游戏对象 -对象,它是当前脚本。为了不写类似:
Hashtable args = new Hashtable();
args.Add(“y”, 90.0f);
args.Add(“time”, 2.0f);
args.Add(“easetype”, iTween.EaseType.easeInExpo);
我们使用iTween.Hash - Express版本的Hashtable。正如我们的参数Y = 90.0f,它是等价的(如果x和z的值,当然为零,)
Quaternion.Euler( new Vector3(0f, 90.0f, 0f) )
Tween曲线#
转错了要开始我们旋转 time=2.0f
时间必须在动画度过的。还有名为“类似的说法速度 “,在他的案件是不是指定的时间,并在该动画将运行速度。最后一个参数,我们指出,easetype = iTween.EaseType.easeInExpo。easetype该波形,其用于内插。这里是曲线的图形表示: 尝试实验,如果你不明白它是如何工作的。
MoveFrom#
MoveFrom类似于以前,应该简单地理解用来代替旋转运动。
iTween.MoveFrom(gameObject, iTween.Hash("y", 3.5f, "time", 2.0f, "easetype", iTween.EaseType.easeInExpo));
ShakePosition#
ShakePosition用在这种情况下,以贯彻落实“惊天”的相机。此方法将导致通过降低幅度移动的对象,不使用插值,对象将在他指定的部分出现在随机点。有一种所谓“新说法延迟 “,这是很重要的动画选项用于指定秒的动画之前必须经过数。
iTween.ShakePosition(Camera.main.gameObject, iTween.Hash("y", 0.3f, "time", 0.8f, "delay", 2.0f));
ColorTo#
ColorTo顺利改变物体的颜色随着时间的推移。
iTween.ColorTo(gameObject, iTween.Hash("r", 1.0f, "g", 0.5f, "b", 0.4f, "delay", 1.5f, "time", 0.3f));
ScaleTo#
ScaleTo,从方法的名称作为看出,改变对象的大小从原始值->提供的值
iTween.ScaleTo(gameObject, iTween.Hash("y", 1.75f, "delay", 2.8f, "time", 2.0f));
ScaleFrom,将物体的大小从提供的值变化到原来的大小
iTween.ScaleFrom(gameObject, iTween.Hash("x", 10f);
itwee scale的示例可查看:https://qiita.com/zob_by_zooa_inc/items/0632b292515c67e80b22
RotateBy#
RotateBy提醒RotateFrom,有必要在那些需要部署超过360度(尽管,在这种情况下,可以通过进行分配情况RotateTo)。假设我们已经指定Z = 2.0F,那岂不是对象应转了两圈绕Z轴的一段时间。
iTween.RotateBy(gameObject, iTween.Hash("x", 0.5f, "delay", 4.4f));
MOVETO#
MOVETO,或许,整个类的main方法的ITween。他移动的对象在规定的时间指定的坐标。插值是根据所有相同的easetype,你已经知道了。 以下新方法:
iTween.MoveTo(gameObject, iTween.Hash("y", 1.5f, "delay", 5.8f)); iTween.MoveTo(gameObject, iTween.Hash("y", 0.5f, "delay", 7.0f, "easetype", iTween.EaseType.easeInExpo));
CameraFadeAdd#
CameraFadeAdd创建一个用于模拟停电一个新的对象。深度变化从当前值到指定的参数。以下过载:
iTween.CameraFadeAdd(); iTween.CameraFadeTo(iTween.Hash("amount", 1.0f, "time", 2.0f, "delay", 10.0f));
CameraFadeAdd()
CameraFadeAdd(Texture2D texture)
CameraFadeAdd(Texture2D texture, int depth)
示例二#
如果没有的Texture2D,将使用黑色。 从我所没有描述,也有重要的点。例如,该参数可以指定将在事件发生时调用的方法。假设:
public class iTweenController : MonoBehaviour { int clbkN = 0; GUIStyle style; void Awake() { style = new GUIStyle(); style.fontSize = 60; } void Start() { iTween.MoveTo(gameObject, iTween.Hash("position", new Vector3(5.0f, 1.0f, 0.0f), "oncomplete", "myClbk", "loopType", iTween.LoopType.loop, "speed", 2.0f)); } void myClbk() { clbkN++; } void OnGUI() { GUI.Label(new Rect(10, 10, 0, 0), "Callback # "+clbkN, style); } }
运行结果#
其结果将是: 我注意到,新论点的方法MOVETO:
position = new Vector3(5.0f, 1.0f, 0.0f)
这是一个简短的记录,有关“X”,5.0F,“Y”,1.0F,“Z”,0.0F
oncomplete = "myClbk"
一旦动画(或者动画循环迭代)方法被调用具有指定名称
loopType = iTween.LoopType.loop
观看动画。在这种情况下,设置的正常循环,该动画将被不断地发挥,在每一个动画被移动到起始位置的起始处。 这可能是完成的。谢谢大家的关注。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤