炉石里面英雄的水晶代码:
using UnityEngine;
using System.Collections;
public class Herocrystal : MonoBehaviour {
//本例假设最大10个水晶,处理玩家拥有水晶数量,可用水晶数量和系统最大水晶数量之间的关系并显示出来
public int usablecrystals=1;//玩家可用初始水晶量
public int allcrystals;//系统最大水晶量
public int totalcrystals = 1;//玩家拥有初始水晶量
public UISprite[] savecrystals;//保存的水晶量
private UILabel uilabel;
void Awake()
{
uilabel = this.GetComponent<UILabel>();
allcrystals = savecrystals.Length;//最大的水晶量是保存的水晶量
Showcrystals();
}
void Showcrystals()//显示水晶
{
for (int i = totalcrystals; totalcrystals < allcrystals; totalcrystals++)
{
savecrystals[totalcrystals].gameObject.SetActive(false);//大于totalcrystals的是不可见的
}
for (int i = 0; i < totalcrystals; i++)
{
savecrystals[totalcrystals].gameObject.SetActive(true);//要求小于totalcrystals的显示出来
}
for (int k = usablecrystals; usablecrystals < totalcrystals; usablecrystals++)
{
savecrystals[usablecrystals].spriteName = "素材里sprite的名字";//赋予新的sprite让total的显示为灰色,表示玩家拥有但不可使用的水晶即灰色
}
for (int i = 0; i < usablecrystals; i++)
{
if (i == 9)
{ }//本例里最大10个水晶所以10号水晶特殊,括号里要处理特殊水晶
else
savecrystals[i].spriteName = "" + (i + 1);//可以用也可看见的水晶名字(找到这个sprite的prefabs就各种属性都有了),数组是0号下标记所以要i+1表示从1开始,()里的先执行
}
uilabel.text = usablecrystals + "/" + totalcrystals;//label里显示的内容:可用水晶数量/拥有水晶量
}
}