dnotes

Unity3d粒子特效:制作火焰效果

时光毁灭记忆、已成空白 提交于 2020-11-01 06:25:16
效果 分析 真实的火焰效果,通常包括:火、火光、火星等组成部分,火焰燃烧的同时会对周围环境进行烘焙。 1、针对火焰组成部分,我们可以分别创建粒子系统组件实现 2、火焰燃烧对周围环境的烘焙效果,我们可以通过灯光实现,如点光源。 那么,我们通过粒子系统 + 光源实现火焰效果,在Unity3d场景中结构应如下图所示: 1、Fire 火,火焰的主体部分,因燃烧产生的剧烈化学反应,灵动多变; 2、Flash 火光,即火焰的闪光效果,忽明忽暗; 3、Spark 火星,因高温而升起的燃烧碎屑,行踪飘忽,颜色渐变,效果随机; 4、Point Light 光亮,火焰燃烧对周围环境的烘焙效果; 实现 1、新建工程 1.1、新建3D工程 1.2、导入资源素材(后面会提供素材包) 1、天空盒1个 2、多帧火焰形态图1个 3、地面图1个 2、场景搭建 2.1、新建场景FireScene 2.2、设置场景天空盒,选择BlueSkybox 原因:系统默认天空盒太亮,火焰效果对比不明显,视觉冲击力差。 设置天空盒方式: Window --> lighting -->setting 2.3、创建平面(地面) 用于放置火焰,并作为被烘焙对象(即火焰的光照能显示在该物体上) 1、创建Quad,改名Ground 2、置为原点位置,即坐标(0,0,0) 2.4、调整摄像机视角 1 、Scene场景中调整为合适视角

C#中子类对基类方法的继承、重写和隐藏

安稳与你 提交于 2020-08-08 10:41:37
提起子类、基类和方法继承这些概念,肯定大家都非常熟悉。毕竟,作为一门支持OOP的语言,掌握子类、基类是学习C#的基础。不过,这些概念虽然简单,但是也有一些初学者可能会遇到的坑,我们一起看看吧。 子类继承基类非私有方法 首先我们看最简单的一种,子类继承自基类,但子类对继承的方法没有任何改动 class Person { public void Greeting ( ) { Console.WriteLine( "Hello, I am Person" ); } } class Employee : Person { } class Program { static void Main ( string [] args ) { Person p = new Employee(); p.Greeting(); } } 在这个例子中,作为子类的Employee自动继承了基类的 Greeting 方法,当在子类实例调用这个方法的时候,实际上调用的是基类的方法。这个例子非常简单,毋庸多言。 子类覆盖基类方法 接着是最常见的情况,子类覆盖基类的方法,典型的例子如下 class Person { public virtual void Greeting ( ) { Console.WriteLine( "Hello, I am Person" ); } } class Employee :