初学Unity笔记,仅供参考
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyBomb : MonoBehaviour
{
public Sprite[] bombSprite; //爆炸效果精灵数组
public Sprite[] hitSprite; //被击中的效果精灵数组
public int hp = 1; //生命值
private SpriteRenderer spriteRenderer;
public enum EnemyType { enmey0, enemy1, enemy2 }; //敌机类型
public EnemyType type = EnemyType.enmey0;
public bool isDeath = false; //是否死亡
public float timer = 0;
public static int frame = 20;
public float hitTimer = 0.2f;
private float restHitTime=0.2f;
public static int score = 0;
public AudioClip clip;
// Use this for initialization
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
// Update is called once per frame
void Update()
{
if (isDeath == true)
{
timer += Time.deltaTime;
int index = (int)(timer / (1f / frame));
if (index >= bombSprite.Length)
{
Destroy(this.gameObject);
AudioSource.PlayClipAtPoint(clip, Camera.main.transform.position);
}
else
{
spriteRenderer.sprite = bombSprite[index];
}
}
else
{
if (type == EnemyType.enemy1 || type == EnemyType.enemy2)
{
if (hitTimer >= 0)
{
hitTimer -= Time.deltaTime;
int index = (int)((restHitTime - hitTimer) / (1f / frame));
index %= 2;
spriteRenderer.sprite = hitSprite[index];
}
}
}
}
public void HitBomb()
{
hp--;
if (hp <= 0)
{
int a = GetComponent<Enemy>().hitScore;
if (!Hero.isDeath)
{
score += a;
}
//Debug.Log(score);
isDeath = true;
}
else
{
hitTimer = restHitTime;
}
}
}