unity 制作书籍翻页效果

unity C# 翻书效果 2D 真实翻页 不使用插件 自制

实现思路

将书本分为两边,一边一个翻页实现;

下图为书本的右面,以OA为分界线,△OAB是下一面的如上图的左下角,△OAC是下一面的如上图的右下角;

利用unity的mask可以实现,也就是,假设这一页是1(左边那一页是0),需要有一个对象作为底面显示3,一个对象被mask遮住显示2的左下角在△OAB上,一个对象被mask遮住显示1的左上部分在◇OADE上;

OAB部分的mask可以如下图理解:◇OAFG是mask,◇OBCD是2,翻页时,◇OAFG逆时针转动,◇OBCD作为◇OAFG的子对象,相同的方向旋转相同角度;

其他部分以及左边页面实现的原理都同上,还有就是翻书的中心点是以两页中间底部为旋转原点;

实现步骤

1.新建一个2D项目并在hierarchy面板新建一个Canvas,并在其下建立如下对象,从上到下含义可以理解为左边底页面、左边逐渐消失页面(父对象为mask子对象为图片)、左边逐渐出现页面、右边底页面、右边逐渐消失页面(父对象为mask子对象为图片)、右边逐渐出现页面,其中的LeftPageShadow和RightPageShadow是翻书的阴影,如下图2的灰色线,会跟着◇OBCD一起旋转,但是是反方向才能和书折痕的边缘契合,折痕图片使用下图3有渐变的即可;

2.此处将单讲右边部分,左边部分同理。RightBottomPage_Appear不需要怎么修改,只需把坐标设置好,作为底面即可。把Width和Height设置成想要的尺寸,PosY为-Height*0.5f,调至页面的右侧,还需要把Pivot设置为0,0,把旋转中心点设置为书本中轴线的底部;

3.RightTopCover_DisAppear设置如下,为了顾及旋转时RightTopPage_DisAppear会出头,此处简单粗暴的把Width设置为2倍,同理也要把旋转中心点设置在中轴线底部,Pivot设置为0,0;

4.RightTopPage_DisAppear设置如下,不多说;

5.RightNextCover、RightNextPage和RightPageShadow基于同样的原因和效果出现的位置做如下设置,可在设置过程中体会理解,注意Pivot和Rotation,RightPageShadow可以减少颜色透明度来减淡阴影;

6.创建一个脚本并挂载在MainCanvas上,定义以下变量,上面部分的Image表示对应名字的Image属性,Sprite[]表示所有书页,turningTime表示翻页时间,isturing表示当前是否正在翻页;

7.右边翻向左边的代码如下,SetSiblingIndex是设置物体在hierarchy面板的位置,用来排序,因为排在下面的物体会显示在排在上面的物体的前面,SetSiblingIndex具体说明可参看unity文档。offsetAngle根据旋转时间来调节旋转的幅度。然后就是各种角度的叠加和旋转抵消。ResetBookImage函数和ResetPagesAttribute函数,后面细说。此处使用SetSiblingIndex也可通过,创建两个空物体然后附加一个canvas组件,把左右两边的物体分别作为子物体,然后通过调节sorting order来显示哪一页在前面;

8.左边翻向右边的代码如下,同理不再赘述

9.ResetPagesAttribute的代码如下,重置所有Image的坐标和角度;

10.创建如下变量,含义分别为当前页数,最大页数,还有左边翻页协程和右边翻页协程。ResetBookImage函数代码如下,用于重新设置各个Image对应的图片,此处比较需要抽象和想象,想通就很容易理解;

11.在Start里初始化变量和重设图片,然后再创建两个函数用来启动翻页的功能;

12.在hierarchy面板创建一个空物体并挂载新脚本InputControl用来控制点击,代码如下。此处使用Graphic Raycaster(UI射线)来检测点击的位置,还需要创建两个空Image并调至要响应翻页的地方,此处为页面左右两边并且宽度为总宽度的四分之一。射线检测通过比对name来进入不同翻页;

至此,使用unity原生组件制作书本翻页效果的功能就完成了,以下为效果

另外还可参考GitHub上的这位道友的项目:

https://github.com/Dandarawy/Unity3DBookPageCurl

转载于:https://www.cnblogs.com/JinT-Hwang/p/9274984.html

