Unity修改Particles Render Material(Unity3D开发之二十三)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,,谢谢! 原文地址:

美术在制作粒子特效的时候需要能修改让粒子在某些时刻闪烁,看了下发现没有设置能实现,所以加个脚本给美术使用。

原理就是让美术能控制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 initializationvoid 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 framevoid 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;}}

会让你的心态更平和更坦然,也会让你心无旁骛,更会让你的心灵得到解脱和抚慰。

Unity修改Particles Render Material(Unity3D开发之二十三)

相关文章:

你感兴趣的文章:

标签云: