void Start()
        {
            meshFilter   = GetComponent <MeshFilter>();
            meshRenderer = GetComponent <MeshRenderer>();

            if (meshFilter == null)
            {
                meshFilter = gameObject.AddComponent <MeshFilter>();
            }

            if (meshRenderer == null)
            {
                meshRenderer = gameObject.AddComponent <MeshRenderer>();
            }

            meshFilter.sharedMesh       = CreateWaterMesh();
            meshRenderer.sharedMaterial = waterMaterial;

            vertecies       = waterMesh.vertices;
            waveEquationCom = new WaveEquationComponent();
            waveEquationCom.InitWavePargms(waveSpeed, viscosity, 1.0f / (float)(heightMapSize), deltaTime);

            if (!CheckSupport())
            {
                //return;
            }

            CreateWaterCameraGO();
        }
    //width,height,depth:正交摄像机宽高深度, texSize:照相机targetTexture纹理大小 waveEquationComponent:波动方程组件
    public void InitWaterCameraCom(float width, float height, float depth, int texSize, WaveEquationComponent waveEquationComponent)
    {
        this.waveEquationCom = waveEquationComponent;
        this.waveEquationCom.InitWaveEquMat(texSize, waveMat);

        waterCamera                  = gameObject.AddComponent <Camera>();
        waterCamera.aspect           = width / height;
        waterCamera.backgroundColor  = Color.black;
        waterCamera.cullingMask      = 0;
        waterCamera.depth            = 0;
        waterCamera.farClipPlane     = depth;
        waterCamera.nearClipPlane    = 0;
        waterCamera.orthographic     = true;
        waterCamera.orthographicSize = height * 0.5f;
        waterCamera.clearFlags       = CameraClearFlags.Depth;
        waterCamera.allowHDR         = false;

        commandBuffer = new CommandBuffer();
        waterCamera.AddCommandBuffer(CameraEvent.AfterImageEffectsOpaque, commandBuffer);

        RenderTexture orgRT = RenderTexture.active;

        curTexture           = RenderTexture.GetTemporary(texSize, texSize, 16);
        curTexture.name      = "[CurrentTexture]";
        RenderTexture.active = curTexture;//这里需要设置RenderTexture.active好让GL.Clear()生效
        GL.Clear(false, true, new Color(0, 0, 0, 0));

        heightMap            = RenderTexture.GetTemporary(texSize, texSize, 16);
        heightMap.name       = "[WaterHeightMap]";
        RenderTexture.active = heightMap;
        GL.Clear(false, true, new Color(0, 0, 0, 0));

        normalMap      = RenderTexture.GetTemporary(texSize, texSize, 16);
        normalMap.name = "[WaterNormalMap]";

        RenderTexture.active      = orgRT;
        waterCamera.targetTexture = curTexture;
    }