private bool DrawGeneralProperties() { float controlWidth = m_propertyPanelWidth - m_panelsSpacing * 2 - 10; EditorGUILayout.BeginVertical("GroupBox", GUILayout.MaxWidth(controlWidth)); EditorGUILayout.LabelField("General", m_resources.m_smallLabel); EditorGUILayout.Space(5); m_storyboardData = EditorGUILayout.ObjectField("Target Data", m_storyboardData, typeof(StoryboardData), true) as StoryboardData; if (m_storyboardData == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No storyboard data is assigned, please assign one to continue operations.", MessageType.Error, true); return(false); } m_lastStoryboardDataPath = AssetDatabase.GetAssetPath(m_storyboardData); m_timeline = EditorGUILayout.ObjectField("Timeline", m_timeline, typeof(TimelineAsset), true) as TimelineAsset; if (m_timeline == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No timeline asset is assigned, please assign one to continue operations.", MessageType.Error); return(false); } m_lastTimelinePath = AssetDatabase.GetAssetPath(m_timeline); m_playableDirector = EditorGUILayout.ObjectField("Playable Director", m_playableDirector, typeof(PlayableDirector), true) as PlayableDirector; if (m_playableDirector == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No playable director is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_playController = EditorGUILayout.ObjectField("Play Controller", m_playController, typeof(StoryboardPlayController), true) as StoryboardPlayController; if (m_playController == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No play controller is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_camera = EditorGUILayout.ObjectField("Camera", m_camera, typeof(Camera), true) as Camera; m_playController.m_camera = m_camera; if (m_camera == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No camera transform is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_sceneProxy = EditorGUILayout.ObjectField("Scene Proxy", m_sceneProxy, typeof(StoryboardSceneProxy), true) as StoryboardSceneProxy; if (m_sceneProxy == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No scene proxy is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_directorDataTextAsset = EditorGUILayout.ObjectField("Director Data", m_directorDataTextAsset, typeof(TextAsset), true) as TextAsset; if (m_directorDataTextAsset == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No director threshold data is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_lastDirectorThresholdsPath = AssetDatabase.GetAssetPath(m_directorDataTextAsset); m_renderTexture = EditorGUILayout.ObjectField("Screenshot RT", m_renderTexture, typeof(RenderTexture), true, GUILayout.MaxHeight(16)) as RenderTexture; if (m_renderTexture == null) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("No render texture is referenced, please assign one to continue operations.", MessageType.Error); return(false); } m_lastRenderTexturePath = AssetDatabase.GetAssetPath(m_renderTexture); m_dataDumpPath = EditorGUILayout.TextField("Data Dump Path", m_dataDumpPath); if (!AssetDatabase.IsValidFolder(m_dataDumpPath)) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("Data dump path does not exist, please provide a valid path.", MessageType.Error); return(false); } m_implementationResourcesPath = EditorGUILayout.TextField("Implementations Path", m_implementationResourcesPath); if (!AssetDatabase.IsValidFolder(m_implementationResourcesPath)) { EditorGUILayout.Space(10); EditorGUILayout.HelpBox("Implementations path does not exist, please provide a valid path.", MessageType.Error); return(false); } m_debugPositioning = EditorGUILayout.TextField("Debug Positioning", m_debugPositioning); m_debugLook = EditorGUILayout.TextField("Debug Look", m_debugLook); m_debugTrack = EditorGUILayout.TextField("Debug Track", m_debugTrack); m_debugFX = EditorGUILayout.TextField("Debug FX", m_debugFX); EditorGUILayout.Space(5); EditorGUILayout.EndVertical(); return(true); }
private void FindReferences() { if (m_timeline == null) { m_timeline = AssetDatabase.LoadAssetAtPath <TimelineAsset>(m_lastTimelinePath); } if (m_storyboardData == null) { m_storyboardData = AssetDatabase.LoadAssetAtPath <StoryboardData>(m_lastStoryboardDataPath); } if (m_sceneProxy == null) { m_sceneProxy = GameObject.FindObjectOfType <StoryboardSceneProxy>(); } if (m_directorDataTextAsset == null) { m_directorDataTextAsset = AssetDatabase.LoadAssetAtPath <TextAsset>(m_lastDirectorThresholdsPath); } if (m_renderTexture == null) { m_renderTexture = AssetDatabase.LoadAssetAtPath <RenderTexture>(m_lastRenderTexturePath); } if (m_playController == null) { m_playController = FindObjectOfType <StoryboardPlayController>(); } if (m_playableDirector == null) { PlayableDirector[] directors = FindObjectsOfType <PlayableDirector>(); for (int i = 0; i < directors.Length; i++) { if (directors[i].playableAsset == m_timeline) { m_playableDirector = directors[i]; break; } } } if (m_camera == null) { StoryboardTargetCamera targetCam = FindObjectOfType <StoryboardTargetCamera>(); if (targetCam != null && m_playController != null) { m_camera = targetCam.GetComponent <Camera>(); m_playController.m_camera = m_camera; } } else if (m_camera.GetComponent <Camera>() == null) { m_camera = null; } if (m_storyboardData.m_techniqueImplementations == null) { m_storyboardData.m_directorData.CreateImplementationDetails(m_implementationResourcesPath, ref m_storyboardData.m_techniqueImplementations); } }