Tim Cooper
8 年前
当前提交
f6ff69e4
共有 31 个文件被更改,包括 2342 次插入 和 94 次删除
-
50MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/DrawData/AnchorDrawData.cs
-
38MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/Drawer/NodeDrawer.cs
-
31MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/Manipulators/EdgeConnector.cs
-
1MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/SerializableGraphView.cs
-
257MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/Styles/SerializableGraph.uss.imported.asset
-
4MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/Styles/SerializableGraph.uss.imported.asset.meta
-
4MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/Styles/SerializableGraph.uss.meta
-
604MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/NodalView.uss.imported.asset
-
2MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/NodalView.uss.imported.asset.meta
-
2MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/NodesContentView.cs
-
2MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/SimpleContentView.cs
-
246MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/SimpleContentView.uss.imported.asset
-
2MaterialGraphProject/Assets/NewUI/Editor/Demo/Views/SimpleContentView.uss.imported.asset.meta
-
2MaterialGraphProject/Assets/NewUI/Editor/Views/GraphView.cs
-
2MaterialGraphProject/Assets/NewUI/Editor/Views/GraphView.uss
-
74MaterialGraphProject/Assets/NewUI/Editor/Views/GraphView.uss.imported.asset
-
2MaterialGraphProject/Assets/NewUI/Editor/Views/GraphView.uss.imported.asset.meta
-
1MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Drawer/MaterialNodeDrawer.cs
-
3MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/MaterialGraphView.cs
-
64MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Styles/MaterialGraph.uss
-
539MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Styles/MaterialGraph.uss.imported.asset
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Styles/MaterialGraph.uss.imported.asset.meta
-
6MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Styles/MaterialGraph.uss.meta
-
9MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED.meta
-
218MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/GridBackground.cs
-
12MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/GridBackground.cs.meta
-
104MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/NodeAnchor.cs
-
12MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/NodeAnchor.cs.meta
-
131MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/NodeAnchorData.cs
-
12MaterialGraphProject/Assets/GraphFramework/SerializableGraph/Editor/Drawing/COPIED/NodeAnchorData.cs.meta
|
|||
fileFormatVersion: 2 |
|||
guid: 710b4b6fb4db58f47aeb6fec7fd76bb4 |
|||
timeCreated: 1477986144 |
|||
guid: 692fd89d176246745ad1640285f640d1 |
|||
timeCreated: 1478070440 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: 2063531155c6d8f4db408f840d0daed9 |
|||
timeCreated: 1476713791 |
|||
guid: c040dbfc587a399438b3f4bf8cc95f4b |
|||
timeCreated: 1478070440 |
|||
licenseType: Pro |
|||
StyleSheetImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: ae904e6b00e321143b960221024f7fc3 |
|||
timeCreated: 1477985626 |
|||
timeCreated: 1478070317 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: fbe164d03ec59254eafe10baa5a9c5ba |
|||
timeCreated: 1477985626 |
|||
timeCreated: 1478070327 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: 1655c36f61ec5a5499f7dc1f3abea03c |
|||
timeCreated: 1477985626 |
|||
timeCreated: 1478070258 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: 13814e9314253674e8d4966bba14d963 |
|||
timeCreated: 1477986144 |
|||
timeCreated: 1478071405 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|
|||
fileFormatVersion: 2 |
|||
guid: 3d8d6d1aa1a125542a19bf0cf3963095 |
|||
timeCreated: 1475574870 |
|||
guid: 466e6b269ff1900438e46c66af51cef8 |
|||
timeCreated: 1478070440 |
|||
DefaultImporter: |
|||
StyleSheetImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: ef89c3094f656ca419096cec59d816af |
|||
folderAsset: yes |
|||
timeCreated: 1478076357 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using RMGUI.GraphView; |
|||
using UnityEngine; |
|||
using UnityEngine.RMGUI; |
|||
using UnityEngine.RMGUI.StyleSheets; |
|||
|
|||
namespace UnityEditor.Graphing.Drawing |
|||
{ |
|||
public class GridBackground : IDecorator, IStyleTarget |
|||
{ |
|||
const string SpacingProperty = "spacing"; |
|||
const string ThickLinesProperty = "thick-lines"; |
|||
const string LineColorProperty = "line-color"; |
|||
const string ThickLineColorProperty = "thick-line-color"; |
|||
const string GridBackgroundColorProperty = "grid-background-color"; |
|||
|
|||
StyleProperty<float> m_Spacing; |
|||
float spacing |
|||
{ |
|||
get |
|||
{ |
|||
return m_Spacing.GetOrDefault(50.0f); |
|||
} |
|||
} |
|||
|
|||
StyleProperty<int> m_ThickLines; |
|||
int thickLines |
|||
{ |
|||
get |
|||
{ |
|||
return m_ThickLines.GetOrDefault(10); |
|||
} |
|||
} |
|||
|
|||
StyleProperty<Color> m_LineColor; |
|||
Color lineColor |
|||
{ |
|||
get |
|||
{ |
|||
return m_LineColor.GetOrDefault(new Color(0f, 0f, 0f, 0.18f)); |
|||
} |
|||
} |
|||
|
|||
StyleProperty<Color> m_ThickLineColor; |
|||
Color thickLineColor |
|||
{ |
|||
get |
|||
{ |
|||
return m_ThickLineColor.GetOrDefault(new Color(0f, 0f, 0f, 0.38f)); |
|||
} |
|||
} |
|||
|
|||
StyleProperty<Color> m_BackgroundColor; |
|||
Color backgroundColor |
|||
{ |
|||
get |
|||
{ |
|||
return m_BackgroundColor.GetOrDefault(new Color(0.17f, 0.17f, 0.17f, 1.0f)); |
|||
} |
|||
} |
|||
|
|||
private VisualContainer m_Container; |
|||
|
|||
private Vector3 Clip(Rect clipRect, Vector3 _in) |
|||
{ |
|||
if (_in.x < clipRect.xMin) |
|||
_in.x = clipRect.xMin; |
|||
if (_in.x > clipRect.xMax) |
|||
_in.x = clipRect.xMax; |
|||
|
|||
if (_in.y < clipRect.yMin) |
|||
_in.y = clipRect.yMin; |
|||
if (_in.y > clipRect.yMax) |
|||
_in.y = clipRect.yMax; |
|||
|
|||
return _in; |
|||
} |
|||
|
|||
// Notes: styles are read from this manipulator's target,
|
|||
// note its m_Container member
|
|||
public void OnStylesResolved(VisualElementStyles styles) |
|||
{ |
|||
styles.ApplyCustomProperty(SpacingProperty, ref m_Spacing); |
|||
styles.ApplyCustomProperty(ThickLinesProperty, ref m_ThickLines); |
|||
styles.ApplyCustomProperty(ThickLineColorProperty, ref m_ThickLineColor); |
|||
styles.ApplyCustomProperty(LineColorProperty, ref m_LineColor); |
|||
styles.ApplyCustomProperty(GridBackgroundColorProperty, ref m_BackgroundColor); |
|||
} |
|||
|
|||
public void PrePaint(VisualElement target, IStylePainter pc) |
|||
{ |
|||
var graphView = target as GraphView; |
|||
if (graphView == null) |
|||
{ |
|||
throw new InvalidOperationException("GridBackground decorator can only be added to a GraphView"); |
|||
} |
|||
m_Container = graphView.contentViewContainer; |
|||
Rect clientRect = graphView.position; |
|||
|
|||
var containerScale = new Vector3(m_Container.transform.GetColumn(0).magnitude, |
|||
m_Container.transform.GetColumn(1).magnitude, |
|||
m_Container.transform.GetColumn(2).magnitude); |
|||
var containerTranslation = m_Container.transform.GetColumn(3); |
|||
var containerPosition = m_Container.position; |
|||
|
|||
// background
|
|||
UIHelpers.ApplyWireMaterial(); |
|||
|
|||
GL.Begin(GL.QUADS); |
|||
GL.Color(backgroundColor); |
|||
GL.Vertex(new Vector3(clientRect.x, clientRect.y)); |
|||
GL.Vertex(new Vector3(clientRect.xMax, clientRect.y)); |
|||
GL.Vertex(new Vector3(clientRect.xMax, clientRect.yMax)); |
|||
GL.Vertex(new Vector3(clientRect.x, clientRect.yMax)); |
|||
GL.End(); |
|||
|
|||
// vertical lines
|
|||
Vector3 from = new Vector3(clientRect.x, clientRect.y, 0.0f); |
|||
Vector3 to = new Vector3(clientRect.x, clientRect.height, 0.0f); |
|||
|
|||
var tx = Matrix4x4.TRS(containerTranslation, Quaternion.identity, Vector3.one); |
|||
|
|||
from = tx.MultiplyPoint(from); |
|||
to = tx.MultiplyPoint(to); |
|||
|
|||
from.x += (containerPosition.x * containerScale.x); |
|||
from.y += (containerPosition.y * containerScale.y); |
|||
to.x += (containerPosition.x * containerScale.x); |
|||
to.y += (containerPosition.y * containerScale.y); |
|||
|
|||
Handles.DrawWireDisc(from, new Vector3(0.0f, 0.0f, -1.0f), 6f); |
|||
|
|||
float thickGridLineX = from.x; |
|||
float thickGridLineY = from.y; |
|||
|
|||
// Update from/to to start at beginning of clientRect
|
|||
from.x = (from.x % (spacing * (containerScale.x)) - (spacing * (containerScale.x))); |
|||
to.x = from.x; |
|||
|
|||
from.y = clientRect.y; |
|||
to.y = clientRect.y + clientRect.height; |
|||
|
|||
while (from.x < clientRect.width) |
|||
{ |
|||
from.x += spacing * containerScale.x; |
|||
to.x += spacing * containerScale.x; |
|||
|
|||
GL.Begin(GL.LINES); |
|||
GL.Color(lineColor); |
|||
GL.Vertex(Clip(clientRect, from)); |
|||
GL.Vertex(Clip(clientRect, to)); |
|||
GL.End(); |
|||
} |
|||
|
|||
float thickLineSpacing = (spacing * thickLines); |
|||
from.x = to.x = (thickGridLineX % (thickLineSpacing * (containerScale.x)) - (thickLineSpacing * (containerScale.x))); |
|||
|
|||
while (from.x < clientRect.width + thickLineSpacing) |
|||
{ |
|||
GL.Begin(GL.LINES); |
|||
GL.Color(thickLineColor); |
|||
GL.Vertex(Clip(clientRect, from)); |
|||
GL.Vertex(Clip(clientRect, to)); |
|||
GL.End(); |
|||
|
|||
from.x += (spacing * containerScale.x * thickLines); |
|||
to.x += (spacing * containerScale.x * thickLines); |
|||
} |
|||
|
|||
// horizontal lines
|
|||
from = new Vector3(clientRect.x, clientRect.y, 0.0f); |
|||
to = new Vector3(clientRect.x + clientRect.width, clientRect.y, 0.0f); |
|||
|
|||
from.x += (containerPosition.x * containerScale.x); |
|||
from.y += (containerPosition.y * containerScale.y); |
|||
to.x += (containerPosition.x * containerScale.x); |
|||
to.y += (containerPosition.y * containerScale.y); |
|||
|
|||
from = tx.MultiplyPoint(from); |
|||
to = tx.MultiplyPoint(to); |
|||
|
|||
from.y = to.y = (from.y % (spacing * (containerScale.y)) - (spacing * (containerScale.y))); |
|||
from.x = clientRect.x; |
|||
to.x = clientRect.width; |
|||
|
|||
while (from.y < clientRect.height) |
|||
{ |
|||
from.y += spacing * containerScale.y; |
|||
to.y += spacing * containerScale.y; |
|||
|
|||
GL.Begin(GL.LINES); |
|||
GL.Color(lineColor); |
|||
GL.Vertex(Clip(clientRect, from)); |
|||
GL.Vertex(Clip(clientRect, to)); |
|||
GL.End(); |
|||
} |
|||
|
|||
thickLineSpacing = spacing * thickLines; |
|||
from.y = to.y = (thickGridLineY % (thickLineSpacing * (containerScale.y)) - (thickLineSpacing * (containerScale.y))); |
|||
|
|||
while (from.y < clientRect.height + thickLineSpacing) |
|||
{ |
|||
GL.Begin(GL.LINES); |
|||
GL.Color(thickLineColor); |
|||
GL.Vertex(Clip(clientRect, from)); |
|||
GL.Vertex(Clip(clientRect, to)); |
|||
GL.End(); |
|||
|
|||
from.y += spacing * containerScale.y * thickLines; |
|||
to.y += spacing * containerScale.y * thickLines; |
|||
} |
|||
} |
|||
|
|||
public void PostPaint(VisualElement element, IStylePainter pc) |
|||
{ |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 8ad0c1aa896f15a49b31a4efedb73df7 |
|||
timeCreated: 1478076357 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using RMGUI.GraphView; |
|||
using UnityEngine; |
|||
using UnityEngine.RMGUI; |
|||
using UnityEngine.RMGUI.StyleSheets; |
|||
|
|||
namespace UnityEditor.Graphing.Drawing |
|||
{ |
|||
internal class NodeAnchor : GraphElement |
|||
{ |
|||
public const float k_NodeSize = 15.0f; |
|||
|
|||
private readonly EdgeConnector<EdgeData> m_RegularConnector = new EdgeConnector<EdgeData>(); |
|||
private readonly EdgeConnector<EdgeData> m_CustomConnector = new EdgeConnector<EdgeData>(); |
|||
|
|||
private IManipulator m_CurrentConnector; |
|||
|
|||
VisualElement m_ConnectorBox; |
|||
VisualElement m_ConnectorText; |
|||
|
|||
public NodeAnchor(NodeAnchorData data) |
|||
{ |
|||
// currently we don't want to be styled as .graphElement since we're contained in a Node
|
|||
classList = ClassList.empty; |
|||
|
|||
m_CurrentConnector = m_RegularConnector; |
|||
AddManipulator(m_CurrentConnector); |
|||
|
|||
m_ConnectorBox = new VisualElement() { name = "connector", width = k_NodeSize, height = k_NodeSize }; |
|||
m_ConnectorBox.pickingMode = PickingMode.Ignore; |
|||
AddChild(m_ConnectorBox); |
|||
|
|||
m_ConnectorText = new VisualElement() { name = "type" }; |
|||
m_ConnectorText.content = new GUIContent(); |
|||
m_ConnectorText.pickingMode = PickingMode.Ignore; |
|||
AddChild(m_ConnectorText); |
|||
|
|||
dataProvider = data; |
|||
} |
|||
|
|||
private void UpdateConnector() |
|||
{ |
|||
var nodeAnchorData = GetData<NodeAnchorData>(); |
|||
if (nodeAnchorData == null) |
|||
return; |
|||
|
|||
RemoveManipulator(m_CurrentConnector); |
|||
if (!nodeAnchorData.connected || nodeAnchorData.direction != Direction.Input) |
|||
{ |
|||
if (nodeAnchorData.orientation == Orientation.Horizontal) |
|||
{ |
|||
m_CurrentConnector = m_RegularConnector; |
|||
} |
|||
else |
|||
{ |
|||
m_CurrentConnector = m_CustomConnector; |
|||
} |
|||
AddManipulator(m_CurrentConnector); |
|||
} |
|||
} |
|||
|
|||
public override void OnDataChanged() |
|||
{ |
|||
UpdateConnector(); |
|||
|
|||
var nodeAnchorData = GetData<NodeAnchorData>(); |
|||
if (nodeAnchorData == null) |
|||
return; |
|||
|
|||
Type type = nodeAnchorData.type; |
|||
|
|||
Type genericClass = typeof(PortSource<>); |
|||
Type constructedClass = genericClass.MakeGenericType(type); |
|||
nodeAnchorData.source = Activator.CreateInstance(constructedClass); |
|||
|
|||
if (nodeAnchorData.highlight) |
|||
{ |
|||
m_ConnectorBox.AddToClassList("anchorHighlight"); |
|||
} |
|||
else |
|||
{ |
|||
m_ConnectorBox.RemoveFromClassList("anchorHighlight"); |
|||
} |
|||
|
|||
string anchorName = string.IsNullOrEmpty(nodeAnchorData.name) ? type.Name : nodeAnchorData.name; |
|||
m_ConnectorText.content.text = anchorName; |
|||
GetData<NodeAnchorData>().capabilities &= ~Capabilities.Selectable; |
|||
} |
|||
|
|||
public override Vector3 GetGlobalCenter() |
|||
{ |
|||
var center = m_ConnectorBox.position.center; |
|||
center = m_ConnectorBox.transform.MultiplyPoint3x4(center); |
|||
return this.LocalToGlobal(center); |
|||
} |
|||
|
|||
public override bool ContainsPoint(Vector2 localPoint) |
|||
{ |
|||
// Here local point comes without position offset...
|
|||
localPoint -= position.position; |
|||
return m_ConnectorBox.ContainsPoint(m_ConnectorBox.transform.MultiplyPoint3x4(localPoint)); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: ef650f51b0d5b034ca3a7f461eddbbeb |
|||
timeCreated: 1478076237 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using RMGUI.GraphView; |
|||
using UnityEngine; |
|||
|
|||
namespace UnityEditor.Graphing.Drawing |
|||
{ |
|||
[Serializable] |
|||
public class NodeAnchorData : GraphElementData, IConnector |
|||
{ |
|||
protected object m_Source; |
|||
public object source |
|||
{ |
|||
get { return m_Source;} |
|||
set |
|||
{ |
|||
if (m_Source == value) return; |
|||
m_Source = value; |
|||
} |
|||
} |
|||
|
|||
[SerializeField] |
|||
private Direction m_Direction; |
|||
public virtual Direction direction |
|||
{ |
|||
// TODO We should not be able to change direction of an existing anchor
|
|||
get { return m_Direction; } |
|||
set { m_Direction = value; } |
|||
} |
|||
|
|||
[SerializeField] |
|||
private Orientation m_Orientation; |
|||
public virtual Orientation orientation |
|||
{ |
|||
get { return m_Orientation; } set { m_Orientation = value; } |
|||
} |
|||
|
|||
[SerializeField] |
|||
private Type m_Type; |
|||
public virtual Type type |
|||
{ |
|||
get { return m_Type; } |
|||
set { m_Type = value; } |
|||
} |
|||
|
|||
[SerializeField] |
|||
private bool m_Highlight; |
|||
public virtual bool highlight |
|||
{ |
|||
get { return m_Highlight; } |
|||
set { m_Highlight = value; } |
|||
} |
|||
|
|||
public virtual bool connected |
|||
{ |
|||
get |
|||
{ |
|||
return (m_Direction == Direction.Output ? m_OutputConnections : m_InputConnections).Count != 0; |
|||
} |
|||
} |
|||
|
|||
public virtual IEnumerable<IConnection> connections |
|||
{ |
|||
get |
|||
{ |
|||
return (m_Direction == Direction.Output ? m_OutputConnections : m_InputConnections).Cast<IConnection>(); |
|||
} |
|||
} |
|||
|
|||
// TODO we'll probably want to distinguish between InputAnchorData and OutputAnchorData so as to
|
|||
// not burden ourselves with extra data we don't need.
|
|||
[SerializeField] |
|||
private List<GraphElementData> m_InputConnections; |
|||
|
|||
[SerializeField] |
|||
private List<GraphElementData> m_OutputConnections; |
|||
|
|||
public void Connect(IConnection connection) |
|||
{ |
|||
var ged = connection as GraphElementData; |
|||
if (connection != null && ged == null) |
|||
{ |
|||
throw new ArgumentException("The value passed to NodeAnchorData.Connect is not a GraphElementData"); |
|||
} |
|||
|
|||
if (m_Direction == Direction.Input) |
|||
{ |
|||
if (!m_InputConnections.Contains(ged)) |
|||
{ |
|||
m_InputConnections.Add(ged); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
if (!m_OutputConnections.Contains(ged)) |
|||
{ |
|||
m_OutputConnections.Add(ged); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public void Disconnect(IConnection connection) |
|||
{ |
|||
var ged = connection as GraphElementData; |
|||
if (connection != null && ged == null) |
|||
{ |
|||
throw new ArgumentException("The value passed to NodeAnchorData.Disconnect is not a GraphElementData"); |
|||
} |
|||
|
|||
if (m_Direction == Direction.Input) |
|||
{ |
|||
m_InputConnections.Remove(ged); |
|||
} |
|||
else |
|||
{ |
|||
m_OutputConnections.Remove(ged); |
|||
} |
|||
} |
|||
|
|||
protected new void OnEnable() |
|||
{ |
|||
base.OnEnable(); |
|||
m_Type = typeof(object); |
|||
m_OutputConnections = new List<GraphElementData>(); |
|||
m_InputConnections = new List<GraphElementData>(); |
|||
} |
|||
|
|||
protected NodeAnchorData() {} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 527c7f272431f364e80331ec89e32e8a |
|||
timeCreated: 1478076527 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue