support export MovieTexture

This commit is contained in:
Perfare 2017-11-13 17:46:26 +08:00
parent 682ef4552e
commit b2ecc65885
5 changed files with 63 additions and 6 deletions

View File

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Unity_Studio
{
class MovieTexture
{
public string m_Name;
public byte[] m_MovieData;
public MovieTexture(AssetPreloadData preloadData, bool readSwitch)
{
var sourceFile = preloadData.sourceFile;
var a_Stream = preloadData.sourceFile.a_Stream;
a_Stream.Position = preloadData.Offset;
m_Name = a_Stream.ReadAlignedString(a_Stream.ReadInt32());
if (readSwitch)
{
var m_Loop = a_Stream.ReadBoolean();
a_Stream.AlignStream(4);
//PPtr<AudioClip>
sourceFile.ReadPPtr();
var size = a_Stream.ReadInt32();
m_MovieData = a_Stream.ReadBytes(size);
var m_ColorSpace = a_Stream.ReadInt32();
}
else
{
preloadData.extension = ".ogv";
preloadData.Text = m_Name;
}
}
}
}

View File

@ -295,6 +295,12 @@ namespace Unity_Studio
exportable = true; exportable = true;
break; break;
} }
case 152: //MovieTexture
{
var m_MovieTexture = new MovieTexture(asset, false);
exportable = true;
break;
}
case 21: //Material case 21: //Material
case 74: //AnimationClip case 74: //AnimationClip
case 90: //Avatar case 90: //Avatar
@ -1826,6 +1832,16 @@ namespace Unity_Studio
return false; return false;
} }
public static bool ExportMovieTexture(AssetPreloadData asset, string exportPath)
{
var m_MovieTexture = new MovieTexture(asset, true);
var exportFullName = exportPath + asset.Text + asset.extension;
if (ExportFileExists(exportFullName))
return false;
File.WriteAllBytes(exportFullName, m_MovieTexture.m_MovieData);
return true;
}
public static bool ExportRawFile(AssetPreloadData asset, string exportPath) public static bool ExportRawFile(AssetPreloadData asset, string exportPath)
{ {
var exportFullName = exportPath + asset.Text + asset.extension; var exportFullName = exportPath + asset.Text + asset.extension;

View File

@ -142,6 +142,7 @@
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
</Compile> </Compile>
<Compile Include="Unity Classes\AssetBundle.cs" /> <Compile Include="Unity Classes\AssetBundle.cs" />
<Compile Include="Unity Classes\MovieTexture.cs" />
<Compile Include="Unity Classes\VideoClip.cs" /> <Compile Include="Unity Classes\VideoClip.cs" />
<Compile Include="Unity Studio Classes\AssetPreloadData.cs" /> <Compile Include="Unity Studio Classes\AssetPreloadData.cs" />
<Compile Include="Unity Classes\AudioClip.cs" /> <Compile Include="Unity Classes\AudioClip.cs" />

View File

@ -142,6 +142,7 @@
<DependentUpon>ShaderResource.resx</DependentUpon> <DependentUpon>ShaderResource.resx</DependentUpon>
</Compile> </Compile>
<Compile Include="Unity Classes\AssetBundle.cs" /> <Compile Include="Unity Classes\AssetBundle.cs" />
<Compile Include="Unity Classes\MovieTexture.cs" />
<Compile Include="Unity Classes\VideoClip.cs" /> <Compile Include="Unity Classes\VideoClip.cs" />
<Compile Include="Unity Studio Classes\AssetPreloadData.cs" /> <Compile Include="Unity Studio Classes\AssetPreloadData.cs" />
<Compile Include="Unity Classes\AudioClip.cs" /> <Compile Include="Unity Classes\AudioClip.cs" />

View File

@ -1103,13 +1103,9 @@ namespace Unity_Studio
#endregion #endregion
#region VideoClip #region VideoClip
case 329: case 329:
case 152: //MovieTexture
{ {
var str = asset.ViewStruct(); StatusStripUpdate("Only supported export.");
if (str != null)
{
textPreviewBox.Text = str;
textPreviewBox.Visible = true;
}
break; break;
} }
#endregion #endregion
@ -1619,6 +1615,12 @@ namespace Unity_Studio
exportedCount++; exportedCount++;
} }
break; break;
case 152: //MovieTexture
if (ExportMovieTexture(asset, exportpath))
{
exportedCount++;
}
break;
default: default:
if (ExportRawFile(asset, exportpath)) if (ExportRawFile(asset, exportpath))
{ {