栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity3D 模型描边插件Outline Effect详细使用说明、C#功能扩展

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity3D 模型描边插件Outline Effect详细使用说明、C#功能扩展

该插件来自于Unity Asset Store 商店免费下载…请自行下载
偶的Unity版本是2019.4.12 ……^v ^

下面开始介绍它的具体使用方法: 1.首先在相机上添加该组件,参数暂且不动,后面自行调节


下面讲一下组件参数:
Line ThickNess:描边线条的厚度,也就是粗细
Line Intensity:描边线条的强度,也就是颜色的明暗程度
Fill Amout:颜色填充,就是会在描边内的模型上生成一种填充颜色
Line Color 0-2 :三种不同描边颜色
Additive Rendering:叠加渲染,默认勾选,测试没有什么区别
Backface Culling:隐面剔除,勾选后只描边看见的物体,取消勾选是所有物体描边,且不会被遮挡。
Fill Color:填充颜色调整 与Fill Amout 配合使用
Use Fill Color:勾选代表使用Fill Color的颜色,不勾选代表使用的是描边的颜色
Alpha Cutoff:透明度切断,最小值代表不透明,最大值代表透明
Flip Y :是描边效果翻转
其他参数基本不用调整

2.在需要描边的模型上添加OutLine组件 ^ v ^


下面我们讲一下该组件的参数:
Color : 还记得刚才添加在相机上的组件吗,Outline Effect 组件上有三种颜色可选择 Line Color 0-2,这个参数就代表你选择颜色的序号,默认是第一种。
Erase Renderer :删除渲染,勾选后就不显示该描边了

!!!!到这里基本已经完成模型的静态描边了,已经可以满足基本需求了。

下面讲一下动态描边、若隐若现效果

该插件自带动画脚本,在相机上挂载 OutLine Animation 组件

然后运行你会发现描边开始出现若隐若现的动画。到这里完成整个插件的功能使用。

然而,因为项目需求我想让这三种颜色都做有动画效果,下面我们修改一下插件源码,扩展一下功能
直接上修改好的源码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using cakeslice;

namespace cakeslice
{
    public class OutlineAnimation : MonoBehaviour
    {
        bool pingPong = false;
        /// 
        /// 这里是每种颜色做动画的序号
        /// 
        public int ColorAnimationNum;
        private Color c;
        void Update()
        {
            switch (ColorAnimationNum)
            {
                case 0 :
                    c = GetComponent().lineColor0;
                    break;
                case 1 :
                    c = GetComponent().lineColor1;
                    break;
                case 2 :
                    c = GetComponent().lineColor2;
                    break;
            }
            if(pingPong)
            {
                c.a += Time.deltaTime;

                if(c.a >= 1)
                    pingPong = false;
            }
            else
            {
                c.a -= Time.deltaTime;

                if(c.a <= 0)
                    pingPong = true;
            }
            c.a = Mathf.Clamp01(c.a);
            switch (ColorAnimationNum)
            {
                case 0:
                    GetComponent().lineColor0 = c;
                    break;
                case 1:
                    GetComponent().lineColor1 = c;
                    break;
                case 2:
                    GetComponent().lineColor2 = c;
                    break;
            }
            GetComponent().UpdateMaterialsPublicProperties();
        }
    }
}

最后只需要挂载在相机上三个该组件

直接运行,效果会让你满意~~~
上我自己的图!!

至于后面扩展到4中颜色甚至更多,欢迎评论交流探讨哦,小编就不做测试了,现在已经基本满足大部分人的需求了哦~

欢迎评论区讨论~ 点赞收藏加关注哦
学习交流~
哦吼^ .^

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号