笔记简介:
经常会使用物体旋转与移动的操作,但是使用的方法有很多种,不是每种方法都是合适的,经过多次测试最终确定了下面的方法比较靠谱,核心函数采用了Quaternion类LookRotation函数和插值函数实现。
在工程里面创建了一个胶囊体和长方体,如图所示:
![Unity3d中Quaternion.LookRotation使用方法 Unity3d中Quaternion.LookRotation使用方法](https://i-blog.csdnimg.cn/blog_migrate/2bd5c4c32a9a626d208dac4107eef729.jpeg)
在长方体上添加下脚本,并且把胶囊体赋值给脚本中的target变量。运行时可以看到:当拖动胶囊体不同方位移动时,长方体都会用Z轴正对胶囊体,并且缓缓向其移动。
using UnityEngine;
usingSystem.Collections;
public class walkdir : MonoBehaviour {
public Transform target;
public float speed=1;
void Update() {
Vector3 relativePos = target.position - transform.position;
//Quaternion rotation = Quaternion.LookRotation(relativePos,Vector3.up);
Quaternion rotation = Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(relativePos.normalized), Time.deltaTime);
transform.rotation = rotation;
transform.Translate(Vector3.forward * speed * Time.deltaTime / 10);
}
}