近期热门
粉丝0
关注 0
获赞 0
对于unity3d中的 Vector3和 Quaternion的问题

[U3D] 对于unity3d中的 Vector3和 Quaternion的问题

[复制链接]
13597 2 0 0 12年前 举报

假设如下代码
vector3d Pos1;//一个角色位置
vector3d Pos2;/这个位置是在上面角色的后上方一点,用来形成一个从这个点到角色的向量
vector3d Dir=Pos1-Pos2;//这是一个向量,从角色后上方一点指向角色
现在要把场景中的camera从当前朝向也就是camera.transform.rotation转到上面那个方向上,以便使cmaera按指定的方向看着角色,这里不使用lookAt这个函数.

问题是怎么把Dir从vector3d向量有转为一个Quaternion,试了如下方式
Quaternion newRotation=Quaternion.Euler(Dir);
然后camera.transform.rotation=newRotation;//这种方式不能成功不知道是为什么
另外直接用camera.transform.forward=Dir;是可以的,但这种不能用于旋转插值

Quaternion.Slerp()需要两个Quaternion类型参数,
如何使newRotation成为有效的Quaternion呢,只有当newRotation有效才能进行旋转插值.
我不知道中途那个地方使用错误或者理解偏差了,求指教~~

另外关于Quaternion newRotation=Quaternion.Euler(Dir);这里的Dir是在代码里计算出来的并且后面的旋转尝试是失败了的,但当我在编辑器中把camera先摆放在想要旋转到的位置后,这时从属性栏里的Rotation里把三个值手动取出来后在代码里再组成一个vector3d向量Dir时,用这个Dir按上面的使用方式进行转换到Quaternion 是可以成功的,也可以正常的进行插值旋转.
不知道有谁遇到过这样的问题没,求解惑```
0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论2
您需要登录后才可以回帖 登录

哎,不懂这些程序代码啊
12年前
回复

使用道具 举报

具体原因虽然不是很了解,四元素确实有难度,不过已经用其它方式代替了~~结贴
12年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器