unity 水流管中水流动画制作(不懂程序),求具体制作方法

& & 最近有关于水的表现要求。UNITY自带的水效果在资源上存在消耗比较高的情况。根据项目的具体要求需要制作一种简单的水效果。
完成后和美术同志碰了一下感觉效果比较满意 ,要比简单的UV动画效果 好不少。抽时间发源码和大家分享一下。希望大家多多指正。
代码如下:
struct Input {
float2 uv_MainT
float2 uv_NoiseT
void vert(inout appdata_full v,Input o)
UNITY_INITIALIZE_OUTPUT(Input o);
o.vertcolor=v.
void surf(Input IN, inout SurfaceOutput o) {
float2 speed=float2(xscroll,yscroll)*_Time.x+IN.uv_NoiseT
fixed4 noise1 = tex2D(_NoiseTex,speed);
fixed4 noise2 = tex2D(_NoiseTex,speed);
half4 c=tex2D(_MainTex,float2(noise1,x+noise2,y,noise1.y+noise2.x));
o.Albedo = c.rgb * N.vertex.color.rgb + _MainColor.
o.Alpha = d.a*IN.vertex.color.a*_MainColor.a;
其中核心的部分就是使用noisetex贴图对maintex进行UV采样从而实现模拟的流水折射扭曲效果;
UNITY_INITIALIZE_OUTPUT(type,name)这个函数的作用就是吧name类型 转成type类型;
本文已收录于以下专栏:
相关文章推荐
用Unity实现的 “海岛奇兵” 水特效, 效果比较粗糙,待完善
刚刚开始学习shader,照葫芦画瓢的完成第一个shader 先贴出来 小记
Shader "Custom/guandong" {
Properties{
_MainTint("Diffuse...
1、创建一个Shader和一个材质
2、给一个GameObject添加一个Mesh Filter组件和一个Mesh Renderer组件
3、给Mesh Filter拖拽一个简单的网格(我用...
版本:unity 5.4.1
语言:Unity Shader
最近花了一个月的时间把《Unity Shader 入门精要》看完了,没怎么写博文,因为写得太好了,看得有点废寝忘食了...
unity3d 水体water effect的制作, 本次主要对水体的波动进行研究,sin,cos,Gerstner波等。...
最近在打黑魂,被虐得死去活来,每次都是想砸电脑的节奏,然而还是忍不住想玩,唉。在被虐了千百遍之后,我发现写代码比玩游戏爽....下面步入正题,黑魂的传送技能之前会播放一个帅帅的屏幕特效-屏幕...
由于Unity自带的水用起来实在不方便,而且效果一般,没办法只好自己重新写了一个,最终出来的效果感觉还想,如果觉得效果不好请勿喷。先上图,预览一下效果!Shader:Shader "Util's Sh...
unity3D更多资源教程免费下载,群 邀请码:10026.(有问题找管理员)
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
#你好Unity3D#Unity制作Loading详解(来自我的长微博)
#你好Unity3D#Unity制作Loading详解(来自我的长微博)
围观32957次
编辑日期: 字体:
游戏中的Loading现在都做得很漂亮,但是归根究底就两种类型,静态Loading和动态Loading。
静态Loading可能就是一张背景图。而动态的Loading就是在读取的同时有一个东西在“转圈”。
1.静态Loading:
优点:读取场景使用同步的方法就可以,因为是同步方法所以读取的速度是最快的,也不用更新界面,因为同步执行方法的时候程序在等待读取结束。
执行Application.LoadLevel(“name”);同步方法来加载你的场景。
缺点:Loading的时候如果界面不动,那么用户体验肯定不佳,因为读取的时间如果过长用户就会误以为手机卡死了。其实我个人还是觉得最好用动态加载Loading的方式,虽然读取的时间没有静态Loading快,但是用户体验很好。
2.动态Loading:
优点:读取的时候界面可以有动画,甚至还可以做一些小游戏。场景可以异步加载,那么脚本上的Update就会每一帧都执行,所以就能做一些动态的东西。
缺点:没有缺点,嘿嘿,建议大家一定要使用动态loading、
执行 AsyncOperation async = Application.LoadLevelAsync(“MyBigLevel”); 方法就可以异步加载场景。
常见问题:
一. 游戏是否可以只做一个场景?
可以,而且我也看见过一些游戏只做一个场景,因为你所有的东西都可以动态加载来完成、比如场景模型、人物模型、场景烘培贴图等等。
执行 GameObject.Instantiate(“prefabName”) 方法来读取。
但是游戏只做一个场景有两个致命的问题。
1.Loading界面没动画或者动画很难看
因为有个办法可以有动画,比如把你的读取场景的方法拆成3个,用协同任务来依次执行这三个方法,因为协同任务没执行一个后,会调用一下所有脚本的Update,所以按照这个逻辑你界面的动画就可以动3下。。如果你真想这么干?我劝你还是早点放弃。因为你的同步方法不会拆分的那么均匀的,就算做出来了动画动的也会非常难看!!
2.内存的卸载完全需要你自己手工维护
Unity对读取的内存有一个缓存池的概念,如果你采用它的标准方式来切换场景,那么Unity会在切换场景的时候自动帮你把没有被引用的资源对象从内存中卸载掉。但是你现在是一个场景了,那么卸载内存的东西就要万全自己手工维护了。。
二.异步加载场景为什么最后会卡一下
这个罪魁祸首就是Unity不支持多线程。游戏加载被你分成了两部分、第一部分是加载场景,你可以把场景上已知的模型都保存在Scene上面,此时你在调用异步加载场景的时候会进度动画会非常的均匀。加载场景你可以理解成Unity自己在多线程加载,有可能他的后台也是同步,但是我们看不到源码从它的效果上来看它加载场景是多线程。
但是问题出在了第二步上,因为你需要加载未知模型,举个例子,当你进副本加载场景的时候,场景可不知道你身上带了那几个英雄。所以场景加载完毕后你还需要去加载的这些模型。无论你是用协同任务也好,还是在方法里面执行也好,因为Unity没有多线程,一般为了更快的能进游戏这里的加载都会选择同步加载,所以你会发现大部分游戏进度条加载到最后都会卡一下。
为了解决这个问题,在加载的时候一定要避免加载场景后自己写的哪个同步加载的方法,尽量让他执行更少的加载。
1.尽可能让场景多包含一些资源,我看有些人为了节省资源,打开场景以后动态的加载一些地面上的小物件。我觉得这种情况多做几个场景就可以了,不用在一个同步方法里出力过多的东西。
2.人物模型可以考虑预加载,也可以考虑常驻内存。。因为你的人物模型可能不止在战斗中才会被使用。
三、减少Loading的次数
尤其是战斗场景,重复挑战同一关卡的时候,因为场景没有变化,尽量就不要在去读取场景。所以你可以写一个加载的界面,根据当前场景名 和需要加载的场景名 如果场景相同 就不去加载, 如果场景不同再去加载,这样其实能省很多时间。
12345678910111213
//参数1 加载场景之前做的事情
//参数2 新加载的场景名
//参数3 加载场景后要做的事情
public void LoadScene(System.Action before, string sceneName, System.Action end)
if(Application.loadedLevelName != sceneName)
{&&&&&&&&&& //异步加载场景, 加载完毕后 调用 end方法。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制unity3d水特效制作下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效unity3d水特效制作扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营- 请使用者仔细阅读优酷、、、Copyright(C)2017 优酷
版权所有不良信息举报电话:后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 21455|回复: 117
[动画特效]
Unity特效教程
Unity水特效教程 Unity喷泉特效教程
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
& && && & 这回做的是一个关于喷泉的效果,非常的简单.先看下效果。我尝试了很多种不同的方法去制作它,最后的结构就是这样。
建议大家在制作效果时候去多找些资料 ,参考图,多去分析它,才有可能制作出理想的效果。
& && &如上图所见这个效果的组成部分是水柱,水花,水雾三部分组成。在制作过程中水柱和水花我是做了两个,我觉得这更能做出好的效果,
当然这样也使它的字节变的更大。
& & 1:水柱的制作
我是做了两个水柱,一个主水柱和一个次水柱看下效果图,左边比较矮的是次水柱,右边较高的是主水柱,两个一起结合能更好的表现水柱往上喷的感觉。
两个水柱的运动都是一样的,都是从下往上喷射出来,这里我没有给它们加重力,因为由于贴图的原因喷射坠落的效果很不好。
喷射的水花是分开来做的,接下来看看两个水柱的参数吧。
1次水柱参数
这个由于是次水柱所以不用做的太厚实,只要薄薄的一层能让人感觉到水柱边上有水花的感觉就行
主水柱和次水柱的的参数大致一样,只是贴图不一样还有一些参数做了简单的修改,所以大家只要复制一个就行 ,在这个基础上修改会提高效率
主水柱和次水柱的的参数大致一样,只是贴图不一样还有一些参数做了简单的修改,所以大家只要复制一个就行
2:水花的制作
& && && &&&水花我也是做了两个,一个较大的水花一个较小的水花,两个看起来会更丰富一点,水花我是加了重力的,喷到一定的高度就会落下去消失
,无论是制作水柱也好还是制作水花也好,都是配合参数的生命值,速度,重力,旋转去调节的,接下来看下水花的效果和参数。
较小水花的参数
较大水花的参数
大家在制作它的时候不要一直去抄袭这个参数,要不断去尝试各种参数的效果,这样大家才能得到更多的东西和效果。
值得注意的是,这几个部分的贴图是很重要的,不 同的贴图效果差异太大,我用的贴图是自己做的,大家可以根据
自己不同的需求去制作自己理想的贴图效果
3:水雾的制作
& && && && &水雾的制作是非常简单的,简单的调节下参数就OK了,你可以选择添加重力或者不添加,我是没有添加的
,来看下水雾的效果和参数吧
水雾也是薄薄的一层慢慢升起扩散的感觉。
好了到这里就全部结束了,你应该已经做出了和我差不多的效果,大家可以去尝试不同的参数带来的效果,去尝试不同的贴图,好的贴图能带来更好的效果。
效果文件会稍后附上
22:57 上传
点击文件名下载附件
售价: 5 张CG券 &[]
如何让别人关注你?
Unity特效 群
本帖最后由 花生红枣大杏 于
11:26 编辑
Unity特效 群&&&&
本楼回复(<span id="dp_count_)
如何让别人关注你?
如果下载的附件可用,支持一个。
本楼回复(<span id="dp_count_)
如何让别人关注你?
帮顶,支持一个。
本楼回复(<span id="dp_count_)
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
{:2_30:}看看
本楼回复(<span id="dp_count_)
如何让别人关注你?
新人进来学习一下...
本楼回复(<span id="dp_count_)
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
本楼回复(<span id="dp_count_)
如何让别人关注你?
Powered by}

我要回帖

更多关于 unity3d水流 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信