一、c#脚本
csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bling : MonoBehaviour
{
public Texture img;
public float speed;
public static bool changeWhite = false;
private float alpha=0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnGUI()
{
if (changeWhite) {
alpha += speed * Time.deltaTime;
if (alpha>=1) {
changeWhite = false;
}
}else{
if (alpha>0) {
alpha -= speed * Time.deltaTime;
}
}
GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, alpha);
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),img);
}
public static void blinking()
{
changeWhite = true;
}
}
二、在角色脚本触发物体脚本中引用闪烁脚本
csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Fly : MonoBehaviour
{
//获取小鸟(刚体)
private Rigidbody2D bird;
//速度
public float speed;
//跳跃
public float jump;
//是否存活
public static bool life = true;
//获取动画器
private Animator animator;
// Start is called before the first frame update
void Start()
{
bird = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
//村换的时候才能运动
if (life) {
bird.velocity = new Vector2(speed, bird.velocity.y);
//鼠标点击给目标一个纵向速度
if (Input.GetMouseButtonDown(0))
{
bird.velocity = new Vector2(bird.velocity.x, jump);
}
}
}
//如果碰撞器撞到了某个物体
private void OnCollisionEnter2D(Collision2D collision)
{
if (life==true) {
Bling.blinking();
}
life = false;
animator.SetBool("life", false);
}
}
在淡入淡出引用闪烁脚本
