Esempio n. 1
0
 static void RefreshMediaSources()
 {
     EditorCore.RefreshMediaSources();
 }
Esempio n. 2
0
        void OnGUI()
        {
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (selectedClip != null)
            {
                GUILayout.Label(AssetPreview.GetMiniThumbnail(selectedClip), GUILayout.Height(128), GUILayout.Width(128));
            }
            else
            {
                GUILayout.Box("", GUILayout.Height(128), GUILayout.Width(128));
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            selectedClip = (VideoClip)EditorGUILayout.ObjectField(selectedClip, typeof(UnityEngine.Video.VideoClip), true);

            if (EditorCore.MediaSources.Length == 0)
            {
                if (GUILayout.Button("Refresh Media Sources"))
                {
                    EditorCore.RefreshMediaSources();
                }
                return;
            }

            //media source
            string[] displayOptions = new string[EditorCore.MediaSources.Length];
            for (int i = 0; i < EditorCore.MediaSources.Length; i++)
            {
                displayOptions[i] = EditorCore.MediaSources[i].name;
            }
            _choiceIndex = EditorGUILayout.Popup("Select Media Source", _choiceIndex, displayOptions);

            GUILayout.BeginHorizontal();
            GUILayout.Label("Description:", GUILayout.Width(100));
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.TextArea(EditorCore.MediaSources[_choiceIndex].description);
            EditorGUI.EndDisabledGroup();
            GUILayout.EndHorizontal();

            GUILayout.Space(20);
            GUILayout.BeginHorizontal();
            GUILayout.Label("Projection Type");
            if (latlong)
            {
                GUI.color = Color.green;
            }
            if (GUILayout.Button("Latitude Longitude", EditorStyles.miniButtonLeft))
            {
                latlong = true;
            }
            GUI.color = Color.white;
            if (!latlong)
            {
                GUI.color = Color.green;
            }
            if (GUILayout.Button("Cubemap", EditorStyles.miniButtonRight))
            {
                latlong = false;
            }
            GUI.color = Color.white;
            GUILayout.EndHorizontal();


            EditorGUI.BeginDisabledGroup(selectedClip == null || string.IsNullOrEmpty(EditorCore.MediaSources[_choiceIndex].name));
            if (GUILayout.Button("Create"))
            {
                CreateAssets();
            }
            EditorGUI.EndDisabledGroup();
        }
        public override void OnInspectorGUI()
        {
            MediaComponent m = (MediaComponent)target;

            var meshrenderer = m.GetComponent <MeshRenderer>();

            if (m.VideoPlayer == null && meshrenderer != null)
            {
                //image
            }
            else if (m.VideoPlayer != null)
            {
                //video
            }
            else
            {
                EditorGUILayout.HelpBox("If media is a video, Video Player must be set\nIf media is an image, must have mesh render on this gameobject", MessageType.Error);
                //not set up
            }

            //display script field
            var script = serializedObject.FindProperty("m_Script");

            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.PropertyField(script, true, new GUILayoutOption[0]);
            EditorGUI.EndDisabledGroup();

            //video player component
            m.VideoPlayer = (UnityEngine.Video.VideoPlayer)EditorGUILayout.ObjectField("Video Player", m.VideoPlayer, typeof(UnityEngine.Video.VideoPlayer), true);

            //media source
            EditorGUI.BeginDisabledGroup(true);
            EditorGUILayout.TextField("Media Source", m.MediaSource);
            EditorGUI.EndDisabledGroup();

            EditorGUILayout.BeginHorizontal();
            string[] displayOptions = new string[EditorCore.MediaSources.Length];
            if (displayOptions.Length == 0)
            {
                if (GUILayout.Button("Refresh Media"))
                {
                    EditorCore.RefreshMediaSources();
                }
                EditorGUILayout.EndHorizontal();
                return;
            }

            if (!string.IsNullOrEmpty(m.MediaSource) && _choiceIndex == 0 && displayOptions.Length > 0)
            {
                //try once to select the correct media
                for (int i = 0; i < EditorCore.MediaSources.Length; i++)
                {
                    if (EditorCore.MediaSources[i].uploadId == m.MediaSource)
                    {
                        _choiceIndex = i;
                    }
                }
            }

            for (int i = 0; i < EditorCore.MediaSources.Length; i++)
            {
                displayOptions[i] = EditorCore.MediaSources[i].name;
            }
            _choiceIndex = EditorGUILayout.Popup("Select Media Source", _choiceIndex, displayOptions);


            if (m.MediaSource != EditorCore.MediaSources[_choiceIndex].uploadId)
            {
                GUI.color = Color.green;
            }

            if (GUILayout.Button("Save", GUILayout.Width(40)))
            {
                m.MediaSource = EditorCore.MediaSources[_choiceIndex].uploadId;
            }

            GUI.color = Color.white;
            EditorGUILayout.EndHorizontal();

            EditorGUI.BeginDisabledGroup(true);

            //EditorGUILayout.LabelField("Id", EditorCore.MediaSources[_choiceIndex].uploadId);
            //GUILayout.Label("Description");
            EditorGUILayout.TextArea(EditorCore.MediaSources[_choiceIndex].description);

            EditorGUI.EndDisabledGroup();

            if (GUI.changed)
            {
                UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene());
            }
        }