照相机根据触摸围绕目标旋转

来源:互联网 发布:域名是什么样子 编辑:程序博客网 时间:2024/05/22 12:11
Transform m_Rounder = Camera.main.transform;Transform m_Center = m_TargetXingqiu.transform;//当前触摸的坐标与上一个触摸坐标的偏移量Vector2 offsetPos = m_TouchCurPos - m_TouchPrePos;//围绕半径float radius = (m_Rounder.position - m_Center.position).magnitude;//相机到目标的向量Vector3 camRelativeToTarget = Vector3.Normalize(m_Rounder.position - m_Center.position);//触摸为照相机坐标,将此坐标转为世界坐标Vector3 touchCurWorldPos = m_Rounder.localToWorldMatrix.MultiplyPoint(new Vector3(m_TouchCurPos.x, m_TouchCurPos.y, 0f));Vector3 touchPreWorldPos = m_Rounder.localToWorldMatrix.MultiplyPoint(new Vector3(m_TouchPrePos.x, m_TouchPrePos.y, 0f));//触摸方向向量转世界向量Vector3 touchVec = touchCurWorldPos - touchPreWorldPos;//围绕的旋转轴Vector3 roundAxis = Vector3.Cross(touchVec, camRelativeToTarget);m_Rounder.RotateAround (m_Center.position, Vector3.Normalize(roundAxis), roundAxis.magnitude*0.1f);

0 0
原创粉丝点击