当前位置: 代码迷 >> 综合 >> 【unity基础】面向某一个方向旋转
  详细解决方案

【unity基础】面向某一个方向旋转

热度:24   发布时间:2024-01-31 13:18:01.0

if(Input.GetKeyDown(KeyCode.A)){
//看向某一个方向,瞬间移动
transform.LookAt(target.transform.position);
}
if (Input.GetKey(KeyCode.B))
{
//平滑旋转看向某一个点
Quaternion quaternion = Quaternion.LookRotation(target.transform.position-transform.position);
transform.rotation = Quaternion.Lerp(transform.rotation,quaternion,5*Time.deltaTime);
}
if (Input.GetKey(KeyCode.C))
{
//右手法则,得到垂直于计算的两个变量的平面的一个向量
Vector3 normalize = Vector3.Cross(transform.forward, target.transform.position - transform.position);
float angles = Vector3.Angle(transform.position, target.transform.position);
//以该法向量为轴进行旋转
transform.Rotate(normalize, Time.deltaTime * rotateSpeed, Space.Self);
Debug.Log(angles);
if (angles == 0)
{
rotateSpeed = 0;
}
}