unity运行游戏时出现舰炮红屏出现时间

Unity案例噩梦射手(8)
玩家有初始生命;
被敌人攻击后:掉血,播放受击音效,红屏(用UI图片做)闪烁提示,UI面板刷新生命
直至死亡:死亡播放死亡音效,游戏结束;
public int startingHealth = 100;
// 初始生命值
public int currentH
// 当前生命组件:
public Slider healthS
// 玩家生命条UI
// 玩家身上动画状态机
AudioSource playerA
// 玩家身上音效组件
PlayerMovement playerM
// 玩家移动组件
PlayerShooting playerS
// 玩家攻击组件状态bool:
// 玩家是否死亡
// 玩家受击后设置为True受击红屏闪烁:
public Image damageI
// 受击后全屏显示的图片(半透的红图,真实感;初始设为全透明)
public float flashSpeed = 5f;
// 受击图淡入淡出速度
public Color flashColour = new Color(1f, 0f, 0f, 0.1f);
// 受击图显示的颜色,半透
2.初始化组件:
void Awake ()
anim = GetComponent &Animator& ();
playerAudio = GetComponent &AudioSource& ();
playerMovement = GetComponent &PlayerMovement& ();
playerShooting = GetComponentInChildren &PlayerShooting& ();
currentHealth = startingH
3.在Update中,根据damaged状态显示受击红屏闪烁:
void Update ()
// 如果受击了,这一帧显示受击提示颜色;下一帧从当前颜色插值清除
if(damaged)
//设置受击图片的颜色为受击提示的颜色:半透红
damageImage.color = flashC
// 以flashSpeed速度 插值清除受击图片颜色到0,0,0,0
damageImage.color = Color.Lerp (damageImage.color, Color.clear, flashSpeed * Time.deltaTime);
//重置受击状态
4.玩家受伤:
public void TakeDamage (int amount)
//设置受伤变量为True,红屏闪烁后再恢复
// 减去受击生命
currentHealth -=
//UI面板显示
healthSlider.value = currentH
//播放受击音效
playerAudio.Play ();
// 没血了,死亡,调用死亡函数
if(currentHealth &= 0 && !isDead)
5.玩家死亡:
void Death ()
// 设置死亡状态为True,避免重复调用Dead函数(状态变量好处!!)
// 关闭未播放完的玩家攻击的特效
playerShooting.DisableEffects ();
//切换动画状态机到死亡
anim.SetTrigger ("Die");
// 切换音效为死亡音效并播放
playerAudio.clip = deathC
playerAudio.Play ();
// 禁用玩家移动和射击组件,不可再移动和攻击
playerMovement.enabled =
playerShooting.enabled =
这里的playerShooting.DisableEffects ()做的是这样的事情:禁用了LineRenderer组件、Light点光源组件
6.重新开始:(游戏结束重新加载场景)
这里做法和敌人死亡一样,都是在死亡动画中加了事件,调用方法;主角死亡动画播放完时候进入这个事件重新加载场景。
public void RestartLevel ()
SceneManager.LoadScene (0);

我要回帖

更多关于 电脑开机出现红屏英文 的文章

 

随机推荐