private void ConvertFrames(Transform trans, ImportedFrame parent) { var frame = new ImportedFrame(); assetsfileList.TryGetGameObject(trans.m_GameObject, out var m_GameObject); frame.Name = m_GameObject.m_Name; frame.InitChildren(trans.m_Children.Count); Quaternion mirroredRotation = new Quaternion(trans.m_LocalRotation[0], trans.m_LocalRotation[1], trans.m_LocalRotation[2], trans.m_LocalRotation[3]); mirroredRotation.Y *= -1; mirroredRotation.Z *= -1; var m_LocalScale = new Vector3(trans.m_LocalScale[0], trans.m_LocalScale[1], trans.m_LocalScale[2]); var m_LocalPosition = new Vector3(trans.m_LocalPosition[0], trans.m_LocalPosition[1], trans.m_LocalPosition[2]); frame.Matrix = Matrix.Scaling(m_LocalScale) * Matrix.RotationQuaternion(mirroredRotation) * Matrix.Translation(-m_LocalPosition.X, m_LocalPosition.Y, m_LocalPosition.Z); if (parent == null) { FrameList = new List <ImportedFrame>(); FrameList.Add(frame); } else { parent.AddChild(frame); } foreach (var pptr in trans.m_Children) { if (assetsfileList.TryGetTransform(pptr, out var child)) { ConvertFrames(child, frame); } } }
private void ConvertFrames(Transform trans, ImportedFrame parent) { var frame = ConvertFrame(trans); if (parent == null) { FrameList.Add(frame); } else { parent.AddChild(frame); } foreach (var pptr in trans.m_Children) { if (pptr.TryGetTransform(out var child)) ConvertFrames(child, frame); } }