【智商捉急】这个游戏的水面是如何实现的?
unity3d吧
全部回复
仅看楼主
level 11
只待苍霞 楼主
这个游戏的画面效果在ipad上真的非常稀有,尤其是水面真的非常棒!水面的顶点位移是如何实现的呢?一波一波的,很逼真!
2013年10月17日 07点10分 1
level 12
粒子效果
2013年10月17日 08点10分 2
言简意赅,一针见血
2013年10月17日 08点10分
我说的不是水花..
2013年10月17日 09点10分
我所的是水面,水体,你看一下整个水面
2013年10月17日 09点10分
动态睡眠,一波一波的,不知那是如何实现的
2013年10月17日 09点10分
level 8
uv动画也可以吧
2013年10月17日 09点10分 3
UV动画?如何实现,能详细说说原理吗?unity能做到吗
2013年10月17日 15点10分
level 8
可以说说 Substance 如何压缩图片吗?可以用在手机游戏上吗?
(这个水呀,都没有重力的,斜坡上的水都不流动,而且波浪比海水还大。有一个卡通风格的游戏也有这样的水)
2013年10月17日 09点10分 4
Substance我自己还没有开始研究呢.
2013年10月17日 15点10分
level 10
移动法线贴图或者用骨骼动画……=_=
2013年10月17日 09点10分 5
骨骼动画...好吧你赢了
2013年10月17日 15点10分
level 11
游戏名字[滑稽]
2013年10月17日 18点10分 6
Riptide GP2
2013年10月18日 05点10分
回复@只待苍霞 :谢谢。[吐舌]
2013年10月18日 08点10分
level 11
var scale = 10.0;
var speed = 1.0;
private var baseHeight : Vector3[];
var useOriginal : boolean = false;
function Update () {
var mesh : Mesh = GetComponent(MeshFilter).mesh;
if (baseHeight == null)
baseHeight = mesh.vertices;
// gameObject.Destroy(GetComponent(MeshCollider));
var vertices = new Vector3[baseHeight.Length];
for (var i=0;i<vertices.Length;i++)
{
var vertex = baseHeight[i];
if (useOriginal) {
vertex.y += Mathf.Sin(Time.time * speed+ baseHeight[i].x + baseHeight[i].y + baseHeight[i].z) * scale;
} else {
vertex.y += Mathf.Sin(Time.time * speed+ baseHeight[i].x + baseHeight[i].y) * (scale*.5) + Mathf.Sin(Time.time * speed+ baseHeight[i].z + baseHeight[i].y) * (scale*.5);
}
vertices[i] = vertex;
}
mesh.vertices = vertices;
mesh.RecalculateNormals();
gameObject.Destroy(GetComponent(MeshCollider));
var collider : MeshCollider = GetComponent(MeshCollider);
if (collider == null) {
collider = gameObject.AddComponent(MeshCollider);
collider.isTrigger = true;
}
}
JS行不
2013年10月18日 01点10分 7
放到Plane上就行
2013年10月18日 01点10分
回复 jialovedong200 :牛爆了,学习了!
2013年10月18日 03点10分
果然是高手,原本我想过这个思路,但是我自己觉得这样做实在太消耗性能,后来我把你写好的代码弄到了plane上,打开Profiler看了看,性能消耗真的没有想象中的那么高,完全可行.谢谢你大神.换做是我够呛能写出来这么复杂的代码.
2013年10月18日 05点10分
回复 jialovedong200 :我测出出来一个非常诡异的现象,你把你的代码的第三行 private var baseHeight : Vector3[]; 中的private去掉,然后运行游戏,会报错,请问这是为什么???我真的非常难以理解
2013年10月18日 05点10分
level 3
楼上一记洛阳铲。
话说mesh没有调用RecalculateBounds(),仅用RecalculateNormals()不是只计算法线没计算顶点咩~相当于用法图;
2015年04月16日 08点04分 8
level 5
unity5自带的水就有了,5里面有个water4的就是这种效果
2015年04月16日 09点04分 9
level 9
我也来一铲
2016年11月06日 05点11分 12
level 9
用趋近于无限个的微笑立方体组成的水
2016年11月06日 05点11分 13
level 3
shader实现的吧。参考github的unity community ocean。
2016年11月06日 09点11分 14
level 8
哈哈哈,远古坟[阴险]
2016年11月09日 04点11分 15
1