u3d随机精灵显示

Posted AsukaLay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了u3d随机精灵显示相关的知识,希望对你有一定的参考价值。

 public Transform dogs;
    public List<GameObject> obj_dogs;
    public List<Sprite> spr_dogs;
    public List<GameObject> spr_change;

    // Use this for initialization
    void Start()
    {
        spr_change = new List<GameObject>();
        obj_dogs = new List<GameObject>();
        for (int i = 0; i < 42; i++)
        {
            GameObject dog = Instantiate<GameObject>(Resources.Load<GameObject>("ItemDog"));
            dog.transform.SetParent(dogs);
            dog.GetComponent<Image>().sprite = spr_dogs[UnityEngine.Random.Range(0, spr_dogs.Count)];
            EventTriggerListener.Get(dog).onClick = OnDogClick;
            obj_dogs.Add(dog);
        }
    }

    void OnDogClick(GameObject go)
    {
        List<GameObject> desAni = new List<GameObject>();
        dogs.GetComponent<GridLayoutGroup>().enabled = false;
        spr_change.Add(go);
        if (spr_change.Count < 2) return;
        else
        {
            Sequence seq = DOTween.Sequence();
            seq.Append(spr_change[0].transform.DOLocalMove(spr_change[1].transform.localPosition, 0.5f));
            seq.Join(spr_change[1].transform.DOLocalMove(spr_change[0].transform.localPosition, 0.5f));
            seq.AppendCallback(() =>
            {
                for (int i = 0; i < 2; i++)
                {
                    GameObject ani = Instantiate<GameObject>(Resources.Load<GameObject>("DestroyAni"));
                    ani.transform.SetParent(dogs);
                    ani.transform.localPosition = spr_change[i].transform.localPosition;
                    ani.transform.localScale = Vector3.one;
                    desAni.Add(ani);
                    Destroy(spr_change[i]);
                }
                spr_change.Clear();
            });
        }
    }

 

以上是关于u3d随机精灵显示的主要内容,如果未能解决你的问题,请参考以下文章

html5画布精灵表随机行/列

U3d:随机出任意的字符串

如何在片段着色器中平铺部分纹理

精灵图像的随机移动位置

片段着色器中的OpenGL点精灵旋转

在 Sprite Kit 中永远随机移动精灵的最佳方法