这里在做的是一个player受伤闪烁的效果,用的是standard shader的自发光参数;

首先确定需要的变量:

[Header("Hurt Flash---")]public float hurtFlashSpeed = 1f;public float emissionFloor = 0.3f;public float emissionCeil = 1f;public float hurtMaxDuration = 1f;private float timeSinceLastHurt;private bool isInHurtState;

然后在OnEnable中获取材质,以及初始化:

// hurt flash isInHurtState = false;timeSinceLastHurt = 0;playerMat = GetComponent<Renderer>().material;playerMat.EnableKeyword("_EMISSION");playerMat.SetColor("_EmissionColor", Color.clear);

之后在update中,进行闪烁:

// hurt flash --------------------------------------------- hurt flash effectif (isInHurtState){timeSinceLastHurt += Time.deltaTime;if (timeSinceLastHurt > hurtMaxDuration){Debug.Log("Recover!");timeSinceLastHurt = 0;isInHurtState = false;// set to normal state//playerMat.EnableKeyword("_EMISSION");playerMat.SetColor("_EmissionColor", Color.clear);return;}float emission = emissionFloor + Mathf.PingPong(Time.time * hurtFlashSpeed, emissionCeil - emissionFloor);Color baseColor = Color.yellow;Color finalColor = baseColor * Mathf.LinearToGammaSpace(emission);  // better transition for human eyes//playerMat.EnableKeyword("_EMISSION");playerMat.SetColor("_EmissionColor", finalColor);}

注意:Mathf.LinearToGammaSpace更符合人眼观察的过度;

参考链接:

https://answers.unity.com/questions/914923/standard-shader-emission-control-via-script.html

https://docs.unity3d.com/Manual/MaterialsAccessingViaScript.html

unity改变材质参数相关推荐

  1. Unity 动态修改URP自带材质参数

    Unity 动态修改URP自带材质参数 前言 代码 Emission 参考连接 前言 修改此处默认参数 代码 Emission 启用自发光效果的代码是 material.EnableKeyword(& ...

  2. unity标准着色器入门-材质参数(一)

    材质参数 标准着色器展示了材质参数的列表.取决于你是否已经选择在金属工作流模式或者镜面工作流模式,这些参数会有轻微地变化.大部分参数在两种模式下是一样的,材质参数系列将覆盖两种模式的所有参数. 这些参 ...

  3. Unity在脚本中修改材质参数

    通过再脚本中修改材质参数,可以实现游戏中动态更新材质表现(如修改颜色),下面是一个在每一帧随机更改材质颜色的简单实例. 1.创建一个Standard Surface Shader,命名为TestSha ...

  4. unity 粒子系统面板参数释义

    **unity 粒子系统面板参数释义** 如何在Unity中实现粒子效果? 首先,右键点击 Hierarchy栏,选择effects->Particle System,这样你就新建了一个粒子系统 ...

  5. Unity Substance材质

    前言 Unity Substance材质是Unity3.4出现的新功能,也是程序化的材质.这篇说明是用来简单叙述Substance的用途,如何从substance material asset中制作新 ...

  6. Unity3D 5 官方教程:标准着色器之材质参数(一)

    材质参数 标准着色器展示了材质参数的列表.取决于你是否已经选择在金属工作流模式或者镜面工作流模式,这些参数会有轻微地变化.大部分参数在两种模式下是一样的,材质参数系列将覆盖两种模式的所有参数. 这些参 ...

  7. UE4之材质参数的使用

    在UE4中想要在代码中动态改变材质的某些参数,可通过创建动态材质实例来获取指定材质参数的材质,然后将该材质实例赋给模型,以改变贴图和粗糙度为例 1.在编辑器中新建材质,这里的材质为NewMateria ...

  8. [unity3d][通过代码]改变材质球颜色,动态改变材质球颜色,动态改变模型颜色

    unity通过代码改变材质球颜色 gitee地址:https://gitee.com/asiworld csdn博客地址:https://blog.csdn.net/JianShengShuaiest ...

  9. 使用Unity在材质球上实现绘画:详细解释每一行Shader代码!

    在Unity中实现在材质球上绘画可以使用下面这个步骤: 创建一个基础的材质球:在Unity的项目面板中创建一个新材质球,然后将其分配给您要绘画的对象. 创建一个Shader:为了实现在材质球上绘画,您 ...

最新文章

  1. 如何使用Azure ML Studio开启机器学习
  2. 线程并发与进程并发各有什么you_操作系统问答题总结
  3. bicg matlab,除了bicg之外,还可以使用哪些迭代子解算器来解决MATLAB中的牛顿方程?...
  4. Resource接口,及资源
  5. 笔记本高分屏字体模糊_笔记本win8系统设置1920*1080高分屏后字体模糊的解决方法...
  6. Ocelot统一权限验证
  7. 输入一个正整数n,计算s=1-1/3+1/5-1/7…前n项之和
  8. 19. Window focus() 方法
  9. Binwalk--多重文件查看利器
  10. 正态分布下贝叶斯决策的特例(一)
  11. 图文实例带你了解香农编码和霍夫曼编码
  12. 使php爬虫能够长期运行的一点总结
  13. 数字时代的保险创新与升级 | 创新场景50
  14. c语言程序设置存根,gmock可以用于存根C函数吗?
  15. Linux系统_通过命令新建MySQL数据库并导入sql文件
  16. IOS开发之 ---- 苹果系统代码汉字转拼音
  17. cc2640软件用c语言开发,CC2640R2FTI-RTOS 拿到 TI CC2640R2F 开发板 第三件事就是使用 TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯...
  18. 大学生信息安全(学习笔记一)
  19. PHPnow 是什么?
  20. nacos discovery client

热门文章

  1. 快手短视频怎么容易上热门?揭秘5个核心技巧!
  2. elecv2p和手机的圈x配合使用
  3. 计算机毕业设计(67)php小程序毕设作品之校园二手书交易小程序系统
  4. 博士论文致谢火了:“我从来不曾优秀过,也从来不曾放弃过!”
  5. c语言串口控制单片机,单片机C语言程序设计:甲机通过串口控制乙机 LED
  6. 浅谈百变的人像构图技巧
  7. 骆驼命名法——C++实现
  8. 电容笔和Apple pencil有什么区别?平板电脑第三方电容笔推荐
  9. win7 桌面 计算机无法打开,电脑进不了桌面怎么回事_电脑开机无法进入桌面的解决教程-win7之家...
  10. 计算机ppt主题穿越在哪,电脑自带ppt在哪