我不久前开始学习团结。现在,我遇到了处理卡片动画的问题并向玩家展示,
看起来像:
我不知道制作它的算法。我试过搜索,但没有找到任何解决方案。我正在考虑在游戏开始时将文件像图片一样闪存以加载它(非常愚蠢......)。
我需要一些帮助。如果可以,请给我解决方案!
非常感谢。
答案 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);
}
}
预览
答案 1 :(得分:0)
您可能最好将实例化的卡片位置移动到最终位置,而不是使用动画。您可以设置一个列表以检查该位置是否有卡,如果是,则将下一张卡移动到下一个位置。卡片背面到达该位置后,取下卡片背面,将实际卡片放在卡片背面移动的位置。然后你可以使用这些位置,这样当玩家移动一张牌时,它可以捕捉并移动另一张牌的位置。