多次动画导致UISprite丢失

DOTween动画进行时与UISprite有冲突,DOTween多次重复同一个动画时,UISprite会莫名的丢失

UISprite动画代码

CUIManager.Instance.OpenWindow(newCmd.UIName, newCmd.Args);
CUIManager.Instance.CallUI(newCmd.UIName, (ui, _args) =>
{
CUIMask.Show(CUIMaskType.TransparentMask); // 确保遮罩
ui.transform.DOKill();
ui.transform.DOLocalMoveFrom(ui.transform.localPosition + new Vector3(MOVE_ANIM_OFFSET, ), UI_ANIM_TIME)
//.SetEase(DG.Tweening.Ease.OutBack)
.onComplete = CUIMask.Hide; });

冲突表现

DOTween的动画进行时,UISprite会莫名地不见了

UISPrite解决办法

CUIManager.Instance.OpenWindow(newCmd.UIName, newCmd.Args);//打开窗口
CUIManager.Instance.CallUI(newCmd.UIName, (ui, _args) =>
{
ui.transform.DOKill();
var lastPos = ui.transform.localPosition;
ui.transform.localPosition = ui.transform.localPosition + new Vector3(MOVE_ANIM_OFFSET, );
var tweener = ui.transform.DOLocalMove(lastPos, UI_ANIM_TIME); tweener.OnComplete(CUIMask.Hide); // Fix: DOTween 与UISprite有一个冲突,DOTween进行时UISprite会莫名的丢失...强制DOTween进行中刷新uisprite
tweener.OnUpdate(() =>
{
foreach (UISprite sprite in ui.GetComponentsInChildren<UISprite>())
{
sprite.MarkAsChanged(); }
}); });

在tweener的update函数中,让UISprite 执行rebuilt

多次动画导致UILabel丢失

DOTween 与UILabel也有同样的冲突,解决方法,同上面一样。

多次动画导致UIPanel(Soft Clip)内容丢失

当dotween的动画和Clipping为soft clip的UIPanel一起时,也有上述的bug

UIPanel解决方法

启用再禁用panel

//dotween 和soft clip panel 有bug
public static void FixDotween_PanelsWrong (UIPanel[] panels)
{
foreach (var panel in panels)
{
if (panel.clipping == UIDrawCall.Clipping.SoftClip)
{
panel.enabled = false;
panel.enabled = true;
}
}
} //使用
ui.Contain.DOLocalMove(endPos, UIAnimationTime)
.SetEase(ShowEaseFunc)
.OnComplete(() => FixDotween_PanelsWrong(panels));//fix bug

DoTween NGUI bug的更多相关文章

  1. NGUI BUG /各种坑

    以下为:NGUI3.6具体使用过程中碰到的 各种BUG /各种坑 备忘 1.UIToggle 使用UIToggle组件实现多个tab标签互斥,如果是在代码中动态的设置显示某个tab标签对应的内容,则需 ...

  2. Ngui使用随心记

    Ngui的一些基础使用心得! BB:首先BB一下我觉得NGUI和UGUI哪个好?我首推UGUI,先不说是官方内置,在使用的方便性上也要好很多,而且NGUI停止更新了!还有就是NGUI有BUG! Ngu ...

  3. [U3D Demo] 手机飞机大战

    游戏截图 使用插件 DOTween NGUI 游戏介绍 游戏使用C#开发,素材是<全民飞机大战>中提取出来的,该游戏最早是去年由Flash Air+Starling开发的Demo,后来我修 ...

  4. DOTween 模仿NGUI Tween

    最近再做一个小的项目,只要使用的是DOTween 动画. 但是感到DOTween 在某些方面不如 NGUI的Twenn 比较好用 所以就模仿了一下 在此,请各位大神指点一下 public class ...

  5. NGUI中UILabel使用url标签的一个bug

    在NGUI里,UILabel控件可以支持一些简单功能的标签,使文本显示更丰富及实现类似超链接的功能.但是在使用的时候发现了NGUI3.5.9版本里存在着一个bug.不过还好修复这个bug也很简单. 在 ...

  6. NGUI UIGrid 动态刷新布局 && BUG FIX

    /// <summary> /// "1" => 对应的一个UISpirte,"1234" => 对应四个预设 /// </sum ...

  7. NGUI的一个bug记录

    在当前帧内触发按钮事件,然后把click事件的list删去,再添加,这时候会再次触发. 不确定,先记一下

  8. 修改NGUI 3.11 的控件 inputfileld hide input 属性bug

    1.勾选hideinput属性后,输入中文,会出现,无法显示的问题. 2.勾选hideinput属性后,密码框会出现第一个字母被吃掉的问题 解决方案:控件都不要勾选hideinput属性,代码做如下修 ...

  9. UIWrapContent(NGUI长列表优化利器)

    NGUI长列表优化利器 优化原理 NGUI3.7.x以上版本 有个新组件 UIWrapContent ,当我们的列表内容很多时,可以进行优化.它不是一次生成全部的child,而是只有固定数量的chil ...

随机推荐

  1. Orchard源码:Logging

    试着用markdown写些东西.貌似博客园支持的还有问题,代码片段显示错位,还得另外上传图片.还是用普通方法写写随笔好了. Logging相对也是比较松耦合的模块,可以随时提取出来用在自己的项目中.其 ...

  2. 用javascript实现全选/反选组件

    以下是本人制作的全选/反选 组件,供广大同行参考.指正: 效果如图: 在实现的过程中,全选和全部取消选中这两个功能较为简单,只需用for循环遍历所有复选框为true或false即可.反选也较为简单,也 ...

  3. 【使用 DOM】使用 Window 对象

    1. 获取 Window 对象 可以用两种方式获得Window对象.正规的HTML5方式是在Document对象上使用defaultView属性.另一种是使用所有浏览器都支持的全局变量window . ...

  4. arcgis python 更新顺序号

    i = 0def myFun(): global i i=i +1 return i myFun() ========================== accumulate(  ) total = ...

  5. Upgrade custom workflow in SharePoint

    Experience comes when you give a try or do something, I worked in to many SharePoint development pro ...

  6. Fragment官方解析

    由于fragment和activity的生命周期很类似,对activity不熟悉的可以参考–深入了解Activity-生命周期, 深入理解Activity-任务,回退栈,启动模式, 概要 A Frag ...

  7. 【原】macbook不睡眠的排查与解决

    这几天突然发现手上的macbook pro笔记本不能睡眠了,就算合上盖子也是如此.有没有进入睡眠可以观察右下角的呼吸灯,如果呼吸灯常亮则说明有问题.所谓“工欲善其事,必先利其器”,攻城狮想敲更多更好的 ...

  8. Linux文件I/O学习

    Linux内核的VFS子系统: 文件描述符     对于内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符.当读 ...

  9. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  10. 怎么录制Android或IOS动画教程

    前一篇文章介绍了用DemoCreator制作Android视频教程,今天再介绍一种方法. 那就是用GifCam软件录制,此软件录制导出成Gif动画图片,可直接放在你的文章里面,效果比flash要好. ...