今天实现一个简单的翻书的效果,话不多说,先上一张效果图:
创新互联-专业网站定制、快速模板网站建设、高性价比大东网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式大东网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖大东地区。费用合理售后完善,10多年实体公司更值得信赖。这里就随便用的一张纹理了,我们还是称为“翻木板”吧,哈哈。

实现过程:
其实这个效果实现起来还是挺简单的,大概思路其实就是 让所有顶点都绕Z轴旋转,并且通过正余弦使之带有一点弧度。
下面开始让我们一步一步的实现该效果。
首先打开Unity新建一个工程,场景,并且创建一个名为openBookEffect的Shader文件,删掉原本多余的代码。
第一步,我们先让它绕z轴旋转起来
这里就要用到一个旋转矩阵了,让顶点左乘该矩阵,就能得到旋转之后的位置了。(ps:这里就不详细的解释旋转矩阵怎么推导来的了,有兴趣的可以去百度了解一下。)
旋转矩阵有3种:
1.绕x轴旋转:

2.绕y轴旋转

3.绕z轴旋转

很明显,我们这里需要用到的是第三个 绕z轴旋转的矩阵。下面我们通过代码来构建一个旋转矩阵并使之旋转一定的角度:
Properties
{
_MainTex ("Texture", 2D) = "white" {}
//旋转角度
_Angle("Angle",Range(0,180))=0
}
....
sampler2D _MainTex;
//角度
float _Angle;
//顶点着色器
v2f vert (appdata v)
{
v2f o;
float s;
float c;
//通过该方法可以计算出该角度的正余弦值
sincos(radians(_Angle),s,c);
//旋转矩阵
float4x4 rotateMatrix={
c ,s,0,0,
-s,c,0,0,
0 ,0,1,0,
0 ,0,0,1
};
//顶点左乘以旋转矩阵
v.vertex = mul(rotateMatrix,v.vertex);
//模型空间转换到裁剪空间
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
....另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。