今天为大家分享一下,如何简单实现一个游戏中角色死亡后,针对整个游戏屏幕实现灰屏的特效,诚然这次是原用unity内置的插件来快速实现这种效果的。
1.第一步,首先新建一个
unity3d项目,导入Effects插件(Assets>Import Package>Effects ,灰屏效果有用到噢),格外还导入Demo用到的角色资源[Spider Green插件];
2.第二步,需要在场景中创建一个摄像机,并且摄像机附加ColorCorrectionCurves.cs 组件;
3.第三步,把Spider Green中的SPIDER.Prefab拖到场景中,并且新加组件GameOver.cs;
GameOver.cs代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.ImageEffects;
public class GameOver : MonoBehaviour {
private Animation _curAnim;
private ColorCorrectionCurves _colorCor;
// Use this for initialization
void Start () {
if (_curAnim == null)
_curAnim = GetComponent<Animation> ();
if (_colorCor == null)
_colorCor = FindObjectOfType<ColorCorrectionCurves> ();
}
void OnGUI()
{
if (GUI.Button (new Rect (50, 100, 100, 50), "怪物重生")) {
SetAnimationPlay ("Attack",WrapMode.Loop);
SetColorCorrectionCurvesSaturation (1);
}
if (GUI.Button (new Rect (50, 200, 100, 50), "杀死怪物")) {
SetAnimationPlay ("Death",WrapMode.Once);
SetColorCorrectionCurvesSaturation (0);
}
}
/// <summary>
/// 设定当前播放的动画
/// </summary>
/// <param name="animName">Animation name.</param>
/// <param name="wrapL">Wrap l.</param>
void SetAnimationPlay(string animName,WrapMode wrapL)
{
if (_curAnim) {
_curAnim.Play (animName);
_curAnim.wrapMode = wrapL;
}
}
/// <summary>
/// 设定当前摄像机的颜色度
/// </summary>
/// <param name="duration">Duration.</param>
void SetColorCorrectionCurvesSaturation(int duration)
{
if (_colorCor)
_colorCor.saturation = duration;
}
}
4.最后,直接运行项目看效果啦!
原文链接:http://www.manew.com/thread-100203-1-1.html