using UnityEngine;
using System.Collections;
using System.Collections .Generic;
public class HearthStonemove : MonoBehaviour {
//系统中很多cards排成一排有新card的进入和旧card的移出去并destroy
public Transform incard;//进入的card
public Transform outcard;//出去的的card因为只要位置所以定义为Transform
public Transform card1;
public Transform card2;
private float yoffset;//两张牌的距离
public GameObject cardprefab;
private List <GameObject>cardlist=new List<GameObject>();//物体list
void Start()
{
yoffset = card2.position.y - card1.position.y ;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.LeftControl))
{
StartCoroutine( AddCard());
}
}
public IEnumerator AddCard()
{
GameObject go= GameObject.Instantiate(cardprefab, incard.position, Quaternion.identity)as GameObject;//实例化一个物体go用来以后添加这个物体
yield return 0;
go .transform .position =incard .position ;
iTween.MoveTo(go ,card1.position ,1f);//从go的位置去card1的位置,动画时间是1秒
cardlist.Add(go) ;//添加物体go
if (cardlist.Count>7)//只能放下7个
{
//remove the first index移除最先进来的那个,从第0个开始
iTween.MoveTo(cardlist [0],outcard.position ,.1f);
cardlist .RemoveAt(0);
Destroy (cardlist[0],2);//2秒后销毁,itween的动画有一秒哦,所以要在播放完才destroy
}
for (int i=0;i<cardlist.Count -1;i++)
{
iTween.MoveTo (cardlist[i],cardlist [i].transform .position +new Vector3(0,yoffset ,0),0.5f);//移除一个并destroy之后剩下的一堆进行刷新
}
}
}
unity开发炉石传说系列系统卡牌出入及移动排列代码
最新推荐文章于 2024-03-14 23:21:43 发布