Animation 如何制作统一牌组的动画交易卡

Animation 如何制作统一牌组的动画交易卡,animation,unity3d,unity5,Animation,Unity3d,Unity5,不久前我开始学习团结。现在,我有一个问题,处理卡动画,并显示给玩家 看起来像: 我不知道制作它的算法。我试过搜索,但没有找到任何解决方案。我正在考虑制作一个像图片中那样的文件,以便在游戏开始时加载它(非常愚蠢…) 我需要一些帮助。如果可以,请给我解决方案 非常感谢。与其使用动画,不如将实例化的卡位置移动到最终位置。您可以设置一个列表以检查该位置是否有卡,如果有,请将下一张卡移动到下一个位置。卡背面到达该位置后,移除卡项目的背面,并将实际卡放置在卡背面移动到的位置。然后,您可以使用这些位置,以便

不久前我开始学习团结。现在,我有一个问题,处理卡动画,并显示给玩家

看起来像:

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

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


非常感谢。

与其使用动画,不如将实例化的卡位置移动到最终位置。您可以设置一个列表以检查该位置是否有卡,如果有,请将下一张卡移动到下一个位置。卡背面到达该位置后,移除卡项目的背面,并将实际卡放置在卡背面移动到的位置。然后,您可以使用这些位置,以便当玩家移动一张牌时,它可以捕捉并移动另一张牌的位置

@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);
        }
    }
IEnumerator InitCardWithAnimation(GameObject[]arrayCards)
{
SortCards sort=新的SortCards();
arrayCards=sort.SortCard(arrayCards);
Camera cam=Camera.main;
浮动高度=2f*凸轮正交尺寸;
float widthCard=arrayCards[0].GetComponent().bounds.size.x;
浮动x=-6*(宽度卡/3);
int层=1;
浮点数z=13;
foreach(arrayCards中的游戏对象项)
{
GameObject rocketClone=(GameObject)实例化(项,新向量3(0,0,z),transform.rotation);
移动到(rocketClone,新矢量3(x,-高度/3,z),1.5f)之间的距离;
收益率;
收益率返回新的WaitForSeconds(0.3f);
x+=(宽度卡/3);
//增加ordermin层
rocketClone.GetComponent().sortingOrder+=层;
层++;
z--;
arrCard.Add(rocketClone);
}
}
和预览


在大多数情况下,它似乎只是在纸牌中间的初始位置和它们在桌子上的最终位置之间,加上最后的排序,这也不过是一个二字而已。@Bart打牌时我必须制作动画。但是在打牌的时候我没有办法:)我不是一个很会打牌的人,那有什么区别呢?我处理这个动画的方法是将卡片(显示它们的背部)插入它们的位置。对于最下面一行,当吐温结束时,用实际的正面朝上的卡片交换。@Bart,对了,我明白了。你能给我一些示例代码让卡片动画从(0,0)移动到玩家吗?恐怕不行。你得弄清楚这一点。试试看。如果你失败了(但有代码要显示),更新你的问题以包括你尝试过的内容。