今天练习的是翻牌的小游戏:有六张背面朝上的牌,点击牌后翻面显示结果,可以重置(重新随机打乱)。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using DoozyUI;
public class FlipCard : MonoBehaviour
{
private float delayTime = 0.5f; //*翻牌*,翻拍延时时间
private int speed = 90;
public GameObject front;
public GameObject back;
private RectTransform rect;
private UIElement flopElm;
private string name = "ImgBack";
private int num;
private int id;
public CardData cardVO;
public Image ImgHead;
public Text TextName;
public Text TextCount;
// Use this for initialization
void Start()
{
rect = gameObject.GetComponent();
UIManager.ShowUiElement(name);
flopElm = back.GetComponent();
}
// Update is called once per frame
void Update()
{
}
public void OnClickBtnToFlop()
{
if (back.active != false)
{
//back.SetActive(false);
//front.SetActive(true);
//UpdateData();
//*翻牌*
back.gameObject.AddComponent();
flopElm = back.GetComponent();
flopElm.rotationLoop.time = 2f;
flopElm.rotationLoop.rotation = new Vector3(0f, 180f, 0f);
flopElm.rotationLoop.easeType = DG.Tweening.Ease.Linear;
flopElm.rotationLoop.enabled = true;
flopElm.rotationLoop.autoStart = true;
Invoke("UpdateData", delayTime); //延时delayTime时间调用UpdateData函数显示翻出的牌面内容
//*翻牌*
}
}
void UpdateData()
{ //*翻牌*
back.SetActive(false);
front.SetActive(true);
//*翻牌*
id = Random.Range(1, 7);
num = Random.Range(1, 100);
cardVO = CardDataManager.Instance.GetDataById(id);
TextName.text = cardVO.Name;
TextCount.text = num.ToString();
ImgHead.overrideSprite = Resources.Load("Image/" + cardVO.Image, typeof(Sprite)) as Sprite;
}
}
下面是运行动态图: