OVRManifestPreprocessor.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using UnityEngine;
  2. using UnityEditor;
  3. using System.IO;
  4. class OVRManifestPreprocessor
  5. {
  6. [MenuItem("Tools/Oculus/Create store-compatible AndroidManifest.xml", false, 100000)]
  7. public static void GenerateManifestForSubmission()
  8. {
  9. var so = ScriptableObject.CreateInstance(typeof(OVRPluginUpdaterStub));
  10. var script = MonoScript.FromScriptableObject(so);
  11. string assetPath = AssetDatabase.GetAssetPath(script);
  12. string editorDir = Directory.GetParent(assetPath).FullName;
  13. string srcFile = editorDir + "/AndroidManifest.OVRSubmission.xml";
  14. if (!File.Exists(srcFile))
  15. {
  16. Debug.LogError("Cannot find Android manifest template for submission." +
  17. " Please delete the OVR folder and reimport the Oculus Utilities.");
  18. return;
  19. }
  20. string manifestFolder = Application.dataPath + "/Plugins/Android";
  21. if (!Directory.Exists(manifestFolder))
  22. Directory.CreateDirectory(manifestFolder);
  23. string dstFile = manifestFolder + "/AndroidManifest.xml";
  24. if (File.Exists(dstFile))
  25. {
  26. Debug.LogWarning("Cannot create Oculus store-compatible manifest due to conflicting file: \""
  27. + dstFile + "\". Please remove it and try again.");
  28. return;
  29. }
  30. File.Copy(srcFile, dstFile);
  31. AssetDatabase.Refresh();
  32. }
  33. [MenuItem("Tools/Oculus/Remove AndroidManifest.xml")]
  34. public static void RemoveAndroidManifest()
  35. {
  36. AssetDatabase.DeleteAsset("Assets/Plugins/Android/AndroidManifest.xml");
  37. AssetDatabase.Refresh();
  38. }
  39. }