Пример #1
0
 private void Awake()
 {
     if (s_playController == null)
     {
         s_playController = this;
     }
 }
Пример #2
0
    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);
    }
Пример #3
0
    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);
        }
    }