Skip to content

Commit c4a45eb

Browse files
authored
Merge pull request #297 from smitdylan2001/feature/sdkUpgrade
Improve SDK workflow
2 parents 7d237f9 + bd5e481 commit c4a45eb

File tree

49 files changed

+1734
-3084
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1734
-3084
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,5 @@ ZEDCamera/Assets/LocalTest/
4444
ZEDCamera/Logs/
4545
ZEDCamera/UserSettings/
4646
ZEDCamera/.vsconfig
47+
48+
ZEDCamera/Assets/Samples.meta
Lines changed: 126 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,127 @@
1-
using System.Collections.Generic;
2-
using System.Linq;
3-
using UnityEditor;
4-
using UnityEngine;
5-
using UnityEngine.Rendering;
6-
7-
[InitializeOnLoad]
8-
public class RenderingPipelineDefines
9-
{
10-
enum PipelineType
11-
{
12-
Unsupported,
13-
BuiltInPipeline,
14-
UniversalPipeline,
15-
HDPipeline
16-
}
17-
18-
static RenderingPipelineDefines()
19-
{
20-
UpdateDefines();
21-
}
22-
23-
/// <summary>
24-
/// Update the unity pipeline defines for URP
25-
/// </summary>
26-
static void UpdateDefines()
27-
{
28-
var pipeline = GetPipeline();
29-
30-
if (pipeline == PipelineType.UniversalPipeline)
31-
{
32-
AddDefine("ZED_URP");
33-
}
34-
else
35-
{
36-
RemoveDefine("ZED_URP");
37-
}
38-
if (pipeline == PipelineType.HDPipeline)
39-
{
40-
AddDefine("ZED_HDRP");
41-
}
42-
else
43-
{
44-
RemoveDefine("ZED_HDRP");
45-
}
46-
}
47-
48-
49-
/// <summary>
50-
/// Returns the type of renderpipeline that is currently running
51-
/// </summary>
52-
/// <returns></returns>
53-
static PipelineType GetPipeline()
54-
{
55-
#if UNITY_2019_1_OR_NEWER
56-
if (GraphicsSettings.renderPipelineAsset != null)
57-
{
58-
// SRP
59-
var srpType = GraphicsSettings.renderPipelineAsset.GetType().ToString();
60-
if (srpType.Contains("HDRenderPipelineAsset"))
61-
{
62-
return PipelineType.HDPipeline;
63-
}
64-
else if (srpType.Contains("UniversalRenderPipelineAsset"))
65-
{
66-
return PipelineType.UniversalPipeline;
67-
}
68-
else return PipelineType.Unsupported;
69-
}
70-
#elif UNITY_2017_1_OR_NEWER
71-
if (GraphicsSettings.renderPipelineAsset != null) {
72-
// SRP not supported before 2019
73-
return PipelineType.Unsupported;
74-
}
75-
#endif
76-
// no SRP
77-
return PipelineType.BuiltInPipeline;
78-
}
79-
80-
/// <summary>
81-
/// Add a custom define
82-
/// </summary>
83-
/// <param name="define"></param>
84-
/// <param name="buildTargetGroup"></param>
85-
public static void AddDefine(string define)
86-
{
87-
var definesList = GetDefines();
88-
if (!definesList.Contains(define))
89-
{
90-
definesList.Add(define);
91-
SetDefines(definesList);
92-
}
93-
}
94-
95-
/// <summary>
96-
/// Remove a custom define
97-
/// </summary>
98-
/// <param name="_define"></param>
99-
/// <param name="_buildTargetGroup"></param>
100-
public static void RemoveDefine(string define)
101-
{
102-
var definesList = GetDefines();
103-
if (definesList.Contains(define))
104-
{
105-
definesList.Remove(define);
106-
SetDefines(definesList);
107-
}
108-
}
109-
110-
public static List<string> GetDefines()
111-
{
112-
var target = EditorUserBuildSettings.activeBuildTarget;
113-
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
114-
var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
115-
return defines.Split(';').ToList();
116-
}
117-
118-
public static void SetDefines(List<string> definesList)
119-
{
120-
var target = EditorUserBuildSettings.activeBuildTarget;
121-
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
122-
var defines = string.Join(";", definesList.ToArray());
123-
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, defines);
124-
}
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using UnityEditor;
4+
using UnityEngine;
5+
using UnityEngine.Rendering;
6+
7+
[InitializeOnLoad]
8+
public class RenderingPipelineDefines
9+
{
10+
enum PipelineType
11+
{
12+
Unsupported,
13+
BuiltInPipeline,
14+
UniversalPipeline,
15+
HDPipeline
16+
}
17+
18+
static RenderingPipelineDefines()
19+
{
20+
UpdateDefines();
21+
}
22+
23+
/// <summary>
24+
/// Update the unity pipeline defines for URP
25+
/// </summary>
26+
static void UpdateDefines()
27+
{
28+
var pipeline = GetPipeline();
29+
30+
if (pipeline == PipelineType.UniversalPipeline)
31+
{
32+
AddDefine("ZED_URP");
33+
}
34+
else
35+
{
36+
RemoveDefine("ZED_URP");
37+
}
38+
if (pipeline == PipelineType.HDPipeline)
39+
{
40+
AddDefine("ZED_HDRP");
41+
}
42+
else
43+
{
44+
RemoveDefine("ZED_HDRP");
45+
}
46+
}
47+
48+
49+
/// <summary>
50+
/// Returns the type of renderpipeline that is currently running
51+
/// </summary>
52+
/// <returns></returns>
53+
static PipelineType GetPipeline()
54+
{
55+
#if UNITY_2019_1_OR_NEWER
56+
if (GraphicsSettings.renderPipelineAsset != null)
57+
{
58+
// SRP
59+
var srpType = GraphicsSettings.renderPipelineAsset.GetType().ToString();
60+
if (srpType.Contains("HDRenderPipelineAsset"))
61+
{
62+
return PipelineType.HDPipeline;
63+
}
64+
else if (srpType.Contains("UniversalRenderPipelineAsset"))
65+
{
66+
return PipelineType.UniversalPipeline;
67+
}
68+
else return PipelineType.Unsupported;
69+
}
70+
#elif UNITY_2017_1_OR_NEWER
71+
if (GraphicsSettings.renderPipelineAsset != null) {
72+
// SRP not supported before 2019
73+
return PipelineType.Unsupported;
74+
}
75+
#endif
76+
// no SRP
77+
return PipelineType.BuiltInPipeline;
78+
}
79+
80+
/// <summary>
81+
/// Add a custom define
82+
/// </summary>
83+
/// <param name="define"></param>
84+
/// <param name="buildTargetGroup"></param>
85+
public static void AddDefine(string define)
86+
{
87+
var definesList = GetDefines();
88+
if (!definesList.Contains(define))
89+
{
90+
Debug.Log("ZED added define: " + define);
91+
definesList.Add(define);
92+
SetDefines(definesList);
93+
}
94+
}
95+
96+
/// <summary>
97+
/// Remove a custom define
98+
/// </summary>
99+
/// <param name="_define"></param>
100+
/// <param name="_buildTargetGroup"></param>
101+
public static void RemoveDefine(string define)
102+
{
103+
var definesList = GetDefines();
104+
if (definesList.Contains(define))
105+
{
106+
Debug.Log("ZED removed define: " + define);
107+
definesList.Remove(define);
108+
SetDefines(definesList);
109+
}
110+
}
111+
112+
public static List<string> GetDefines()
113+
{
114+
var target = EditorUserBuildSettings.activeBuildTarget;
115+
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
116+
var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
117+
return defines.Split(';').ToList();
118+
}
119+
120+
public static void SetDefines(List<string> definesList)
121+
{
122+
var target = EditorUserBuildSettings.activeBuildTarget;
123+
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
124+
var defines = string.Join(";", definesList.ToArray());
125+
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, defines);
126+
}
125127
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
using UnityEngine;
2+
using UnityEditor;
3+
using UnityEditor.PackageManager.UI;
4+
using System.Linq;
5+
using sl;
6+
using System.IO;
7+
8+
public class ZEDImporters : Editor
9+
{
10+
static readonly string PackageName = "com.stereolabs.zed";
11+
static readonly string PackageVersion = ZEDCamera.PluginVersion.ToString();
12+
13+
[MenuItem("ZED/Import All Samples", false, 0)]
14+
public static void ImportAllSamplesFromPackage()
15+
{
16+
var samples = Sample.FindByPackage(PackageName, PackageVersion);
17+
18+
if(samples.Any<Sample>() == false)
19+
{
20+
Debug.LogWarning("No samples found");
21+
return;
22+
}
23+
24+
foreach (var sample in samples)
25+
{
26+
Debug.Log($"Importing ZED Sample: {sample.displayName}");
27+
sample.Import();
28+
}
29+
30+
Debug.Log("ZED Samples imported");
31+
32+
AssetDatabase.SaveAssets();
33+
AssetDatabase.Refresh();
34+
}
35+
36+
[MenuItem("ZED/Import Prefabs", false, 1)]
37+
public static void CopyPrefabsToZEDPrefabs()
38+
{
39+
string sourcePath = $"Packages/{PackageName}/Prefabs";
40+
string destinationPath = "Assets/ZED/Prefabs";
41+
42+
if (!Directory.Exists(sourcePath))
43+
{
44+
Debug.LogError($"Source path does not exist: {sourcePath}");
45+
return;
46+
}
47+
48+
if (!Directory.Exists(destinationPath))
49+
{
50+
Directory.CreateDirectory(destinationPath);
51+
}
52+
53+
CopyDirectory(sourcePath, destinationPath);
54+
55+
AssetDatabase.SaveAssets();
56+
AssetDatabase.Refresh();
57+
58+
Debug.Log("ZED Prefabs Import");
59+
}
60+
61+
private static void CopyDirectory(string sourceDir, string destinationDir)
62+
{
63+
DirectoryInfo dir = new DirectoryInfo(sourceDir);
64+
65+
if (!dir.Exists)
66+
{
67+
Debug.LogError($"Source dir does not exist: {sourceDir}");
68+
return;
69+
}
70+
71+
DirectoryInfo[] dirs = dir.GetDirectories();
72+
73+
// Get the files in the directory and copy them to the new location
74+
foreach (FileInfo file in dir.GetFiles())
75+
{
76+
string tempPath = Path.Combine(destinationDir, file.Name);
77+
file.CopyTo(tempPath, false);
78+
}
79+
80+
// Recursively copy subdirectories
81+
foreach (DirectoryInfo subdir in dirs)
82+
{
83+
string tempPath = Path.Combine(destinationDir, subdir.Name);
84+
CopyDirectory(subdir.FullName, tempPath);
85+
}
86+
}
87+
}

ZEDCamera/Assets/Editor/Scripts/ZEDImporters.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)