コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
ファイル: ModelConverter.cs プロジェクト: tamzi/AssetStudio
 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);
     }
 }