Эммм дак ты нифига себе че делаешь то)) Ты сначала умножаешь координаты вертекса на ввп матрицу, а ПОТОМ умножаешь на косинустайм. Есстественно на экране будет ппц что...
Тебе надо сначала умножить координаты так как хочешь, а потом уже умножать на матрицу.
Примерно так:
v2f o;
float CosTime = (cos(_Time.y) * 0.5 + 0.5);
o.pos = v.vertex;
o.pos.xyz = o.pos.xyz * CosTime;
o.pos = mul(UNITY_MATRIX_MVP, o.pos);
return o;
_Time.y это то что у тебя просто time.