Confusion about displacement in vertex shader

I want to implement a water cube however when I use a displacement texture to store the compuatation results and pass it to shader to do displacement, the top plane of the cube has seam between neighbour 4 plane like the picture shows,Is it the problem of the settings of importing mesh to unity or shader error or original mesh settings in 3DMAX?

my vert shader code is shown below

Varyings vert(Attributes input)
{

float4 heightInfo = tex2Dlod(_HeightMap, float4(input.uv, 0.0, 0.0));
float ifUpVertex = step(0,input.positionOS.y);
input.positionOS.y+=heightInfo.r*0.01*ifUpVertex;
VertexPositionInputs positionInputs = GetVertexPositionInputs(input.positionOS.xyz);
Varyings output;
output.positionWS = positionInputs.positionWS;
output.positionVS = positionInputs.positionVS;
output.positionCS = positionInputs.positionCS;
output.screenPos = ComputeScreenPos(output.positionCS);
output.uv = TRANSFORM_TEX(input.uv, _BaseMap);
return output;
}

![9428021–1321700–Y_SZWBNY}4$SLONHL]FM6U5.png|1103x642](upload://rFfx9LahWeHZSftZXbYBWyOFcbm.png)

most likely has to do with either normal being hard/smooth in import settings or you not welding extra vertices, it’s clear there are two vertices where you’re expecting only one

Problem solved,the key point is that I use the texture to pass the displacement infomation to the cube,however in the cube i make,the surrouding 4 planes map to different uv value,not aligned with the top plane.So they sample different value from the displacement map

Still thanks for your reply!