第一步:首先放置一张透明的图片于底部,create->UI->Image,在其Inpector中Source Image处选择资源UIMask,如果没有此资源,可以自行用ps制作一张透明的图片。
第二步:在uinity中创建一个Resources的文件夹,里面放置你想要击杀显示的图片。以下我放置了3张图片为例。
第三步:为图片添加c#脚本,进入脚本,
public Image image;//把场景中Image拖拽进去
public static int ImageI=3;//用于击杀图片的循环处理
public int killCount=0;//击杀数量
void Fire()
{
//射线投射
Vector3 origin = Camera.main.transform.position;
Vector3 direction = Camera.main.transform.forward;
Ray ray = new Ray(origin,direction);
RaycastHit hitInfo;
//投射检测
if(Physics.Raycast(ray,out hitInfo))
{
switch(hitInfo.transform.tag)//需要为射击对象添加一个tag
{
case "Zombie":
if(hp<=0)
{
hp=3;
killCount++;
UpdateImage();
}
}
}
}
void UpdateImage()
{
if(killCount==1 || ImageI%3==0)
{
//从文件夹中下载图片并且通过image中的组件Image中的精灵sprite来改变图片
image.GetComponent<Image>().sprite = Resources.Load("KillOne",typeof(Sprite)) as Sprite;
}else if(killCount == 2 || ImageI%2==0)
{
image.GetCompoent<Image>().sprite = Resource.Load("killOne",typeof(Sprite)) as Sprite;
}else
{
image.GetComponent<Image>().sprite = Resource.Load("killThree",typeof(Sprite)) as Sprite;
}
ImageI++;//利用静态变量使得,每次敌人被击杀,ImageI都会加一
}