using UnityEngine; using UnityEditor; //----------------------------------------------------------------------------- // Copyright 2015-2021 RenderHeads Ltd. All rights reserved. //----------------------------------------------------------------------------- namespace RenderHeads.Media.AVProVideo.Editor { /// /// About/Help section of the editor for the MediaPlayer component /// public partial class MediaPlayerEditor : UnityEditor.Editor { public const string LinkPluginWebsite = "https://renderheads.com/products/avpro-video/"; public const string LinkForumPage = "https://forum.unity.com/threads/released-avpro-video-complete-video-playback-solution.385611/"; public const string LinkForumLastPage = "https://forum.unity.com/threads/released-avpro-video-complete-video-playback-solution.385611/page-100"; public const string LinkGithubIssues = "https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues"; public const string LinkGithubIssuesNew = "https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues/new/choose"; public const string LinkAssetStorePage = "https://assetstore.unity.com/packages/slug/181844?aid=1101lcNgx"; public const string LinkUserManual = "https://www.renderheads.com/content/docs/AVProVideo/"; public const string LinkScriptingClassReference = "https://www.renderheads.com/content/docs/AVProVideo/api/RenderHeads.Media.AVProVideo.html"; public const string LinkPurchase = "https://www.renderheads.com/content/docs/AVProVideo/articles/download.html"; private struct Native { #if UNITY_EDITOR_WIN [System.Runtime.InteropServices.DllImport("AVProVideo")] public static extern System.IntPtr GetPluginVersion(); #elif UNITY_EDITOR_OSX [System.Runtime.InteropServices.DllImport("AVProVideo")] public static extern System.IntPtr AVPPluginGetVersionStringPointer(); #endif } private static string GetPluginVersion() { string version = "Unknown"; try { #if UNITY_EDITOR_WIN version = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Native.GetPluginVersion()); #elif UNITY_EDITOR_OSX version = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Native.AVPPluginGetVersionStringPointer()); #endif } catch (System.DllNotFoundException e) { #if UNITY_EDITOR_OSX Debug.LogError("[AVProVideo] Failed to load Bundle. " + e.Message); #else Debug.LogError("[AVProVideo] Failed to load DLL. " + e.Message); #endif } return version; } private static Texture2D GetIcon(Texture2D icon) { if (icon == null) { icon = Resources.Load("AVProVideoIcon"); } return icon; } private void OnInspectorGUI_About() { EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); _icon = GetIcon(_icon); if (_icon != null) { GUILayout.Label(new GUIContent(_icon)); } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUI.color = Color.yellow; EditorHelper.IMGUI.CentreLabel("AVPro Video by RenderHeads Ltd", EditorStyles.boldLabel); EditorHelper.IMGUI.CentreLabel("version " + Helper.AVProVideoVersion + " (plugin v" + GetPluginVersion() + ")"); GUI.color = Color.white; GUI.backgroundColor = Color.white; if (_icon != null) { GUILayout.Space(8f); ShowSupportWindowButton(); GUILayout.Space(8f); } EditorGUILayout.LabelField("Links", EditorStyles.boldLabel); GUILayout.Space(8f); EditorGUILayout.LabelField("Documentation"); if (GUILayout.Button("User Manual, FAQ, Release Notes", GUILayout.ExpandWidth(false))) { Application.OpenURL(LinkUserManual); } if (GUILayout.Button("Scripting Class Reference", GUILayout.ExpandWidth(false))) { Application.OpenURL(LinkScriptingClassReference); } GUILayout.Space(16f); GUILayout.Label("Bugs and Support"); if (GUILayout.Button("Open Help & Support", GUILayout.ExpandWidth(false))) { SupportWindow.Init(); } GUILayout.Space(16f); GUILayout.Label("Rate and Review (★★★★☆)", GUILayout.ExpandWidth(false)); if (GUILayout.Button("Asset Store Page", GUILayout.ExpandWidth(false))) { Application.OpenURL(LinkAssetStorePage); } GUILayout.Space(16f); GUILayout.Label("Community"); if (GUILayout.Button("Forum Thread", GUILayout.ExpandWidth(false))) { Application.OpenURL(LinkForumPage); } GUILayout.Space(16f); GUILayout.Label("Homepage", GUILayout.ExpandWidth(false)); if (GUILayout.Button("Official Website", GUILayout.ExpandWidth(false))) { Application.OpenURL(LinkPluginWebsite); } GUILayout.Space(32f); EditorGUILayout.LabelField("Credits", EditorStyles.boldLabel); GUILayout.Space(8f); EditorHelper.IMGUI.CentreLabel("Programming", EditorStyles.boldLabel); EditorHelper.IMGUI.CentreLabel("Andrew Griffiths"); EditorHelper.IMGUI.CentreLabel("Morris Butler"); EditorHelper.IMGUI.CentreLabel("Ste Butcher"); EditorHelper.IMGUI.CentreLabel("Richard Turnbull"); EditorHelper.IMGUI.CentreLabel("Sunrise Wang"); EditorHelper.IMGUI.CentreLabel("Muano Mainganye"); EditorHelper.IMGUI.CentreLabel("Shane Marks"); GUILayout.Space(8f); EditorHelper.IMGUI.CentreLabel("Graphics", EditorStyles.boldLabel); GUILayout.Space(8f); EditorHelper.IMGUI.CentreLabel("Jeff Rusch"); EditorHelper.IMGUI.CentreLabel("Luke Godward"); GUILayout.Space(32f); } } }