查看: 1847|回复: 0
打印 上一主题 下一主题

[教程] Unity3D 角色死亡灰屏特效实现

[复制链接]

436

主题

17

听众

4683

积分

中级设计师

Rank: 5Rank: 5

纳金币
1384
精华
9

最佳新人 活跃会员 热心会员 灌水之王 突出贡献 周年庆

跳转到指定楼层
楼主
发表于 2017-2-13 08:47:38 |只看该作者 |倒序浏览
    今天为大家分享一下,如何简单实现一个游戏中角色死亡后,针对整个游戏屏幕实现灰屏的特效,诚然这次是原用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

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-3 03:17 , Processed in 0.073447 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部