纳金网

标题: Unity3D 角色死亡灰屏特效实现 [打印本页]

作者: 710960383    时间: 2017-2-13 08:47
标题: Unity3D 角色死亡灰屏特效实现
    今天为大家分享一下,如何简单实现一个游戏中角色死亡后,针对整个游戏屏幕实现灰屏的特效,诚然这次是原用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






欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5