refactor:just another refactor

main
taoria 3 years ago
parent 9504e69478
commit 31bb16bc46
  1. 0
      GraphCreator.meta
  2. 0
      GraphCreator/Editor.meta
  3. 0
      GraphCreator/Editor/GraphCreator.cs
  4. 0
      GraphCreator/Editor/GraphCreator.cs.meta
  5. 0
      GraphCreator/Runtime.meta
  6. 0
      GraphCreator/Runtime/Blackboard.meta
  7. 0
      GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs
  8. 0
      GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs.meta
  9. 0
      GraphCreator/Runtime/GraphMetaNode.cs
  10. 0
      GraphCreator/Runtime/GraphMetaNode.cs.meta
  11. 0
      GraphCreator/Runtime/MetaGraph.cs
  12. 0
      GraphCreator/Runtime/MetaGraph.cs.meta
  13. 0
      GraphCreator/Runtime/Nodes.meta
  14. 0
      GraphCreator/Runtime/Nodes/GraphMetaNode.cs
  15. 0
      GraphCreator/Runtime/Nodes/GraphMetaNode.cs.meta
  16. 2
      TNodeCore/Editor/Binding/IModelBinding.cs
  17. 2
      TNodeCore/Editor/Blackboard/IBlackboardView.cs
  18. 8
      TNodeCore/Editor/CommentView/CommentView.cs
  19. 2
      TNodeCore/Editor/DeveloperHelper/CleanMissingTypeHelper.cs
  20. 4
      TNodeCore/Editor/EditorPersistence/GraphEditorData.cs
  21. 5
      TNodeCore/Editor/GraphData.cs
  22. 3
      TNodeCore/Editor/GraphData.cs.meta
  23. 1
      TNodeCore/Editor/GraphEditor.cs
  24. 5
      TNodeCore/Editor/Models/Comment.cs
  25. 3
      TNodeCore/Editor/Models/PlacematModel.cs
  26. 3
      TNodeCore/Editor/NodeGraphView/IDataGraphView.cs
  27. 2
      TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs
  28. 2
      TNodeCore/Editor/Serialization/NodeDataWrapper.cs
  29. 16
      TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef
  30. 3
      TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef.meta
  31. 1
      TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs
  32. 9
      TNodeCore/Runtime/Attributes/Ports/PortAttribute.cs
  33. 0
      TNodeCore/Runtime/Extensions.meta
  34. 0
      TNodeCore/Runtime/Extensions/ArrayExtensions.cs
  35. 0
      TNodeCore/Runtime/Extensions/ArrayExtensions.cs.meta
  36. 0
      TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs
  37. 0
      TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs.meta
  38. 0
      TNodeCore/Runtime/Models/EditorModel.cs
  39. 0
      TNodeCore/Runtime/Models/EditorModel.cs.meta
  40. 6
      TNodeCore/Runtime/Models/GraphData.cs
  41. 0
      TNodeCore/Runtime/Models/GraphViewModel.cs
  42. 0
      TNodeCore/Runtime/Models/GraphViewModel.cs.meta
  43. 3
      TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef
  44. 0
      TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef.meta
  45. 3
      TNodeCore/TNodeCore.asmdef
  46. 4
      TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs
  47. 2
      TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
  48. 2
      TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs
  49. 2
      TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
  50. 7
      TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
  51. 2
      TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
  52. 97
      TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
  53. 1
      TNodeGraphViewImpl/Editor/Placemats/PlacematView.cs
  54. 2
      TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs
  55. 3
      TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef
  56. 3
      Tests.meta
  57. 8
      TilemapGenerator.meta

