首页 / UNITY / [Unity实战]制作卷动的波浪
[Unity实战]制作卷动的波浪
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Unity实战]制作卷动的波浪,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1154字,纯文字阅读大概需要2分钟。
内容图文
![[Unity实战]制作卷动的波浪](/upload/InfoBanner/zyjiaocheng/1106/1b57b5d2deb046538bd2eb3d90cef565.jpg)
参考链接:http://tieba.baidu.com/p/2655013091#40457365538l
效果图:
这里,我们制作的波浪是通过改变mesh上的顶点来实现的。更准确的说,是改变mesh上顶点的y值,从而形成一种高度变化的效果。
1.通过观察,我们发现每个顶点的y值变化的情况都不一样,因此,很容易想到将顶点的y值与该顶点的x,z值关联起来。
2.通过观察,我们发现第一图的波浪数较少,第二图的波浪数较多,波浪数较小说明各顶点的y值差异较大。可以通过“放大”x,z值来增加不同顶点之间的差异。
using UnityEngine; using System.Collections; public class WaterWave : MonoBehaviour { public float scale = 0.5f; public float speed = 1f; public bool isMultiply = false;//若为true则波浪数变多 private Mesh mesh; private Vector3[] baseVertex; private Vector3[] nowVertex; // Use this for initialization void Start () { mesh = GetComponent<MeshFilter>().mesh; baseVertex = mesh.vertices; nowVertex = mesh.vertices; } // Update is called once per frame void Update () { for (int i = 0; i < baseVertex.Length; i++) { nowVertex[i] = baseVertex[i]; if (isMultiply) { nowVertex[i].y += Mathf.Sin(Time.time * speed + baseVertex[i].x + baseVertex[i].z) * scale; } else { nowVertex[i].y += Mathf.Sin(Time.time * speed + baseVertex[i].x) * scale + Mathf.Sin(Time.time * speed + baseVertex[i].z) * scale; } } mesh.vertices = nowVertex; } }
原文:http://blog.csdn.net/lyh916/article/details/45098197
内容总结
以上是互联网集市为您收集整理的[Unity实战]制作卷动的波浪全部内容,希望文章能够帮你解决[Unity实战]制作卷动的波浪所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。