发布时间:2023-05-11 18:00
代码如下:
using UnityEngine;
using DG.Tweening;
public class rotetest : MonoBehaviour
{
bool isRotAble = true;
void Update()
{
if (Input.GetKeyUp(KeyCode.W) && isRotAble) {
isRotAble = false;
Vector3 endv = transform.localEulerAngles + new Vector3(90, 0, 0);
Debug.Log("transform.localEulerAngles:" + transform.localEulerAngles);
transform.DOLocalRotate(endv, 1).OnComplete(() => {
isRotAble = true;
Debug.Log("endv:"+ endv + " done:" + transform.localEulerAngles);
});
}
}
}
查看日志可以看出,transform.localEulerAngles(180,0,0)被转换为:(0.0, 180.0, 180.0),之后就是来回旋转
RotateMode的坑点常用DOTween插件的应该都知道,旋转不正常很多时候都是未设置RotateMode,默认Fast,尝试设置一下试试。
DOLocalRotate(endv, 1, RotateMode.FastBeyond360)//DOLocalRotate(endv, 1);新增RotateMode参数
效果同上
using UnityEngine;
using DG.Tweening;
public class rotetest : MonoBehaviour
{
bool isRotAble = true;
void Update()
{
if (Input.GetKeyUp(KeyCode.W) && isRotAble) {
isRotAble = false;
Quaternion endv = Quaternion.Euler(transform.localEulerAngles + new Vector3(90, 0, 0));
Debug.Log("transform.localEulerAngles:" + transform.localEulerAngles);
transform.DOLocalRotateQuaternion(endv, 1).OnComplete(() => {
isRotAble = true;
Debug.Log("endv:"+ endv + " done:" + transform.localEulerAngles);
});
}
}
}
效果也一样
旋转Y轴:
Quaternion endv = Quaternion.Euler(transform.localEulerAngles + new Vector3(0, 90, 0));
不管是DORotateQuaternion 方法还是DOLocalRotate都无法正常持续旋转X轴,而YZ轴的旋转都正常。
感觉是DOTween插件的bug?具体原因不得而知。。。。。
望知道的大佬指点!!!
在旋转对象的外层新增个节点,将旋转对象通过设置rotation进行旋转,将旋转的对象的X轴对准外层节点的YZ轴,然后旋转外层节点的YZ轴即可。
有更多好的方法欢迎大家分享!
SQL中row_number() over(partition by)的用法说明
Spring Security 实现数据库登陆判断以及主界面获取用户名
js与ts中各种循环遍历方式:for...in,for…of,forEach(),filter(),map(),every(),some() ,reduce(),reduceRight()之间的区别
人工智能、数据挖掘、机器学习和深度学习之间,主要有什么关系?
python 编程语言排行_TIOBE 榜单发布:超越 Python!C 语言荣获 2019 年度最佳编程语言...
华为鸿蒙harmonyos 2.0下载,鸿蒙2.0正式版下载_华为鸿蒙2.0系统下载(HarmonyOS 2.0)_易玩网...
Element UI - v-infinite-scroll无限滚动组件
## RuntimeError: one of the variables needed for gradient computation has been modified by an inplac
使用mybatis的typeHandler对clob进行流读写方式
【西瓜书+南瓜书】task01: 第1、2章(2天)【机器学习】
解读:Informer——比Transformer更有效的长时间序列预测方法
PyTorch Bug 记录:one of the variables needed for gradient computation has been modified by an inplace