首页 > 其他分享 >脚本简单实现粒子系统的一些功能

脚本简单实现粒子系统的一些功能

时间:2023-12-30 17:22:07浏览次数:23  
标签:粒子系统 脚本 简单 void 曲线 time public ParticleSystem

明明有粒子系统了为什么还要用脚本来模拟呢?当然是存在一些特殊情况钻了粒子系统的死角,无法使用粒子,所以才会使用,例如UI

1,曲线类——通常最常见的情况就是需要通过曲线来控制某个值,达到类粒子系统的效果,下面是一段伪代码示例

public class Test : MonoBehaviour
{
    public AnimationCurve Curve;    //需要曲线
    public Material mat;    //需要传入参数的对象
    public float TimeFrequency = 1.0f;    //曲线时间的频率,用来缩短或加长时间频率

    private float time;

    void Start()
    {
        time = 0.0f;    //初始化曲线时间
    }

    void Update()
    {
        if(XX.enabled)    //这里的XX可以是你需要开关的物体的属性
        {
            time += Time.deltaTime * frequency;

            // time %= endtime;//loop如需循环
            
            float CurveValue = FlashCurve.Evaluate(time);    //得到曲线值

            mat.SetFloat("_XXX", CurveValue);    //赋予对象shader的参数_XXX
        }
        else
            time = .0f;     //下次重新启动时归零
    }

2,开关类——我平时会碰到需要无缝衔接两个或以上粒子系统的需求,同时又要保证随机,所以我会通过脚本函数OnEable来控制这些粒子系统的随机种子,保证一次开启的时候所有粒子显示的内容都是一样的,同时每一次开启种子又不一样

public class Test : MonoBehaviour
{
    public ParticleSystem ps1;
    public ParticleSystem ps2;
    public ParticleSystem ps3;
    .......

   void OnEnable()
    {
        ps1.randomSeed = ps2.randomSeed = ps3.randomSeed = (uint)Random.Range(-100000, 100000);
    }

 

标签:粒子系统,脚本,简单,void,曲线,time,public,ParticleSystem
From: https://www.cnblogs.com/teriffica/p/17936546.html

相关文章

  • 服务自动化管理脚本示例
    1、编写业务逻辑代码catnginx_auto.sh./etc/init.d/functionsfunctionStatus(){state=`systemctlstatusnginx|grep-wactive|awk'{print$2}'|xargs`if["$state"=="active"];thenaction"NginxisRunnin......
  • windows下编写lua脚本生成exe
    之前我有个想法,想在window下,远程执行服务器Linux下的某个脚本,我第一时间想到的是用jekenis,但感觉如果能对输入参数更灵活操作,会更好些,然后发现一个比较有意思的工具srlua ,它可以将lua编写的代码打包输出成exe文件。srlua目录内容如下:操作说明:glue.exesrlua.exetest.lu......
  • 基于Redis的简单漏桶算法
    下列代码是限制每秒10QPS的简单算法,需要修改频率请修改Duration.ofMillis(100)处publicclassLimitationManage{privatestaticfinalStringVALUE="A";@ResourceprivateRedissonClientredissonClient;publicBooleantryAcquire(Stringkey){......
  • dremio nessie数据源集成简单说明
    nessie是一个强大的支持类似git分之特性的apacheiceberg智能元数据存储,主要测试下基于nessiedremio元数据存储(catalog)集成参考架构环境准备docker-compose文件version:"3"services:minio:image:minio/minioports:-"90......
  • SharePoint 开发:如何通过脚本生成Site Collection的Permission Report
    Blog链接:https://blog.51cto.com/13969817越来越多的企业,为了数据安全或者审计的需求,需要管理员定期将SharePoint网站集权限生成报告,其中包括:·      网站集下所有子网站的权限设置·      网站集管理员列表·      应用于每个SharePoint对象的权限,如网站(子网......
  • 34 VIVADO自定义IP简单封装方法
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述XILINX作为FPGA全球老大,不仅仅是硬件技术实力,而且EDA软件也是非常优秀,XILINXVIVADO是业内最先进的开......
  • python学习笔记3(概述、开发工具、编写方法、print简单语法)
    上一节学习了环境准备、职业方向、执行方式三个方面学习本节内容:(一)概述1、了解python语言1989年荷兰人发明、面向对向、解释型设计哲学:优雅、明确、简单,“人生苦短,我用python”脱水语言,能够和其他语言编写的模块轻松联结,“脱水语言”2、版本发展历程发展历程比较简单,前两天我在网上......
  • 恒创科技:阻止指定IP地址进行网站访问的简单方式
    ​许多网站管理员,应该都会将恶意持续访问的IP请求视为比较头疼的一个问题。要解决这个不正常的访问请求,增强网站安全性,有些简单方式可用。在下面的文章中,介绍了使用.htaccess来禁止某些IP地址的简单方式。首先,您需要将要阻止的IP地址添加到.htaccess文件中。以下是详......
  • 【代码分享】10行代码写一个超级简单的进度条
    我们知道,Python使用rich或tqdm模块可以轻松创建进度条,那么如果我们自己写一个,需要几行代码呢?答案是4行。显示效果完整代码完整代码如下,核心代码也就4行#!/usr/bin/envpython#-*-coding:UTF-8-*-importtimedefprogress_bar(desc:str,index:int,total:int,b......
  • 【Linux】什么是shell脚本?shell变量分为哪几类?
    在Linux操作系统中,shell是一个非常重要的存在,它是一个解释器,可以保护系统内核不被篡改的软件,一般所使用的系统中默认启动的shell是bash。那么什么是shell?shell变量分为哪几类?具体内容请看下文:什么是shell?Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shel......