Unity3D 物体旋转之Quaternion.Slerp
clq
浏览(514) -
2018-03-10 13:39:42 发表
编辑
关键字: u3d
Unity3D 物体旋转之Quaternion.Slerp
Quaternion.Slerp 函数中要注意的是,第一个参数应该写要移动的物体的角度4元数,如果第1,2两个参数的位置对调的话是看不到动态平滑效果的。
void Control_t5()
{
//Quaternion TargetRotation = Quaternion.LookRotation(target.transform.position - ship1.position, Vector3.up);
//ship1.rotation = Quaternion.Slerp(ship1.rotation, TargetRotation, Time.deltaTime * 2.5f);
//return;
//TargetRotation = Quaternion.LookRotation(target.transform.position - transform.position, Vector3.up);
//transform.rotation = Quaternion.Slerp(transform.rotation, TargetRotation, Time.deltaTime * 2.5f);
//return;
ship1.transform.rotation = Quaternion.Slerp(
//Quaternion.LookRotation(Camera.main.transform.position - m_Name.transform.position),
//Quaternion.LookRotation(Camera.main.transform.position - m_Name.transform.position, new Vector3(0, 0, 1)),
//rotation,
//m_Name.transform.rotation,
//Quaternion.LookRotation(target.transform.position - ship1.transform.position),
ship1.transform.rotation,
Quaternion.LookRotation(target.transform.position - ship1.transform.position), //两个位置在前后是不一样的,原物体位置在前是最好的
//还可以这样在最后的结果上再做调整,两个角度相乘就是角度叠加了
//Quaternion.LookRotation(target.transform.position - ship1.transform.position) * Quaternion.Euler(new Vector3(90, 0, 0)), //欧拉角度转 Quaternion, //两个位置在前后是不一样的,原物体位置在前是最好的
//10 * Time.deltaTime);
2.5f * Time.deltaTime);//速度
//transform.Rotate(0, 0, 90);//ok//不行,很抖动
}
--------------------------------------------------
参考
http://blog.csdn.net/huang9012/article/details/25845249
Unity3D 物体旋转之Quaternion.Slerp
转载 2014年05月15日 01:11:22
实现的功能:1个物体以一定的速度转向目标物体
Quaternion TargetRotation = Quaternion.LookRotation(m_Target.transform.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, TargetRotation, Time.deltaTime * 2.5f);
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.