如何制作Unity中甲板的动画处理卡片

时间:2016-07-19 07:24:45

标签: animation unity3d unity5

我不久前开始学习团结。现在,我遇到了处理卡片动画的问题并向玩家展示,

看起来像:

animation

我不知道制作它的算法。我试过搜索,但没有找到任何解决方案。我正在考虑在游戏开始时将文件像图片一样闪存以加载它(非常愚蠢......)。

我需要一些帮助。如果可以,请给我解决方案!

非常感谢。

2 个答案:

答案 0 :(得分:1)

@Bart我确实尝试了一些结果:)

我的代码

IEnumerator InitCardWithAnimation(GameObject[] arrayCards)
    {
        SortCards sort = new SortCards();
        arrayCards = sort.SortCard(arrayCards); ;
        Camera cam = Camera.main;
        float height = 2f * cam.orthographicSize;
        float widthCard = arrayCards[0].GetComponent<Renderer>().bounds.size.x;
        float x = -6 * (widthCard / 3);
        int layer = 1;
        float z = 13;
        foreach (GameObject item in arrayCards)
        {


            GameObject rocketClone = (GameObject)Instantiate(item, new Vector3(0, 0, z), transform.rotation);

            iTween.MoveTo(rocketClone, new Vector3(x, -height / 3, z), 1.5f);
            yield return rocketClone;
            yield return new WaitForSeconds(0.3f);

            x += (widthCard / 3);
            //increase ordermin layer
            rocketClone.GetComponent<SpriteRenderer>().sortingOrder += layer;
            layer++;
            z--;
            arrCard.Add(rocketClone);
        }
    }

预览

enter image description here

答案 1 :(得分:0)

您可能最好将实例化的卡片位置移动到最终位置,而不是使用动画。您可以设置一个列表以检查该位置是否有卡,如果是,则将下一张卡移动到下一个位置。卡片背面到达该位置后,取下卡片背面,将实际卡片放在卡片背面移动的位置。然后你可以使用这些位置,这样当玩家移动一张牌时,它可以捕捉并移动另一张牌的位置。