Skip to content

New Shader Graph serialization format #222

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 72 commits into from
Apr 30, 2020
Merged
Show file tree
Hide file tree
Changes from 67 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
d1338ec
Add serialization core
pbbastian Mar 10, 2020
e7ee694
Convert GraphData to JsonObject, and use MultiJson in MaterialGraphEd…
pbbastian Mar 10, 2020
96f6acd
Remove tempId
pbbastian Mar 10, 2020
7f5cf29
Fix tests
pbbastian Mar 10, 2020
3d670b3
Fix remaining cases of `JsonUtility.FromJson<GraphData>`
pbbastian Mar 11, 2020
000a07c
Replace GraphData serialisation with MultiJson
pbbastian Mar 11, 2020
efb3887
Strong & weak references
pbbastian Mar 12, 2020
8d5d714
Unify variable names to `value` to avoid confusion
pbbastian Mar 12, 2020
f28825e
Use `MultiJson` in `GraphObject`
pbbastian Mar 12, 2020
7f0d87b
Remove unused variable from TempId removal
pbbastian Mar 12, 2020
f383263
Get rid of `FakeScriptableObject`
pbbastian Mar 16, 2020
b414433
Enumerables for weak/strong references
pbbastian Mar 17, 2020
fde60c2
Forgot a FakeScriptableObject upgrade path
pbbastian Mar 17, 2020
44bc94d
Convert AbstractMaterialNode to JsonObject
pbbastian Mar 17, 2020
a90d02a
Fix formatting in MinimalGraphData
pbbastian Mar 17, 2020
ddb5c51
Upgrade MinimalGraphData to use MultiJson
pbbastian Mar 17, 2020
707a9ef
Comment out copy paste and to sub graph implementation for now
pbbastian Mar 18, 2020
2d453bb
AbstractMaterialNode guid -> id
pbbastian Mar 18, 2020
4f73984
Fix master node going blank after undo
pbbastian Mar 19, 2020
7a7001e
MaterialSlot -> JsonObject
pbbastian Mar 19, 2020
7b4d640
Fix undo messing up previews
pbbastian Mar 20, 2020
93eac8c
ShaderInput -> JsonObject
pbbastian Mar 20, 2020
94c8349
More equality members for JsonData and JsonRef
pbbastian Mar 20, 2020
dfaed33
temp
pbbastian Apr 2, 2020
050323b
Fix compilation errors
pbbastian Apr 15, 2020
6e4bda2
Removed commented out code for easier merging
pbbastian Apr 15, 2020
0ae225c
Merge remote-tracking branch 'origin/master' into sg/happy-json-v2
pbbastian Apr 15, 2020
dea7f52
Fixes for merge
pbbastian Apr 15, 2020
280afa4
Add ID rewrite support to MultiJson
pbbastian Apr 16, 2020
32fa91e
Internal copy paste working (i.e. no references to data not copied)
pbbastian Apr 16, 2020
621d267
External copy/paste working
pbbastian Apr 16, 2020
10284b3
Fix error when endpoint of edge doesn't exist
pbbastian Apr 16, 2020
31371aa
adding group and sticky note json support and fixing bugs on import o…
elizabeth-legros Apr 16, 2020
9589fa6
Handle null edges during pasting
pbbastian Apr 17, 2020
c3df569
Fix tests
pbbastian Apr 17, 2020
2984acf
Avoid boxing enumerators in GraphData
pbbastian Apr 17, 2020
d60613b
Make emptyObjectId readonly
pbbastian Apr 17, 2020
be26178
Move ShaderInput names to objectId and patch up refs
Kink3d Apr 17, 2020
1ccd819
Move VFX property sets to objectId
Kink3d Apr 17, 2020
45212c4
Bring back ToSubGraph
pbbastian Apr 17, 2020
d1878f3
Allow passing in existing root object to MultiJson.Deserialize
pbbastian Apr 17, 2020
211ed5c
updating objectID refs to groups to JsonRefs
elizabeth-legros Apr 17, 2020
3b61351
Fix compile errors
pbbastian Apr 20, 2020
be9af8d
Fix import error
pbbastian Apr 20, 2020
82ebb48
Update copy paste to work with group and sticky note refs
pbbastian Apr 20, 2020
fc17096
Fix property/keyword copy paste issues
pbbastian Apr 20, 2020
fb29796
subgraph asset multijson serialization
elizabeth-legros Apr 20, 2020
f40c716
Merge remote-tracking branch 'origin/sg/happy-json-v2-shaderinput' in…
pbbastian Apr 21, 2020
69f33b1
Fix some tests, and remove irrelevant tests
pbbastian Apr 21, 2020
9af3e3a
Fix materialslot test and add first pass import upgrade test with exa…
elizabeth-legros Apr 21, 2020
0ab8734
Adding a bunch of 7.x and 8.x graphs for testing
elizabeth-legros Apr 21, 2020
b004283
fixing empty folder fun
elizabeth-legros Apr 21, 2020
8e00e07
Merge remote-tracking branch 'origin/master' into sg/happy-json-v2
pbbastian Apr 22, 2020
59f6671
Fix issue after merge
pbbastian Apr 22, 2020
9548499
Update change log
pbbastian Apr 22, 2020
3bb0c42
Fix issue when creating new graphs
pbbastian Apr 22, 2020
2275c86
fix some issues with creating new shadergraphs
elizabeth-legros Apr 22, 2020
0f6f770
Merge branch 'sg/happy-json-v2' of github.com:Unity-Technologies/Grap…
elizabeth-legros Apr 22, 2020
0e860be
fix uncaught merge issue
elizabeth-legros Apr 22, 2020
80b9eae
Bump com.unity.testframework.graphics version
pbbastian Apr 23, 2020
e548d2d
Bump test dependencies
pbbastian Apr 23, 2020
faae42f
fix UTP reporter version
pbbastian Apr 23, 2020
9f05249
next utp reporter version
pbbastian Apr 23, 2020
b1cf55b
Merge remote-tracking branch 'origin/master' into sg/happy-json-v2
pbbastian Apr 23, 2020
d4918fd
Copy more default values in MaterialSlot
pbbastian Apr 23, 2020
5cd25a1
Fix shader property upgrade issue
pbbastian Apr 24, 2020
2f166fb
Fix color property upgrade
pbbastian Apr 27, 2020
54cc796
Merge remote-tracking branch 'origin/master' into sg/happy-json-v2
pbbastian Apr 28, 2020
f4b2a26
Merge branch 'master' into sg/happy-json-v2
pbbastian Apr 29, 2020
debe732
Fix merge errors
pbbastian Apr 29, 2020
5fb6abc
Merge remote-tracking branch 'origin/master' into sg/happy-json-v2
pbbastian Apr 30, 2020
8e40500
merge fixes
pbbastian Apr 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"com.unity.render-pipelines.core": "file:../../../com.unity.render-pipelines.core",
"com.unity.render-pipelines.high-definition": "file:../../../com.unity.render-pipelines.high-definition",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.0.13",
"com.unity.test-framework": "1.1.14",
"com.unity.testframework.graphics": "file:../../../com.unity.testframework.graphics",
"com.unity.testing.hdrp": "file:../../../com.unity.testing.hdrp",
"com.unity.textmeshpro": "2.0.1",
Expand Down
4 changes: 2 additions & 2 deletions TestProjects/HDRP_DXR_Tests/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
"com.unity.render-pipelines.high-definition": "file:../../../com.unity.render-pipelines.high-definition",
"com.unity.render-pipelines.high-definition-config": "file:../LocalPackages/com.unity.render-pipelines.high-definition-config",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.1.11",
"com.unity.testframework.graphics": "7.1.12-preview",
"com.unity.test-framework": "1.1.14",
"com.unity.testframework.graphics": "7.1.13-preview",
"com.unity.testing.hdrp": "file:../../../com.unity.testing.hdrp",
"com.unity.textmeshpro": "3.0.0-preview.1",
"com.unity.timeline": "1.2.6",
Expand Down
4 changes: 2 additions & 2 deletions TestProjects/HDRP_PerformanceTests/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"com.unity.render-pipelines.high-definition-config": "file:../../../com.unity.render-pipelines.high-definition-config",
"com.unity.shaderanalysis": "file:../../../com.unity.shaderanalysis",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework.build": "0.0.1-preview.3",
"com.unity.test-framework": "1.1.11",
"com.unity.test-framework.build": "0.0.1-preview.12",
"com.unity.test-framework": "1.1.14",
"com.unity.test-framework.performance": "2.0.8-preview",
"com.unity.testing.graphics-performance": "file:../../../com.unity.testing.graphics-performance",
"com.unity.ugui": "1.0.0",
Expand Down
8 changes: 4 additions & 4 deletions TestProjects/HDRP_RuntimeTests/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
"com.unity.render-pipelines.high-definition": "file:../../../com.unity.render-pipelines.high-definition",
"com.unity.render-pipelines.high-definition-config": "file:../../../com.unity.render-pipelines.high-definition-config",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.1.5",
"com.unity.test-framework.build": "0.0.1-preview.3",
"com.unity.test-framework.utp-reporter": "0.1.3-preview.17",
"com.unity.testframework.graphics": "7.1.12-preview",
"com.unity.test-framework": "1.1.14",
"com.unity.test-framework.build": "0.0.1-preview.12",
"com.unity.test-framework.utp-reporter": "1.0.0-preview",
"com.unity.testframework.graphics": "7.1.13-preview",
"com.unity.testing.hdrp": "file:../../../com.unity.testing.hdrp",
"com.unity.ugui": "1.0.0",
"com.unity.visualeffectgraph": "file:../../../com.unity.visualeffectgraph",
Expand Down
4 changes: 2 additions & 2 deletions TestProjects/HDRP_Tests/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"com.unity.render-pipelines.high-definition": "file:../../../com.unity.render-pipelines.high-definition",
"com.unity.render-pipelines.high-definition-config": "file:../../../com.unity.render-pipelines.high-definition-config",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.1.5",
"com.unity.testframework.graphics": "7.1.12-preview",
"com.unity.test-framework": "1.1.14",
"com.unity.testframework.graphics": "7.1.13-preview",
"com.unity.testing.hdrp": "file:../../../com.unity.testing.hdrp",
"com.unity.ugui": "1.0.0",
"com.unity.visualeffectgraph": "file:../../../com.unity.visualeffectgraph",
Expand Down
8 changes: 4 additions & 4 deletions TestProjects/SRP_SmokeTest/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"com.unity.render-pipelines.high-definition-config": "file:../../../com.unity.render-pipelines.high-definition-config",
"com.unity.render-pipelines.universal": "file:../../../com.unity.render-pipelines.universal",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.1.5",
"com.unity.testframework.graphics": "7.1.12-preview",
"com.unity.test-framework": "1.1.14",
"com.unity.testframework.graphics": "7.1.13-preview",
"com.unity.ugui": "1.0.0",
"com.unity.visualeffectgraph": "file:../../../com.unity.visualeffectgraph",
"com.unity.xr.legacyinputhelpers": "2.1.2",
Expand Down Expand Up @@ -41,8 +41,8 @@
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0",
"com.unity.test-framework.utp-reporter": "0.1.3-preview.17",
"com.unity.test-framework.build": "0.0.1-preview.3"
"com.unity.test-framework.utp-reporter": "1.0.0-preview",
"com.unity.test-framework.build": "0.0.1-preview.12"
},
"testables": [
"com.unity.render-pipelines.core",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void ClearGraph()
var allNodes = m_Graph.GetNodes<AbstractMaterialNode>().ToArray();
foreach (var node in allNodes)
{
if(m_Graph.activeOutputNodeGuid != node.guid)
if(m_Graph.outputNode != node)
m_Graph.RemoveNode(node);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using UnityEditor.Graphing;
using UnityEditor.Graphing.Util;
using UnityEditor.Rendering;
using UnityEditor.ShaderGraph.Serialization;
using UnityEngine;

namespace UnityEditor.ShaderGraph.UnitTests
Expand All @@ -17,9 +18,10 @@ public void Initialize(string graphPath)
hideFlags = HideFlags.HideAndDontSave;

var textGraph = File.ReadAllText(graphPath, Encoding.UTF8);
graph = JsonUtility.FromJson<GraphData>(textGraph);
graph = new GraphData();
graph.messageManager = new MessageManager();
graph.assetGuid = AssetDatabase.AssetPathToGUID(graphPath);
MultiJson.Deserialize(graph, textGraph);
graph.OnEnable();
graph.ValidateGraph();
}
Expand Down Expand Up @@ -59,7 +61,7 @@ public void TestAllCombos()
var edge = m_Graph.GetEdges(slot.slotReference).FirstOrDefault();
if (edge == null) continue;

var outputNode = m_Graph.GetNodeFromGuid(edge.outputSlot.nodeGuid);
var outputNode = edge.outputSlot.node;
var outputSlot = outputNode.GetOutputSlots<MaterialSlot>().First(s => s.id == edge.outputSlot.slotId);
var curOutputType = outputSlot.valueType.ToConcreteSlotValueType();

Expand All @@ -73,7 +75,7 @@ public void TestAllCombos()
// Verify all errors are expected
foreach (var message in m_Graph.messageManager.GetNodeMessages())
{
if (message.Key.Equals(m_CFNode.guid) && message.Value.Exists(msg =>
if (message.Key.Equals(m_CFNode.objectId) && message.Value.Exists(msg =>
msg.severity == ShaderCompilerMessageSeverity.Error))
{
Assert.IsFalse(SlotValueHelper.AreCompatible(slotValType, curOutputType),
Expand Down Expand Up @@ -105,17 +107,17 @@ public void RedirectNodes_DoNotAffectOutput()
var edge = m_Graph.GetEdges(slot.slotReference).FirstOrDefault();
if (edge == null) continue;

var outputNode = m_Graph.GetNodeFromGuid(edge.outputSlot.nodeGuid);
var outputNode = edge.outputSlot.node;
var outputSlot = outputNode.GetOutputSlots<MaterialSlot>().First(s => s.id == edge.outputSlot.slotId);

RedirectNodeData.Create(m_Graph, outputSlot.valueType, Vector2.zero, edge.inputSlot, edge.outputSlot, Guid.Empty);
RedirectNodeData.Create(m_Graph, outputSlot.valueType, Vector2.zero, edge.inputSlot, edge.outputSlot, null);

m_Graph.ValidateGraph();

// Verify all errors are expected
foreach (var message in m_Graph.messageManager.GetNodeMessages())
{
if (message.Key.Equals(m_CFNode.guid) && message.Value.Exists(msg =>
if (message.Key.Equals(m_CFNode.objectId) && message.Value.Exists(msg =>
msg.severity == ShaderCompilerMessageSeverity.Error))
{
Assert.Fail(message.Value.FirstOrDefault().message);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using NUnit.Framework;
using System.Collections;
using System.IO;
using UnityEditor.Graphing.Util;
using UnityEditor.ShaderGraph.Serialization;
using UnityEngine;

namespace UnityEditor.ShaderGraph.UnitTests
{
[TestFixture]
class ImportUpdateTests
{
public class ImportCases : IEnumerable
{
private const string kGraphsLocation = "PreviousGraphVersions/";
public IEnumerator GetEnumerator()
{
return Directory.GetFiles(Application.dataPath + "/../" + kGraphsLocation, "*", SearchOption.AllDirectories).GetEnumerator();
}
}

[OneTimeSetUp]
public void Setup()
{
if(!AssetDatabase.IsValidFolder("Assets/Testing/ImportTests"))
{
AssetDatabase.CreateFolder("Assets/Testing", "ImportTests");
}
}

[TestCaseSource(typeof(ImportCases))]
public void CopyOverAndImport(string assetPath)
{
string fileName = Path.GetFileName(assetPath);
string fileContents = File.ReadAllText(assetPath);
string localFilePath = "Assets/Testing/ImportTests/" + fileName;
File.WriteAllText(Application.dataPath + "/Testing/ImportTests/" + fileName, fileContents);
AssetDatabase.ImportAsset(localFilePath);
var graphGuid = AssetDatabase.AssetPathToGUID(localFilePath);
var messageManager = new MessageManager();
GraphData graphData = new GraphData() { assetGuid = graphGuid, messageManager = messageManager };
MultiJson.Deserialize(graphData, fileContents);
graphData.OnEnable();
graphData.ValidateGraph();
}

[OneTimeTearDown]
public void Cleanup()
{
foreach (string assetGuid in AssetDatabase.FindAssets("*", new string[] { "Assets/Testing/ImportTests" }))
{
Debug.Log(AssetDatabase.GUIDToAssetPath(assetGuid));
AssetDatabase.DeleteAsset(AssetDatabase.GUIDToAssetPath(assetGuid));
}
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions TestProjects/ShaderGraph/Assets/CommonAssets/Editor/KeywordTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ public void KeywordNodesHaveCorrectPorts()

foreach(KeywordNode keywordNode in keywordNodes)
{
ShaderKeyword keyword = m_Graph.keywords.Where(x => x.guid == keywordNode.keywordGuid).FirstOrDefault();
ShaderKeyword keyword = keywordNode.keyword;
if(keyword == null)
{
Assert.Fail("No matching Keyword found in graph.");
Expand Down Expand Up @@ -292,10 +292,10 @@ public void CanGetPermutationMapPerNode()
}

var keywordNodes = m_Graph.GetNodes<KeywordNode>().ToList();
KeywordNode booleanANode = keywordNodes.Where(x => x.keywordGuid == booleanAKeyword.guid).FirstOrDefault();
KeywordNode booleanBNode = keywordNodes.Where(x => x.keywordGuid == booleanBKeyword.guid).FirstOrDefault();
KeywordNode enumANode = keywordNodes.Where(x => x.keywordGuid == enumAKeyword.guid).FirstOrDefault();
KeywordNode enumBNode = keywordNodes.Where(x => x.keywordGuid == enumBKeyword.guid).FirstOrDefault();
KeywordNode booleanANode = keywordNodes.Where(x => x.keyword == booleanAKeyword).FirstOrDefault();
KeywordNode booleanBNode = keywordNodes.Where(x => x.keyword == booleanBKeyword).FirstOrDefault();
KeywordNode enumANode = keywordNodes.Where(x => x.keyword == enumAKeyword).FirstOrDefault();
KeywordNode enumBNode = keywordNodes.Where(x => x.keyword == enumBKeyword).FirstOrDefault();
if(booleanANode == null || booleanBNode == null || enumANode == null || enumBNode == null)
{
Assert.Fail("One or more Keywords Nodes not in graph.");
Expand Down Expand Up @@ -329,8 +329,8 @@ public void KeywordEnumCanAddAndRemovePort()
}

var keywordNodes = m_Graph.GetNodes<KeywordNode>().ToList();
KeywordNode enumANode = keywordNodes.Where(x => x.keywordGuid == enumAKeyword.guid).FirstOrDefault();
KeywordNode enumBNode = keywordNodes.Where(x => x.keywordGuid == enumBKeyword.guid).FirstOrDefault();
KeywordNode enumANode = keywordNodes.Where(x => x.keyword == enumAKeyword).FirstOrDefault();
KeywordNode enumBNode = keywordNodes.Where(x => x.keyword == enumBKeyword).FirstOrDefault();
if (enumANode == null || enumBNode == null)
{
Assert.Fail("One or more Keywords Nodes not in graph.");
Expand All @@ -353,8 +353,8 @@ public void KeywordEnumCanAddAndRemovePort()
enumANode.UpdateNode();
enumBNode.UpdateNode();

Assert.AreEqual(7, enumANode.GetSlots<ISlot>().Count(), "Enum A Node has incorrect # of entries after adding");
Assert.AreEqual(6, enumBNode.GetSlots<ISlot>().Count(), "Enum B Node has incorrect # of entries after adding");
Assert.AreEqual(7, enumANode.GetSlots<MaterialSlot>().Count(), "Enum A Node has incorrect # of entries after adding");
Assert.AreEqual(6, enumBNode.GetSlots<MaterialSlot>().Count(), "Enum B Node has incorrect # of entries after adding");

enumAKeyword.entries.Remove(newEntry1);
enumAKeyword.entries.Remove(newEntry2);
Expand All @@ -367,8 +367,8 @@ public void KeywordEnumCanAddAndRemovePort()
enumANode.UpdateNode();
enumBNode.UpdateNode();

Assert.AreEqual(4, enumANode.GetSlots<ISlot>().Count(), "Enum A Node has incorrect # of entries after removing");
Assert.AreEqual(5, enumBNode.GetSlots<ISlot>().Count(), "Enum B Node has incorrect # of entries after removing");
Assert.AreEqual(4, enumANode.GetSlots<MaterialSlot>().Count(), "Enum A Node has incorrect # of entries after removing");
Assert.AreEqual(5, enumBNode.GetSlots<MaterialSlot>().Count(), "Enum B Node has incorrect # of entries after removing");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public void LoadGraph()
Assert.AreNotEqual(0, previewNodes.Count, $"No PreviewNode found in {kGraphName}.");
foreach(PreviewNode node in previewNodes)
{
GroupData group = m_Graph.groups.Where(x => x.guid == node.groupGuid).FirstOrDefault();
Assert.NotNull(m_Graph, $"Invalid group data found for PreviewNode with guid {node.guid}");
GroupData group = m_Graph.groups.Where(x => x == node.group).FirstOrDefault();
Assert.NotNull(m_Graph, $"Invalid group data found for PreviewNode with guid {node.objectId}");
m_TestNodes.Add(group.title, node);
}
}
Expand Down
8 changes: 8 additions & 0 deletions TestProjects/ShaderGraph/Assets/Testing/ImportTests.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions TestProjects/ShaderGraph/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
"com.unity.render-pipelines.core": "file:../../../com.unity.render-pipelines.core",
"com.unity.render-pipelines.universal": "file:../../../com.unity.render-pipelines.universal",
"com.unity.shadergraph": "file:../../../com.unity.shadergraph",
"com.unity.test-framework": "1.1.11",
"com.unity.test-framework": "1.1.14",
"com.unity.test-framework.build": "0.0.1-preview.12",
"com.unity.test-framework.utp-reporter": "0.1.3-preview.18",
"com.unity.testframework.graphics": "7.1.12-preview",
"com.unity.test-framework.utp-reporter": "1.0.0-preview",
"com.unity.testframework.graphics": "7.1.13-preview",
"com.unity.testtools.codecoverage": "0.2.2-preview",
"com.unity.ugui": "1.0.0",
"com.unity.xr.interactionsubsystems": "1.0.1",
Expand Down
Loading