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

猴子原创,欢迎转载。转载请注明: 转载自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;
    }
}

  1. Start Blink Time:开始切换Color的时间
  2. Blink Frame Time:每一个Color保持的时间
  3. Blink Color:待切换的Color数组

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 06:33:15

Unity修改Particles Render Material(Unity3D开发之二十三)的相关文章

QT开发(二十三)——软件开发流程

QT开发(二十三)--软件开发流程 一.软件开发流程简介 软件开发流程是通过一系列步骤保证软件产品的顺利完成,是软件产品在生命周期内的管理学. 软件开发流程的本质是软件开发流程与具体技术无关,是开发团队必须遵守开的规则. 二.常见软件开发流程模型 常见的软件开发流程模型包括即兴模型.瀑布模型.增量模型.螺旋模型.敏捷模型. 1.即兴模型 即兴模型的特点: A.与用户交流后立即进行开发 B.没有需求分析和需求发掘过程 C.没有整体设计和规划 D.没有软件文档,可维护性差 2.瀑布模型 瀑布模型的特

使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 本文主要讲述了如何使用Multiplayer Networking开发多人游戏,文中实例.代码来源于Unity官方教程. 原文:INTRODUCTION TO A SIMPLE MULTIPLAYER EXAMPLE Networking Overview The High Level API N

Unity Singleton 单例类(Unity3D开发之二十)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/47335197 今天看到群里有朋友问unity单例的最佳实现方式,下面我我经常用的.贴出来供大家参考. 一.添加单例模板类 using UnityEngine; public class Singleton<T> : MonoBehaviour where T : MonoBehaviour { private

使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Networking做一个简单的多人游戏例子-3/3 7. 在网络中控制Player移动 上一篇中,玩家操

Auto Create Editable Copy Font(Unity3D开发之二十二)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/48318879 Unity中咱们经常对字体做Create Editable Copy,虽然已经非常方便了,但是实际使用场景中,有时候会有不方便的地方. 我们经常对同一个字体做不同字体大小的Copy,这个时候,每次都去修改font的属性,非常之蛋疼. 本地化翻译文件导出的文字需要手工加到字体属性中,如果同一个字体还

Unity3d开发(二十) OnMouse_产生GC 的问题修复

最近发现一个特别奇怪的现象,在游戏运行时,每帧 OnMove_产生GC ,大小是0.6KB的整数倍.具体Profiler效果如下图所示: 解决方法 经过比照发现这个问题与摄像机相关.由于是代码创建的摄像机组件,因此并未挂载GUILayer组件.解决这个问题的方法就是使用AddComponet<Camera>()的同时,调用AddComponent<GUILayout>().在包含Camera的节点上添加这个组件即可解决 OnMove_产生GC . 原理 由于没有Unity3d的源码

Remove Google Play Games libraries on iOS (Unity3D开发之二十一)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/48313653 最近游戏刚接完Google Play Game,结果发现加入Google Play Game Unity Plugins 之后,导出Xcode工程之后,会默认加入Google Play的iOS版. 然而,我们并不希望iOS版加入Google Play的模块.咱们来看看如何移除Google Play

Android开发(二十三)——Application

参考: [1] Android中Application类用法.http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html

unity3d开发实战《啪啪三国》技术详解!

去年11月,上海火溶网络CEO王伟峰以其第一款3d手游产品<啪啪三国>为例,着重讲解了unity3D手机网游开发的经验,其中涉及了团队组成.人员要求.常见的unity3d开发遇到的坑及解决办法.在演讲中,王伟峰也贡献了<啪啪三国>开发过程中总结的各种经验,从优化.插件库.服务器架构.SDK等很多细节进行了讲解.值得一说的是,王伟峰现场演讲十分幽默,冷笑话段子不断爆出,让在场观众在连续的笑声中听完这个特别的技术演讲. <ignore_js_op> 以下是王伟峰现场演讲实录