zoukankan      html  css  js  c++  java
  • Unity经验之谈-DoTween动画结束匿名委托之巨坑

    产生问题:

    成百上千个物体放在List列表里面循环,每个物体都要使用移动和移动结束事件。

    BUG:

    动画结束之后我想隐藏该物体,结果却没有正常的隐藏,代码如下

    foreach (var item in lists)
    {
        if (item != null)
        {
            item .transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() =>
            {
                item .gameObject.SetActive(false);
            });

        }

    }
    产生的表现:

    这个List的最后一个item才会被正常的隐藏。

    原因:匿名委托中使用的item指向了lists的最后一个item

    解决办法:

    将Item的引用缓存起来,代码如下

    foreach (var item in lists)
    {
        if (item != null)
        {
            var go = item;
            go.transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() =>
            {
                go.gameObject.SetActive(false);
            });

        }

    }

    来源:http://www.cnblogs.com/vsirWaiter/p/7475044.html

  • 相关阅读:
    权限管理命令
    常用命令2
    常用命令1
    queue
    poj 3984
    L3-008 喊山 (30 分)
    常州大学新生寒假训练会试 I 合成反应
    dfs 的全排列
    poj 1154
    hdu 1241
  • 原文地址:https://www.cnblogs.com/dj1232090/p/9075437.html
Copyright © 2011-2022 走看看