NGUI Tween Scale实现动画效果

2015年01月24日 15:14 1 点赞 0 评论 更新于 2017-05-09 17:52

使用NGUI插件控制 Tween Scale 实现动画效果,乍一听可能觉得有些复杂,但只要理解了其中的原理,就会发现其实只需编写几段代码即可。下面我们来详细探讨实现过程。

代码示例1

以下是一个基本的脚本示例,用于展示如何使用 Tween Scale 实现缩放动画。

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour
{
// 要应用缩放动画的目标对象
public Transform tweenTarget;
// 动画持续时间
public float duration = 0.2f;
// 起始缩放值
public Vector3 a = new Vector3(0, 0, 0);
// 结束缩放值
public Vector3 b = new Vector3(200, 200, 0);

// 初始化方法
void Start ()
{
// 重新设置起始缩放值
a = new Vector3(50, 50, 0);
// 重新定义结束缩放值
Vector3 b = new Vector3(200, 200, 0);
}

// 每帧更新方法
void Update ()
{
// 这里可以添加每帧更新的逻辑,当前为空
}

// 开始缩放至起始值的方法
void Be()
{
// 开始缩放动画,将目标对象缩放到起始值
TweenScale.Begin(tweenTarget.gameObject, duration, a);
}

// 开始缩放至结束值的方法
void Be1()
{
// 开始缩放动画,将目标对象缩放到结束值
TweenScale.Begin(tweenTarget.gameObject, duration, b);
}
}

代码解释

  • tweenTarget:指定要应用缩放动画的目标对象。
  • duration:动画的持续时间,单位为秒。
  • ab:分别表示缩放动画的起始和结束缩放值。
  • Start 方法:在脚本启动时,重新设置起始和结束缩放值。
  • Be 方法:调用 TweenScale.Begin 方法,将目标对象缩放到起始值。
  • Be1 方法:调用 TweenScale.Begin 方法,将目标对象缩放到结束值。

代码示例2

下面的代码展示了如何结合 Tween ScaleTween Position 实现更复杂的动画效果。

// 要操作的对象
public GameObject objPanelAvatarSetting;
// 起始缩放值
public Vector3 a = new Vector3(1f, 1f, 1f);
// 结束位置值
public Vector3 b = new Vector3(-2.204684e-05f, -213f, -76.05f);

// 实现代码 利用scale与position来实现动画
// 将对象的初始缩放设置为零
objPanelAvatarSetting.gameObject.transform.localScale = new Vector3(0, 0, 0);
// 开始缩放动画,将对象从初始缩放值缩放到a
TweenScale.Begin(objPanelAvatarSetting.gameObject, 0.5f, a);
// 设置对象的初始位置
objPanelAvatarSetting.gameObject.transform.localPosition = new Vector3(-175.322f, 121.4104f, -76.05f);
// 开始位置动画,将对象从初始位置移动到b
TweenPosition.Begin(objPanelAvatarSetting.gameObject, 0.5f, b);

代码解释

  • objPanelAvatarSetting:要操作的目标对象。
  • a:缩放动画的结束缩放值。
  • b:位置动画的结束位置值。
  • 首先将对象的初始缩放设置为零,然后使用 TweenScale.Begin 方法将对象从初始缩放值缩放到 a
  • 接着设置对象的初始位置,再使用 TweenPosition.Begin 方法将对象从初始位置移动到 b

通过以上两个示例,你可以利用 NGUI 的 Tween ScaleTween Position 组件实现各种动画效果。根据实际需求调整参数,就能创造出丰富多样的动画表现。

作者信息

feifeila

feifeila

共发布了 570 篇文章