[Unity实战]制作卷动的波浪

参考链接: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;
	}
}
时间: 2025-01-04 08:06:14

[Unity实战]制作卷动的波浪的相关文章

《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持

<Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店均开始销售: 京东:http://item.jd.com/11584534.html 亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU 当当:ht

PS制作gif动图以及背景透明与消除残影

摘要: 用Photoshop制作gif动画的要点:在窗口菜单中找到“时间轴”选中打开时间轴,单击一帧,设置该帧显示持续时间在图层里将该帧要显示的图层显示,并将不该显示的层隐藏,新建一帧,接下来就是重复劳动了.最后在文件菜单里找到存储为Web所用的格式,设置一下存储选项即可. 透明背景制作方法有二:一是删除每层的背景,这种方法应该算是通用的方法.二是在存储时在颜色表中选择设为透明色的颜色,在颜色表下方有个将选中的颜色映射为透明色的按钮,点一下就行了,这个方法应该是适合背景色是纯色,并且是主体没有的

NGUI 学习笔记实战——制作商城

Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我们还是先看眼前吧. 一.实现思想 商城的功能是很多游戏都拥有的,按下一个界面按钮,弹出一个窗体. 然后是商城中的商品可以拖动,既可以用手,也可以用滑条等等,至于点击购买就不单单是UI层的事了.等到实现NDate的时候再进行讨论. 二.实现背景 1.NGUI->Open->Prefab tool bar ,拖一个black widget进去 2.之后布局如下,这些应该没什么难度,弄好锚点,d

tmux/screen里面如何用鼠标滚轮来卷动窗口内容

tmux里面用鼠标滚轮来卷动窗口内容在 tmux里面,因为每个窗口(tmux window)的历史内容已经被tmux接管了,所以原来console/terminal提供的Shift+PgUp/PgDn所显示的内容并不是当前窗口的历史内容,所以要用C-b [ 进入copy-mode,然后才能用PgUp/PgDn/光标/Ctrl-S等键在copy-mode中移动.如果要启用鼠标滚轮来卷动窗口内容的话,可以按C-b :然后输入    setw mode-mouse on这就可以了.如果要对所有窗口开启

修复 XE8 Win 平台 Firemonkey Memo 卷动后会重叠的问题

问题:XE8 Firemonkey 在 Windows 平台 Memo 卷动时,在第 1 , 2 行会产生重叠现象. 修改前: 修改后: 适用:XE8 for Windows 平台 修复方法: 请将源码 FMX.Memo.Style.pas 复制到自己的工程目录里,再进行修改. 找到 TStyledMemo.TLines.RenderLayouts; 函数,修改如下: procedure TStyledMemo.TLines.RenderLayouts; ..... 省略 ...... if L

Unity中制作游戏的快照游戏支持玩家拍快照

Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家"拍快照",也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游戏视图,并将其显示在视图其它区域的方法.具体的操作步骤如下本文选自Unity游戏开发技巧集锦: (1)在Project视图里,创建一个C#脚本文件,并命名为ScreenTexture.在此脚本中编写如下的代码: 01     using UnityEngine; 02     using

jQuery 的 slideUp 和 slideDown 下拉卷动问题

最初公司前端写了个导航菜单,鼠标停留时弹出下拉菜单,移走鼠标时收缩下拉菜单,可就是这个简单的功能,T!!M!!D!!你屮它屮快了的时候,下拉菜单就不完整了,就像~~~包茎?? 本来官方提供的方法,会出现这种问题:如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行, 相当不美观 (演示页面). 演示页面中有一个按钮, 请用鼠标迅速地来回划过... 但是我们的会包茎,对,没错. $(this).find("a").stop().slideUp(); 因

怎么制作GIF动图,制作GIF动图攻略

网络聊天中,使用GIF动图已经成为一种常态.很多人都习惯了使用GIF动图来表达自己的心情,那么你们有想过你们手中的GIF动图是怎么制作的吗?我想肯定都是想过的.其实制作GIF并不困难,有款迅捷GIF制作工具请添加链接描述便能够轻松驾驭了.下面小编就来分享下制作GIF动图的方法,教大家如何制作GIF动图. 迅捷GIF制作工具http://www.xunjieshipin.com/download-gifmaker 一.现在很流行将电视剧或者综艺.动漫等等视频上面的某一搞笑的画面截取下来制作成动态表

[.NET Concept]善用AutoScroll达到用滚动卷动显示内容的效果

善用AutoScroll达到用滚动卷动显示内容的效果 时常会在讨论区碰到有人提问内容过长想要增加滚动效果这类的问题,通常多半这类的提问者都会陷入如何使用VScrollBar或是HScrollBar的迷思.事实上要达到这效果其实可以不需要使用这两个控件,只需善用容器类的AutoScroll属性,经过设定属性的动作,不须撰写半行程序即可达成. 举个例子来说,假设今天我要显示一张很大的图片在表单上,我们可以依下列步骤设定: Step1.设定表单的AutoScroll属性为True Step2.加入Pi