unity3d Tweener学习二

本文介绍如何使用DOTween库在Unity中实现UI面板的平移动画,并展示了如何通过Tweener对象控制动画的播放、暂停及循环等效果。
  1. //创建一个简单位移动画,并将动画赋值给一个Tweener进行管理  
  2.         Tweener paneltweener = panelTranform.DOLocalMove(Vector3.zero, 2f); //这个是修改UGUI的局部坐标,相对与父类的局部坐标  
  3.         //多次调用DOTween动画会影响性能  
  4.         //DOTween默认动画播放完毕时会自动销毁动画  
  5.         //Tweener对象保存这个动画  
  6.           
  7.         paneltweener.SetAutoKill(false);              //禁止销毁动画  
  8.         paneltweener.Pause();                         //停止播放动画  
  9.         //paneltweener.SetDelay(0.5f);                //设置动画延迟播放  
  10.         //paneltweener.SetEase(Ease.INTERNAL_Zero);   //设置动画运动的模式  
  11.         //paneltweener.SetLoops(-1);                  //设置循环播放 (当参数为-1的时候循环播放;当参数>=0的时候则表示循环的次数;0的时候表示循环一次)  
  12.         //paneltweener.SetLoops(-1,loopType)          //设置循环播放并且设置动画循环的模式  
  13.         //paneltweener.PlayForward();                 //播放  
  14.         //paneltweener.PlayBackwards();               //倒放  
  15.         //paneltweener.OnComplete(OnComplete);        //动画播放完毕后执行,动画倒放时候不执行  
  16.         //paneltweener.OnStart(OnStart);              //动画第一次播放时执行  
  17.         //paneltweener.OnUpdate(OnUpdate);            //动画播放时不断执行  
  18.         //paneltweener.OnPlay(OnPlay);                //动画开始播放时执行  
  19.         //paneltweener.OnStepComplete(OnStepComplete);//动画播放且倒放都会执行一次,且执行顺序先于OnComplete  
  20.         //paneltweener.OnKill(OnKill);                //动画删除的时候执行事件  
  21.         //paneltweener.Kill(true);                    //删除动画且组件会直接到达指定位置  
### 在 Unity 中使用 Tweener 控制 Camera 的 Size 变化 在 Unity 中,Tweener 是一个强大的工具,可以用于创建平滑的动画效果。通过 `DOTween` 库,可以直接对 `Camera` 的 `orthographicSize` 属性进行控制,从而实现相机正交大小的变化[^1]。 以下是实现的具体方法: #### 使用 DOTween 修改 Camera 的 orthographicSize `DOTween` 提供了 `DOOrthoSize` 方法,专门用于修改正交相机的 `orthographicSize` 属性。以下是一个示例代码,展示如何在 2 秒内将相机的正交大小从当前值平滑过渡到目标值: ```csharp using UnityEngine; using DG.Tweening; public class CameraSizeTween : MonoBehaviour { public Camera targetCamera; // 指定要操作的相机 public float newSize = 10f; // 目标正交大小 public float duration = 2f; // 动画持续时间 void Start() { if (targetCamera != null) { // 使用 DOOrthoSize 方法改变相机的正交大小 targetCamera.DOOrthoSize(newSize, duration); } else { Debug.LogError("请指定一个有效的相机对象!"); } } } ``` #### 注意事项 - 确保所使用的相机是正交模式(Orthographic),否则 `orthographicSize` 属性将无效[^1]。 - 如果需要暂停或恢复动画,可以使用 `DOPause()` 和 `DOPlay()` 方法[^1]。 #### 示例扩展 如果需要更复杂的控制,例如在变化过程中添加回调函数或设置 easing 效果,可以参考以下代码: ```csharp void Start() { if (targetCamera != null) { targetCamera.DOOrthoSize(newSize, duration) .SetEase(Ease.InOutSine) // 设置缓动效果 .OnComplete(() => Debug.Log("相机大小变化完成!")); // 添加回调函数 } } ``` ### 总结 通过 `DOTween` 的 `DOOrthoSize` 方法,可以在 Unity 中轻松实现对 `Camera` 正交大小的动态控制。这种方法不仅简单易用,还支持丰富的动画选项和回调功能[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值