Unity修改Particles Render Material(Unity3D开发之二十三)
来源:互联网 发布:淘宝美的官方旗舰店 编辑:程序博客网 时间:2024/06/01 23:57
猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!
原文地址: http://blog.csdn.net/cocos2der/article/details/48372999
美术在制作粒子特效的时候需要能修改让粒子在某些时刻闪烁,看了下发现没有设置能实现,所以加个脚本给美术使用。
原理就是让美术能控制Render修改Image的Color
using UnityEngine;using System.Collections;public class ParticleBlink : MonoBehaviour { public float startBlinkTime = 0.0f; public float blinkFrameTime = 0.02f; public Color[] blinkColor = new Color[]{ new Color(255.0f, 255.0f, 255.0f, 0.0f), new Color(255.0f, 255.0f, 255.0f, 255.0f) }; private Material m_Material; private float m_BlinkLifeTime = 0.0f; private bool m_IsStartBlink = false; private int m_BlinkColorIndex = 0; // Use this for initialization void Start () { m_Material = GetComponent<Renderer>().material; m_BlinkLifeTime = 0; if (startBlinkTime > 0) { m_IsStartBlink = false; Invoke ("StartBlink", startBlinkTime); } else { m_IsStartBlink = true; } } // Update is called once per frame void Update () { if (m_IsStartBlink) { UpdateColor (); } } void UpdateColor() { if (blinkColor == null || blinkColor.Length <= 0) { return; } m_BlinkLifeTime += Time.deltaTime; if (m_BlinkLifeTime >= blinkFrameTime) { m_BlinkLifeTime = 0; // Render Material使用不同的Shader,这里的Color变量名需要对应修改 m_Material.SetColor ("_Color", blinkColor[m_BlinkColorIndex]); m_BlinkColorIndex += 1; if (m_BlinkColorIndex >= blinkColor.Length) { m_BlinkColorIndex = 0; } } } void StartBlink() { m_IsStartBlink = true; }}
- Start Blink Time:开始切换Color的时间
- Blink Frame Time:每一个Color保持的时间
- Blink Color:待切换的Color数组
1 0
- Unity修改Particles Render Material(Unity3D开发之二十三)
- Unity Singleton 单例类(Unity3D开发之二十)
- 自动生成材质Material(Unity3D开发之十九)
- unity3d之render
- unity3D游戏开发二之unity编辑器一
- unity3D游戏开发三之unity编辑器二
- unity3D游戏开发二之unity编辑器一
- unity3D游戏开发三之unity编辑器二
- unity3D游戏开发三之unity编辑器二
- unity3D游戏开发二之unity编辑器一
- unity3D游戏开发三之unity编辑器二
- unity3D游戏开发十三之GUI
- unity3D游戏开发十三之GUI
- unity3D游戏开发十三之GUI
- Unity3d 开发(二)Unity 制作可发布插件
- Unity3D内存泄漏Render的sharedMaterial和material
- Transform介绍(Unity3D开发之二)
- Unity3d之C#开发(二)
- jQuery CheckBox全选、反选
- ErLang 入门
- Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
- 编程实习
- MIME
- Unity修改Particles Render Material(Unity3D开发之二十三)
- 子类重写方法可见性设置
- Wincc使用树形菜单
- MySQL Study之--MySQL增加新的表空间(tablespace)
- Codeforces Round #318 Bear and Poker(数学题)
- linux 监控软件
- 详解spl_autoload_register()函数
- 安卓 socket简单使用
- sql优化