已知父物体位置和子节点相对位置,计算子节点世界位置

理解:四元数和向量相乘是向量按四元数进行了旋转后得到的新位置

例子: 四元数Quateration q=Quaternion.Euler(0,90,0)向量vector3(0,0,1),绕着Y轴旋转90度,得到新的向量是vector3(1,0,0)。

控制角色转向:人员transform.rotation对应的欧拉角度为(0,45,0),现在要让人员往他的右前方移动(即directionVector=(1,0,1)),在场景中判断人物移动的方向向量应该是(1,0,0),ransform.rotation*directionVector就是让directionVector绕Y轴旋转45度,(1,0,1)绕Y轴旋转45度不就是(1,0,0)

//父结点
Transform parent = gameobj1.transform.parent;
//结点偏差
Vector3 offset = new Vector3(gameobj1.transform.localPosition.x * parent.transform.localScale.x,
                                     gameobj1.transform.localPosition.y * parent.transform.localScale.y,
                                     gameobj1.transform.localPosition.z * parent.transform.localScale.z);
//子节点世界坐标
Vector3 worldPos = parent.position + parent.rotation * offset;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值