How to create water like in Monument Valley ?

I have modelled a 3D mesh with irregular polygons in Maya and imported it into Unity. How do I create the wavey motion on the 3D mesh of the water ? A possible reference to it is as picture below.

Some thoughts watching the video:

Building the mesh so that every triangle has a unique set of vertices (no triangle shares vertices), and assigning the same normal to all three of the vertices on each triangle will give you the blocky look. When you construct the mesh, you will have six vertices per quad.

As mentioned above you can use sine calculations to undulate the waves. Here is one answer that is applied to a traditional mesh (i.e. shared vertices) that you might be able to use as a starting point:

The floating objects don’t interact with the mesh. The sense of waves and spray can be done by a particle system and some sort of dynamic decal.

Great code ! I translated it in C# for those who are interested :

using UnityEngine;
using System.Collections;

public class waves : MonoBehaviour {

	Vector3 waveSource1 = new Vector3 (2.0f, 0.0f, 2.0f);
	public float freq1 = 0.1f;
	public float amp1 = 0.01f;
	public float waveLength1 = 0.05f;
	Mesh mesh;
	Vector3[] vertices;

	// Use this for initialization
	void Start () {
		MeshFilter mf = GetComponent<MeshFilter>();
		if(mf == null)
		{
			Debug.Log("No mesh filter");
			return;
		}
		mesh = mf.mesh;
		vertices = mesh.vertices;
	}
	
	// Update is called once per frame
	void Update () {
		CalcWave();
	}

	void CalcWave()
	{
		for(int i = 0; i < vertices.Length; i++)
		{
			Vector3 v = vertices*;*
  •  	v.y = 0.0f;*
    
  •  	float dist = Vector3.Distance(v, waveSource1);*
    
  •  	dist = (dist % waveLength1) / waveLength1;*
    

_ v.y = amp1 * Mathf.Sin(Time.time * Mathf.PI * 2.0f * freq1_
_ + (Mathf.PI * 2.0f * dist));_
_ vertices = v;_
* }*
* mesh.vertices = vertices;*
* }*
}