unity开发炉石传说系列系统卡牌出入及移动排列代码

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之后剩下的一堆进行刷新
      }


    }

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值