internal static GameObject Import(AlembicImportMode importMode, AlembicImportSettings importSettings, AlembicDiagnosticSettings diagSettings, Action <AlembicStream, GameObject, AlembicStreamDescriptor> customAction) { var fileName = System.IO.Path.GetFileNameWithoutExtension(importSettings.m_pathToAbc); var go = new GameObject(fileName); using (var abcStream = new AlembicStream(go, importSettings, new AlembicPlaybackSettings(), diagSettings)) { abcStream.AbcLoad(true); AlembicStreamDescriptor streamDescr = null; if (importMode > AlembicImportMode.NoSupportForStreaming) { streamDescr = ScriptableObject.CreateInstance <AlembicStreamDescriptor>(); streamDescr.name = "AlembicStream: " + go.name; streamDescr.m_ImportSettings = importSettings; streamDescr.m_importMode = importMode; } if (importMode == AlembicImportMode.AutomaticStreamingSetup) { var dynStream = go.AddComponent <AlembicStreamPlayer>(); dynStream.m_PlaybackSettings = new AlembicPlaybackSettings() { m_startTime = abcStream.AbcStartTime, m_endTime = abcStream.AbcEndTime }; dynStream.m_StreamDescriptor = streamDescr; dynStream.enabled = true; } customAction.Invoke(abcStream, go, streamDescr); } return(go); }
public AlembicStream(GameObject rootGo, AlembicImportSettings importSettings, AlembicPlaybackSettings playSettings, AlembicDiagnosticSettings diagSettings) { _alembicTreeRoot = new AlembicTreeNode() { stream = this, linkedGameObj = rootGo }; ImportSettings = importSettings; m_playbackSettings = playSettings; m_diagSettings = diagSettings ?? new AlembicDiagnosticSettings(); AbcAPI.aiEnableFileLog(m_diagSettings.m_logToFile, m_diagSettings.m_logPath); }