@ -1,4 +1,4 @@
namespace TNode.TNodeCore.Editor.Binding{ namespace TNodeCore.Editor.Binding{
public interface IModelBinding<T>{ public interface IModelBinding<T>{
public T Data{ get; } public T Data{ get; }
public void Bind(T data); public void Bind(T data);

@ -2,7 +2,7 @@
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using UnityEditor; using UnityEditor;
namespace TNode.TNodeCore.Editor.Blackboard{ namespace TNodeCore.Editor.Blackboard{
/// <summary> /// <summary>
/// View of the blackboard,different in each implementation,but the same in the interface. /// View of the blackboard,different in each implementation,but the same in the interface.
/// </summary> /// </summary>

@ -1,12 +1,10 @@
using System; using TNodeCore.Editor.Binding;
using TNode.TNodeCore.Editor.Binding; using TNodeCore.Editor.Models;
using TNode.TNodeCore.Editor.Models;
using TNodeCore.Editor.NodeGraphView;
using UnityEditor.Experimental.GraphView; using UnityEditor.Experimental.GraphView;
using UnityEngine; using UnityEngine;
using UnityEngine.UIElements; using UnityEngine.UIElements;
namespace TNode.TNodeCore.Editor.CommentView{ namespace TNodeCore.Editor.CommentView{
public class CommentView:GraphElement,IModelBinding<Comment>{ public class CommentView:GraphElement,IModelBinding<Comment>{
public Comment Data => _data; public Comment Data => _data;
private Comment _data; private Comment _data;

@ -3,7 +3,7 @@ using UnityEditor;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
namespace TNode.TNodeCore.Editor.DeveloperHelper{ namespace TNodeCore.Editor.DeveloperHelper{
/// <summary> /// <summary>
/// Helper options works on 2021.3 on newer unity versions only.call this in the early version may not work /// Helper options works on 2021.3 on newer unity versions only.call this in the early version may not work
/// </summary> /// </summary>

@ -1,12 +1,10 @@
using System; using System;
using System.Collections.Generic;
using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
namespace TNode.TNodeCore.Editor.EditorPersistence{ namespace TNodeCore.Editor.EditorPersistence{
/// <summary> /// <summary>
/// Graph Editor Data hold the config of a type of graph. /// Graph Editor Data hold the config of a type of graph.
/// it's used by a graph editor to determine which implementation to use and some other config may be stored in here some days later. /// it's used by a graph editor to determine which implementation to use and some other config may be stored in here some days later.

@ -0,0 +1,5 @@
namespace TNodeCore.Editor{
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7532ed1b593c4a28bd499d79dfd12ca5
timeCreated: 1660803680

@ -1,4 +1,3 @@
using TNode.TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;

@ -1,7 +1,8 @@
using TNodeCore.Runtime.Models; using TNode.TNodeCore.Editor.Models;
using TNodeCore.Runtime.Models;
using UnityEngine; using UnityEngine;
namespace TNode.TNodeCore.Editor.Models{ namespace TNodeCore.Editor.Models{
public class Comment:EditorModel{ public class Comment:EditorModel{
[SerializeReference] [SerializeReference]
public Model CommentedModel; public Model CommentedModel;

@ -1,9 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using TNode.TNodeCore.Editor.Models;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using UnityEngine; using UnityEngine;
namespace TNode.TNodeCore.Editor.Models{ namespace TNodeCore.Editor.Models{
/// <summary> /// <summary>
/// Placemats hold the nodes /// Placemats hold the nodes
/// </summary> /// </summary>

@ -1,5 +1,4 @@
using TNode.TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
namespace TNodeCore.Editor.NodeGraphView{ namespace TNodeCore.Editor.NodeGraphView{

@ -1,7 +1,7 @@
using TNodeCore.Runtime; using TNodeCore.Runtime;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
namespace TNode.TNodeCore.Editor.Serialization{ namespace TNodeCore.Editor.Serialization{
public class BlackboardDataWrapper:DataWrapper<BlackboardDataWrapper,BlackboardData>{ public class BlackboardDataWrapper:DataWrapper<BlackboardDataWrapper,BlackboardData>{
} }
} }

@ -1,7 +1,7 @@
using TNodeCore.Runtime; using TNodeCore.Runtime;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
namespace TNode.TNodeCore.Editor.Serialization{ namespace TNodeCore.Editor.Serialization{
public class NodeDataWrapper:DataWrapper<NodeDataWrapper,NodeData>{ public class NodeDataWrapper:DataWrapper<NodeDataWrapper,NodeData>{
} }

@ -0,0 +1,16 @@
{
"name": "Taoria.TNodeCore.Editor",
"rootNamespace": "",
"references": [
"GUID:940af72691767fa47be979e5dbcf6ba0"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 646fd469059c44c3b9215226d5e1e13c
timeCreated: 1660803651

@ -1,6 +1,5 @@
using System.IO; using System.IO;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using TNode.TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;

@ -37,7 +37,16 @@ namespace TNodeCore.Runtime.Attributes.Ports{
public readonly string Name; public readonly string Name;
public readonly PortNameHandling NameHandling; public readonly PortNameHandling NameHandling;
public Type HandledType; public Type HandledType;
/// <summary>
/// Allow multiple input or output to or from this node
/// </summary>
public bool Multiple = true; public bool Multiple = true;
/// <summary>
/// Treat the according as Group Port,making each element inside the collection a port.
/// </summary>
public bool Group = false;
public string TypePath; public string TypePath;
public TypeHandling TypeHandling{ get; set; } public TypeHandling TypeHandling{ get; set; }

@ -43,8 +43,7 @@ namespace TNodeCore.Runtime.Models{
NodeDictionary.Add(node.id,node); NodeDictionary.Add(node.id,node);
} }
} }
#if UNITY_EDITOR
#if UNITY_EDITOR
[SerializeReference] [SerializeReference]
protected List<EditorModel> editorModels ; protected List<EditorModel> editorModels ;
[FormerlySerializedAs("graphViewData")] [SerializeReference] [FormerlySerializedAs("graphViewData")] [SerializeReference]
@ -65,7 +64,8 @@ namespace TNodeCore.Runtime.Models{
} }
set => graphViewModel = value; set => graphViewModel = value;
} }
#endif #endif
} }

@ -0,0 +1,3 @@
{
"name": "Taoria.TNodeCore.Runtime"
}

@ -1,3 +0,0 @@
{
"name": "TNodeCore"
}

@ -2,8 +2,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using TNode.TNodeCore.Editor.Blackboard; using TNodeCore.Editor.Blackboard;
using TNode.TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;

@ -2,8 +2,8 @@
using System.Collections; using System.Collections;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using TNode.TNodeCore.Editor.Serialization;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Editor.Serialization;
using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using TNodeGraphViewImpl.Editor.Search; using TNodeGraphViewImpl.Editor.Search;

@ -1,4 +1,4 @@
using TNode.TNodeCore.Editor.Blackboard; using TNodeCore.Editor.Blackboard;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using UnityEditor; using UnityEditor;

@ -1,6 +1,6 @@
using System.Reflection; using System.Reflection;
using TNode.TNodeCore.Editor.Serialization;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Editor.Serialization;
using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using UnityEditor; using UnityEditor;

@ -4,11 +4,12 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using TNode.TNodeCore.Editor.Blackboard;
using TNode.TNodeCore.Editor.CommentView;
using TNode.TNodeCore.Editor.EditorPersistence;
using TNode.TNodeCore.Editor.Models; using TNode.TNodeCore.Editor.Models;
using TNodeCore.Editor; using TNodeCore.Editor;
using TNodeCore.Editor.Blackboard;
using TNodeCore.Editor.CommentView;
using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.Models;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Editor.Tools.NodeCreator; using TNodeCore.Editor.Tools.NodeCreator;
using TNodeCore.Runtime.Components; using TNodeCore.Runtime.Components;

@ -1,4 +1,4 @@
using TNode.TNodeCore.Editor.Serialization; using TNodeCore.Editor.Serialization;
using TNodeCore.Extensions; using TNodeCore.Extensions;
using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;

@ -1,12 +1,15 @@
using System; using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using TNode.TNodeCore.Editor.Serialization;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Editor.Serialization;
using TNodeCore.Runtime; using TNodeCore.Runtime;
using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes;
using TNodeCore.Runtime.Attributes.Ports; using TNodeCore.Runtime.Attributes.Ports;
using TNodeCore.Runtime.Models; using TNodeCore.Runtime.Models;
using TNodeCore.Runtime.RuntimeCache;
using TNodeGraphViewImpl.Editor.Inspector; using TNodeGraphViewImpl.Editor.Inspector;
using TNodeGraphViewImpl.Editor.Ports; using TNodeGraphViewImpl.Editor.Ports;
using UnityEditor; using UnityEditor;
@ -145,6 +148,8 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
throw new Exception("Member is not a property or field"); throw new Exception("Member is not a property or field");
} }
protected virtual Type BuildPortType(PortAttribute portAttribute,PropertyInfo propertyInfo){ protected virtual Type BuildPortType(PortAttribute portAttribute,PropertyInfo propertyInfo){
switch (portAttribute.TypeHandling){ switch (portAttribute.TypeHandling){
case TypeHandling.Declared : case TypeHandling.Declared :
return propertyInfo.PropertyType; return propertyInfo.PropertyType;
@ -154,12 +159,50 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
return portAttribute.HandledType??typeof(object); return portAttribute.HandledType??typeof(object);
case TypeHandling.Path: case TypeHandling.Path:
var type = GetDataType(portAttribute.TypePath); var type = GetDataType(portAttribute.TypePath);
Debug.Log(type);
return type; return type;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
} }
public virtual Type BuildGroupPortType(PortAttribute portAttribute,PropertyInfo propertyInfo,int index){
var iList = propertyInfo.GetValue(_data) as IList;
if (iList is Array array){
switch (portAttribute.TypeHandling){
case TypeHandling.Declared:
return array.GetType().GetElementType();
case TypeHandling.Implemented:
return array.GetValue(index).GetType();
case TypeHandling.Specified:
return portAttribute.HandledType??typeof(object);
case TypeHandling.Path:
return GetDataType(portAttribute.TypePath);
default:
throw new ArgumentOutOfRangeException();
}
}
if (iList != null && iList.GetType().IsGenericType){
var genericType = iList.GetType().GetGenericArguments()[0];
switch (portAttribute.TypeHandling){
case TypeHandling.Declared:
return genericType;
case TypeHandling.Implemented:
return iList[index].GetType();
case TypeHandling.Specified:
return portAttribute.HandledType??typeof(object);
case TypeHandling.Path:
return GetDataType(portAttribute.TypePath);
default:
throw new ArgumentOutOfRangeException();
}
}
return null;
}
/// <summary> /// <summary>
/// of course you can override this method to build your own port builder /// of course you can override this method to build your own port builder
/// </summary> /// </summary>
@ -168,19 +211,38 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
foreach (var propertyInfo in propertyInfos){ foreach (var propertyInfo in propertyInfos){
if (propertyInfo.GetCustomAttributes(typeof(OutputAttribute),true).FirstOrDefault() is OutputAttribute attribute){ if (propertyInfo.GetCustomAttributes(typeof(OutputAttribute),true).FirstOrDefault() is OutputAttribute attribute){
if (attribute.Group == false){
Port port = new CustomPort(Orientation.Horizontal, Direction.Output, Port port = new CustomPort(Orientation.Horizontal, Direction.Output,
attribute.Multiple ? Port.Capacity.Multi : Port.Capacity.Single, attribute.Multiple ? Port.Capacity.Multi : Port.Capacity.Single,
BuildPortType(attribute, propertyInfo)); BuildPortType(attribute, propertyInfo));
BuildPort(port, attribute, propertyInfo,outputContainer); BuildPort(port, attribute, propertyInfo,outputContainer);
} }
else{
var propertyValue = _data.GetValue(propertyInfo.Name);
if (propertyValue is IList list){
for (var i = 0; i < list.Count; i++){
var port = new CustomPort(Orientation.Horizontal, Direction.Output,
Port.Capacity.Single,
BuildGroupPortType(attribute, propertyInfo,i));
BuildPort(port, attribute, propertyInfo,outputContainer);
}
}
}
}
} }
foreach (var propertyInfo in propertyInfos){ foreach (var propertyInfo in propertyInfos){
if(propertyInfo.GetCustomAttributes(typeof(InputAttribute),true).FirstOrDefault() is InputAttribute attribute){ if(propertyInfo.GetCustomAttributes(typeof(InputAttribute),true).FirstOrDefault() is InputAttribute attribute){
if (attribute.Group == false){
Port port = new CustomPort Port port = new CustomPort
(Orientation.Horizontal, (Orientation.Horizontal,
Direction.Input,attribute.Multiple?Port.Capacity.Multi: Port.Capacity.Single,BuildPortType(attribute,propertyInfo)); Direction.Input,attribute.Multiple?Port.Capacity.Multi: Port.Capacity.Single,BuildPortType(attribute,propertyInfo));
BuildPort(port,attribute,propertyInfo,inputContainer); BuildPort(port,attribute,propertyInfo,inputContainer);
} }
else{
}
}
} }
} }
@ -196,6 +258,37 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
} }
} }
private void BuildGroupPort(Port port, PortAttribute attribute, PropertyInfo propertyInfo,
VisualElement portContainer,object currentElement,int index = 0){
portContainer.Add(port);
if (currentElement is string str){
if (attribute.NameHandling == PortNameHandling.Auto){
port.portName = str;
}
else{
port.portName = ObjectNames.NicifyVariableName(BuildGroupPortName(attribute, propertyInfo, index));
}
}
}
private string BuildGroupPortName(PortAttribute attribute, PropertyInfo propertyInfo, int index){
switch (attribute.NameHandling){
case PortNameHandling.Auto:
return (attribute.Name.Trim(' ').Length>0?attribute.Name:propertyInfo.Name)+":"+index;
case PortNameHandling.Manual:
return attribute.Name+":"+index;;
case PortNameHandling.MemberName:
return propertyInfo.Name+":"+index;
case PortNameHandling.Format:
throw new NotImplementedException();
case PortNameHandling.MemberType:
return propertyInfo.PropertyType.Name+":"+index;
default:
throw new ArgumentOutOfRangeException();
}
}
public void StartARenameTitleTextField(){ public void StartARenameTitleTextField(){
var textField = new TextField{ var textField = new TextField{
value = title, value = title,

@ -1,4 +1,5 @@
using TNode.TNodeCore.Editor.Models; using TNode.TNodeCore.Editor.Models;
using TNodeCore.Editor.Models;
using UnityEditor.Experimental.GraphView; using UnityEditor.Experimental.GraphView;
using UnityEngine; using UnityEngine;
using UnityEngine.UIElements; using UnityEngine.UIElements;

@ -1,7 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TNode.TNodeCore.Editor.Blackboard; using TNodeCore.Editor.Blackboard;
using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.NodeGraphView;
using UnityEditor; using UnityEditor;
using UnityEditor.Experimental.GraphView; using UnityEditor.Experimental.GraphView;

@ -2,7 +2,8 @@
"name": "TNodeGraphViewImpl", "name": "TNodeGraphViewImpl",
"rootNamespace": "", "rootNamespace": "",
"references": [ "references": [
"GUID:940af72691767fa47be979e5dbcf6ba0" "GUID:940af72691767fa47be979e5dbcf6ba0",
"GUID:646fd469059c44c3b9215226d5e1e13c"
], ],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 693e3b5ee51240dfa38db52ca14eecde
timeCreated: 1660803399

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: cf0168c8ec1f9304c9872577b1e6abdf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save