unity 转向和角度

LookAt() 与 LookRotation() 的区别?
在这里插入图片描述
个人理解
一般来说 角色冲着z轴方向
这样lookat的时候 他就直接冲着目标点了。
LookAt 是将游戏对象的z轴指向参数所表示的那个点
LookRotation 是将游戏对象的z轴指向参数所表示的向量的方向,使我们的物体朝向我们希望的方向,是朝向一个向量。
Quaternion Quaternion.LookRotation(Vector3 forward, Vector3 upwards) (+ 1 重载)
LookRotation的含义就是,计算让Z轴对齐forward,让y轴对齐upward ,也就是让x轴和upward垂直所需要的旋转四元数

Quaternion q1 = new Quaternion(1,2,3,4);
Debug.Log(“创建一个四元数:”+q1);//输出:(1.0, 2.0, 3.0, 4.0)

Vector3 eulerAngle = q1.eulerAngles;
Debug.Log(“四元数转欧拉角:” + eulerAngle);//输出:(352.3, 47.7, 70.3)
Quaternion q2 = Quaternion.Euler(eulerAngle);
Debug.Log(“欧拉角转四元数:” + q2);//输出:(-0.2, -0.4, -0.5, -0.7)
Vector3 axis; float angle;
q1.ToAngleAxis(out angle, out axis);
Debug.Log(“四元数转轴向角,旋转角度:” + angle+“旋转轴:”+axis);//输出:旋转角度:86.17744旋转轴:(0.3, 0.5, 0.8)
Quaternion q3= Quaternion.AngleAxis(angle, axis);
Debug.Log(“轴向角转四元数:”+q3);//输出:(0.2, 0.4, 0.5, 0.7)
//测试
a.rotation = q1;
b.rotation = q2;
c.rotation = q3; //结果:a,b,c的旋转相同,inspector面板里的Rotation都是(-7.662, 47.726, 70.346)

想知道自己的模型在世界坐标里的朝向向量
self.transform.forward
很方便吧
Quaternion.Dot
Quaternion这个类非常有意思
他也有一个Dot
Vector也有一个Dot

让一个东西前进的写法
this.cube.transform.Translate( UnityEngine.Vector3.forward * Time.deltaTime * 2.0f);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity开发中,如果要将视角转向摄像头前方,可以使用RotateAround方法来实现。通过设置旋转中心为视角正前方一点,然后根据鼠标移动的水平和垂直距离来控制旋转角度。具体的代码如下所示: Vector3 ptCenter = Camera.main.transform.position + Camera.main.transform.forward * 1.0f; float drag_speed = 50.0f; float rotX = Input.GetAxis("Mouse X") * drag_speed * Time.deltaTime; float rotY = Input.GetAxis("Mouse Y") * drag_speed * Time.deltaTime; Camera.main.transform.RotateAround(ptCenter, Vector3.up, rotX); Camera.main.transform.RotateAround(ptCenter, -Camera.main.transform.right, rotY); 这段代码可以使视角围绕旋转中心进行水平和垂直方向的旋转,从而将视角转向摄像头前方。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [unity相机竖直方向上下无限制旋转](https://blog.csdn.net/zouxin_88/article/details/85101877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [UnityIK人体骨骼反向动力学系统插件 Final IK 2.2](https://download.csdn.net/download/mayzhengxi/88262273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值