unity 制作书本 翻页效果相关推荐

  1. 使用transform制作书本翻页效果

    transform transform属于CSS属性 Transform属性应用于元素的2D或3D转换.这个属性允许你将元素旋转,缩放,移动,倾斜等. 在网页中需要制作一些有立体感的3d效果,比如书本 ...

  2. 手机html5翻页效果代码,jquery html5手机端翻书效果_手指滑动书本翻页效果代码

    特效描述:jquery html5手机端翻书 手指滑动 书本翻页效果.显现手机端翻书效果,支持手拖动翻页 代码结构 1. 引入JS 2. HTML代码 function loadApp() { // ...

  3. 用Cocos Creator 模拟书本翻页效果

    1.简介 本文主要探讨了如何使用CocosCreator来模拟书本翻页效果,分别介绍了通过使用贝塞尔曲线和verlet积分算法来模拟书页底边在翻页过程中的弯曲形变,最后通过自定义assembler传入 ...

  4. 用 Cocos Creator 模拟书本翻页效果

    本篇文章作者:乐府-贝塔 乐府-贝塔:乐府前端核心开发,从事游戏开发多年,从 Cocos2d-x 做到 Cocos Creator,擅长渲染技术的相关优化.多年的前端开发经验激发了对技术研究的深厚兴趣 ...

  5. css3实现书本翻页效果

    css3翻页效果 关键要点: 1.css3 3d动画的掌握 2.如何解决翻转后页面内容的改变 3.如何保持书本一直处于居中位置 代码总览 <!DOCTYPE html> <html ...

  6. 核心动画实现书本翻页效果加载动画

    经常看到一些很好的动画加载视图,闲来无事就写了一个书本翻页样式的动画加载视图,核心技术是CALayer+CoreAnimation.项目源码地址:https://github.com/China131 ...

  7. css3的书本翻页效果

    最近我们网站要上线一个页面,要做一个轮播.我一般接触的轮播,都是淡入淡出或者左右切入切出,那天产品说要做一个书的翻页的效果,就是书从一角掀起然后向着一个方向走的效果.跟带我的同事对了一下,他跟我说做一 ...

  8. 书本翻页效果 html+css

    效果: 有些细节没处理好 ("▔□▔) 实现: 定义标签,shu是书本,feng是封面,wen是文字内容. <div class="shu"><div ...

  9. 【原创】书本翻页效果booklet jquery插件系列之简介

    booklet jquery插件系列之简介 本文由五月雨恋提供,转载请注明出处. 一.安装 1.添加CSS和Javascript 添加booklet CSS文件到你的页面. <link rel= ...

最新文章

  1. Github最强算法刷题笔记.pdf
  2. 计算机硬件拆解,计算机硬件系统及主机拆解.ppt
  3. python对excel进行筛选-PythonEXCEL读取-保存-矩阵合并-条件筛选
  4. U盘制做DOS启动盘
  5. java的idea的使用_java学习-IDEA相关使用
  6. java编程能做什么_学习Java编程能做什么工作?
  7. TCL语言笔记:TCL中的String命令
  8. 京瓷 打印 打印机 账户_UV打印机买回来成废铁?不是选择不对,而是你想太多了……...
  9. Spring整合Redis作为缓存
  10. Object-C 语法基础
  11. Eclipse —— 官网下载地址
  12. Word | 添加图题/图注、插入题注、设置插入题注快捷键...
  13. Windows系统及应用技巧二十六篇
  14. 文件系统FastDFS和阿里云OSS
  15. color-thief-php提取图片色值分布及百分占比
  16. 高考作文《细雨闲花》
  17. eclipse安装tomcat时只有locahost,不显示server name
  18. pytorch学习笔记九:权值初始化
  19. C++ 繁华的曼哈顿
  20. 【论文阅读|深读】GAS:Role-Oriented Graph Auto-encoder Guided by Structural Information

热门文章

  1. StringBuffer和StringBuilder总结
  2. 贷款买车后,有多少人后悔了?
  3. 天燃气与电热水器哪个用着成本低?
  4. 有运气的赚钱,不如有成长的失败
  5. 所有赚不到钱的人都是干了自己不愿意或者自己很讨厌的事
  6. 无论商业模式怎么变,其最核心的东西,永远不变
  7. 很多创业失败的负债者
  8. 盘点国内高投资低票房的电影巨制
  9. 小白初次攒机配置如何选择?
  10. 有的网线接口为什么做不到轻薄化?