SW 중심대학 OSS GIT 서버 박건태, 이승준, 고기완, 이준호 새로운 배포
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.0 KiB

4 years ago
  1. #if UNITY_IOS
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.IO.Compression;
  6. using System.Text;
  7. using UnityEngine;
  8. using UnityEditor.iOS.Xcode;
  9. namespace UnityEditor.XR.ARKit
  10. {
  11. internal class XcodeAssetCatalog
  12. {
  13. public string name { get; set; }
  14. public XcodeAssetCatalog(string name)
  15. {
  16. this.name = name;
  17. }
  18. public void AddResourceGroup(ARResourceGroup group)
  19. {
  20. if (group == null)
  21. throw new ArgumentNullException("group");
  22. if (m_ResourceGroups.Contains(group))
  23. throw new InvalidOperationException(string.Format("Duplicate resource group '{0}'", group.name));
  24. m_ResourceGroups.Add(group);
  25. }
  26. public void WriteAndAddToPBXProject(PBXProject project, string pathToBuiltProject)
  27. {
  28. var unityTargetName = "Unity-iPhone";
  29. var relativePathToAssetCatalog = Path.Combine(unityTargetName, name + ".xcassets");
  30. var fullPathToAssetCatalog = Path.Combine(pathToBuiltProject, relativePathToAssetCatalog);
  31. // Create the asset catalog, destroying an existing one.
  32. if (Directory.Exists(fullPathToAssetCatalog))
  33. Directory.Delete(fullPathToAssetCatalog, true);
  34. Directory.CreateDirectory(fullPathToAssetCatalog);
  35. // Add it to Xcode's build
  36. var folderGuid = project.AddFile(relativePathToAssetCatalog, relativePathToAssetCatalog);
  37. #if UNITY_2019_3_OR_NEWER
  38. var targetGuid = project.GetUnityMainTargetGuid();
  39. #else
  40. var targetGuid = project.TargetGuidByName(unityTargetName);
  41. #endif
  42. project.AddFileToBuild(targetGuid, folderGuid);
  43. foreach (var resourceGroup in m_ResourceGroups)
  44. {
  45. resourceGroup.Write(fullPathToAssetCatalog);
  46. }
  47. }
  48. List<ARResourceGroup> m_ResourceGroups = new List<ARResourceGroup>();
  49. }
  50. }
  51. #endif