在DoTween中可以选择do旋转。但是旋转模式分成四种,且又有DoLocalRotate和DoRotate的区别,所以在此记录一下。

DoLocalRotate和DoRotate的区别在于,前者是基于自身当前旋转度数的旋转,如果游戏物体是UI,或者是某个物体的子物体,LocalRotation与Rotation的区别比较明显(尝试把父物体旋转一些度数,可以看出区别)。而后者的旋转是基于世界坐标系,测试方法和上述一样。

DoTween有四种旋转模式,分别是

1.RotateMode.LocalAxisAdd:先从字面分析,local和上述讲的是一样的,基于自身当前旋转度数(localrotation)。add,是指在当前旋转度数的基础上增加endvalue的值。

2.RotateMode.WorldAxisAdd:直接分析world,是指相对于世界的旋转,若endvalue的值是(0,0,10),意思是以世界的z轴为方向,增加10度的旋转量。

3.RotateMode.Fast:DoTween中旋转的默认模式,若无显示的指明旋转模式,那么此模式为当前旋转模式。但是使用此方法旋转,每次到了360就归0了,可以直接将endvalue设置为370试试,物体只会旋转10度。

4.RotateMode.FastBeyond360:超越360度,字面意思即可理解。同样设置370度,物体真的会从当前的度数,旋转到370度,且不会归零。

DOPunchRotation这个方法能实现非常有趣的动画效果,使用此方法,物体会以给定的punch值摇摆,最终会回到原始的旋转度数。

OnValidate方法,是之前看见我主程在用,所以我尝试了一下,并未深入研究,直到上次主程又训了我一顿,今晚仔细测试了一遍。

Validate字面意思是生效,所以此方法会在脚本生效的时候调用,此外,也会在Inspector面板中修改此脚本的值时调用。之前对于此方法的误解在于,我以为这个方法会一直调用,例如我在OnEnable中对同样一个游戏物体修改了名字,但是OnValidate中也修改了名字。我以为OnValidate也会在游戏刚运行时调用,但事实不是。

OnValidate的运用场景十分丰富,对于目前的我来说,是非常有用的。例如上述fast旋转时,我们也可以使用OnValidate实现此效果。直接rotation=rotation%360即可(忽略四元数等转换)。倘若我们需要为一个游戏物体下所有子物体按照顺序,从0开始排序,可以直接使用for循环,获取transform.count,然后transform.getchild(0).name=i即可。OnValidate使用场景数不胜数,就不再赘述了。

关于Dotween旋转以及OnValidate函数的解读的更多相关文章

  1. Java中系统时间的获取_currentTimeMillis()函数应用解读

    快速解读 System.currentTimeMillis()+time*1000) 的含义 一.时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微 ...

  2. 31.QPainter-rotate()函数分析-文字旋转不倾斜,图片旋转实现等待

    在上章和上上上章: 28.QT-QPainter介绍 30.QT-渐变之QLinearGradient. QConicalGradient.QRadialGradient 学习了QPainter基础绘 ...

  3. go 学习笔记之解读什么是defer延迟函数

    Go 语言中有个 defer 关键字,常用于实现延迟函数来保证关键代码的最终执行,常言道: "未雨绸缪方可有备无患". 延迟函数就是这么一种机制,无论程序是正常返回还是异常报错,只 ...

  4. Unity脚本-Rotate旋转相关知识点

    1,Transform旋转   transform.Rotate(X, Y, Z);//分别绕X,Y,Z轴旋转,可写为绕某个轴旋转,栗子transform.Rotate(0, 90, 0);   tr ...

  5. 《征服 C 指针》摘录4:函数 与 指针

    一.指向函数的指针 函数名可以在表达式中被解读成“指向函数的指针”,因此,正如代码清单 2-2 的实验那样,写成 func 就可以取得指向函数的指针. “指向函数的指针”本质上也是指针(地址),所以可 ...

  6. 【转】IOS屏幕旋转与View的transform属性之间的关系,比较底层

    iTouch,iPhone,iPad设置都是支持旋转的,如果我们的程序能够根据不同的方向做出不同的布局,体验会更好. 如何设置程序支持旋转呢,通常我们会在程序的info.plist中进行设置Suppo ...

  7. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  8. 【iOS】屏幕旋转,屏幕自适应方向变化

    1. iOS有四个方向的旋转,为了保证自己的代码能够支持旋转,我们必须首先处理一个函数: - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInter ...

  9. GDI+简单现实文字旋转

    原文 http://www.cnblogs.com/kaixiangbb/p/3301272.html 题记 入职新公司已快有两月了,试用期已快结束,项目却迟迟还未正式启动.安排给我的多是些琐事,一直 ...

随机推荐

  1. PYthon窗口学习之用异步请求解决Treeview列表插入大量数据反应慢的解决办法

    当列表插入大量数据时,经常会等一会才显示数据 异步请求就将每一个插入语句并发运行,从而提高插入速度 代码: # 显示结果 def insert_result(table, info): def ins ...

  2. java中hashCode和equals什么关系,hashCode到底怎么用的

    Object类的hashCode的用法:(新手一定要忽略本节,否则会很惨) 马 克-to-win:hashCode方法主要是Sun编写的一些数据结构比如Hashtable的hash算法中用到.因为ha ...

  3. APK安装流程概述

    pre { background: none left top repeat scroll rgba(0, 0, 0, 0); border: 1px solid rgba(0, 0, 0, 1); ...

  4. java中的排序除了冒泡以来, 再给出一种方法, 举例说明

    9.5 排序:   有一种排序的方法,非常好理解,详见本题的步骤,先找出最大值和最小值,把最小值打印出来后,把它存在另一个数组b当中,再删除此最小值,之后再来一次找出最小值,打印出最小值以后,再把它存 ...

  5. CentOS安装图形界面以及eclipse的安装

    图形界面的安装,以GNOME为例: 1.首先运行命令:yum grouplist 会显示可安装的包,可以自己选择安装. 2.运行  yum gruopinstall "GNOME" ...

  6. Django框架中settings.py注释

    1 # coding:utf8 2 """ 3 Django settings for DjangoTest project. 4 5 Generated by 'dja ...

  7. springboot静态资源无法访问

    前言 今天使用springboot+layui+shiro实现一个前后端分离的商城后台系统,一个小小静态资源(image)问题搞了一下午:还好坚持了下来,否者崩溃.吐血都是小事 这是引入的路径 这是图 ...

  8. SSM框架整合(Spring、SpringMVC、Mybatis)

    #毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...

  9. Java中List接口重要实现类一ArrayList

    1.java.util.ArrayList 集合数据存储的结构是数组结构.元素查找快,而增删就比较慢 所以如果要查询数据,遍历数据,ArrayList是最常用的集合 2.ArrayList是不同步的, ...

  10. Element instanceof Node

    今天看到一个问题,问 Element instance Node 为什么是 false. 首先,我们知道 Element 是 Node 的子类,那么为什么 Element instanceof Nod ...