浏览代码
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
bfogerty
8 年前
当前提交
abec21f1
共有 47 个文件被更改,包括 2658 次插入 和 7 次删除
-
12MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/GradientNodePresenter.cs
-
4MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs
-
10MaterialGraphProject/Assets/Vlad/TextureAssetNode.cs
-
1MaterialGraphProject/Assets/_MingWai/GradientNode.cs
-
1MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph
-
9MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph.meta
-
44MaterialGraphProject/Assets/Florent/2PassCustomTexture.asset
-
9MaterialGraphProject/Assets/Florent/2PassCustomTexture.asset.meta
-
9MaterialGraphProject/Assets/Florent/FirstPass.meta
-
75MaterialGraphProject/Assets/Florent/MaterialWith2PassTexture.mat
-
9MaterialGraphProject/Assets/Florent/MaterialWith2PassTexture.mat.meta
-
25MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat.meta
-
57MaterialGraphProject/Assets/NewNodes/WIP/AACheckerBoardNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/AACheckerBoardNode.cs.meta
-
562MaterialGraphProject/Assets/NewNodes/WIP/AnyNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/AnyNode.cs.meta
-
52MaterialGraphProject/Assets/NewNodes/WIP/RadialShearNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/RadialShearNode.cs.meta
-
49MaterialGraphProject/Assets/NewNodes/WIP/ScaleOffsetNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/ScaleOffsetNode.cs.meta
-
52MaterialGraphProject/Assets/NewNodes/WIP/SphereWarpNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/SphereWarpNode.cs.meta
-
247MaterialGraphProject/Assets/TestAssets/BW_logo.png
-
84MaterialGraphProject/Assets/TestAssets/BW_logo.png.meta
-
110MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/AnyNodePresenter.cs
-
12MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/AnyNodePresenter.cs.meta
-
35MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/SceneData/CameraDirNode.cs
-
8MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/SceneData/CameraDirNode.cs.meta
-
36MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/SceneData/CameraPosNode.cs
-
8MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/SceneData/CameraPosNode.cs.meta
-
1MaterialGraphProject/Assets/_MingWai/Gradient.ShaderGraph
-
9MaterialGraphProject/Assets/_MingWai/Gradient.ShaderGraph.meta
-
1MaterialGraphProject/Assets/_MingWai/Gradient_Texture.ShaderGraph
-
9MaterialGraphProject/Assets/_MingWai/Gradient_Texture.ShaderGraph.meta
-
75MaterialGraphProject/Assets/Florent/FirstPass/AnimatedMaterial.mat
-
9MaterialGraphProject/Assets/Florent/FirstPass/AnimatedMaterial.mat.meta
-
44MaterialGraphProject/Assets/Florent/FirstPass/CustomTexture.asset
-
9MaterialGraphProject/Assets/Florent/FirstPass/CustomTexture.asset.meta
-
861MaterialGraphProject/Assets/Florent/FirstPass/New Scene.unity
-
8MaterialGraphProject/Assets/Florent/FirstPass/New Scene.unity.meta
-
1MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph
-
9MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph.meta
-
30MaterialGraphProject/Assets/Florent/FirstPass/UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3.mat
-
9MaterialGraphProject/Assets/Florent/FirstPass/UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3.mat.meta
-
1MaterialGraphProject/Assets/Florent/GeneratedTexture.meta
1
MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 9de4796ffebd15d4a9d6e044a172fe49 |
|||
timeCreated: 1495744149 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: 2PassCustomTexture |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 2100000, guid: 07f024bdcd70166408ae4c312452248a, type: 2} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 1 |
|||
m_InitializationMode: 1 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 4175b1311e786fc4bbbe7ba7f8bdc702 |
|||
timeCreated: 1495744795 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: eb36f875e27437d46b5af42ea2c10b92 |
|||
folderAsset: yes |
|||
timeCreated: 1495744160 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: MaterialWith2PassTexture |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 8600000, guid: 4175b1311e786fc4bbbe7ba7f8bdc702, type: 2} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 498f1d2437c6bb84d8b82d451d56eaee |
|||
timeCreated: 1495744861 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37 |
|||
m_Shader: {fileID: 4800000, guid: 9de4796ffebd15d4a9d6e044a172fe49, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 8600000, guid: 3d2f7c217d996304986bdb68379c189e, type: 2} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 07f024bdcd70166408ae4c312452248a |
|||
timeCreated: 1495744826 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("Procedural/AACheckerboard")] |
|||
public class AACheckerboardNode : AnyNode<AACheckerboardNode.Definition> |
|||
{ |
|||
public class Definition : IAnyNodeDefinition |
|||
{ |
|||
public string name { get { return "AACheckerboard"; } } |
|||
|
|||
public AnyNodeProperty[] properties |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeProperty[] |
|||
{ |
|||
// slotId is the 'immutable' value we used to connect things
|
|||
new AnyNodeProperty { slotId= 0, name = "inUVs", description = "Input UV coords", propertyType = PropertyType.Vector2, value = Vector4.zero, state = AnyNodePropertyState.Slot }, |
|||
new AnyNodeProperty { slotId= 1, name = "A", description = "color A", propertyType = PropertyType.Vector4, value= new Vector4(0.2f, 0.2f, 0.2f, 0.2f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 2, name = "B", description = "color B", propertyType = PropertyType.Vector4, value= new Vector4(0.7f, 0.7f, 0.7f, 0.7f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 3, name = "aaTweak", description = "AA Tweak", propertyType = PropertyType.Vector3, value= new Vector4(0.05f, 3.0f, 0.0f, 0.0f),state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 4, name = "frequency", description = "Frequency", propertyType = PropertyType.Vector2, value = Vector4.one, state = AnyNodePropertyState.Constant }, |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public AnyNodeSlot[] outputs |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeSlot[] |
|||
{ |
|||
new AnyNodeSlot { slotId= 5, name = "outColor", description = "Output color", slotValueType = SlotValueType.Vector4, value = Vector4.zero } |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public string hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return |
|||
"float4 derivatives = float4(ddx(inUVs), ddy(inUVs));\n" + |
|||
"float2 duv_length = sqrt(float2(dot(derivatives.xz, derivatives.xz), dot(derivatives.yw, derivatives.yw)));\n" + |
|||
"float width = 0.5f;\n" + |
|||
"float2 distance3 = 2.0f * abs(frac(inUVs.xy * frequency) - 0.5f) - width;\n" + |
|||
"float2 scale = aaTweak.x / duv_length.xy;\n" + |
|||
"float2 blend_out = saturate((scale - aaTweak.zz) / (aaTweak.yy - aaTweak.zz));\n" + |
|||
"float2 vector_alpha = clamp(distance3 * scale.xy * blend_out.xy, -1.0f, 1.0f);\n" + |
|||
"float alpha = saturate(0.5f + 0.5f * vector_alpha.x * vector_alpha.y);\n" + |
|||
"outColor= lerp(A, B, alpha.xxxx);"; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 7c311b074714f8d468c9bfbf8f91619d |
|||
timeCreated: 1495731579 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
using System; |
|||
|
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Serializable] |
|||
public class AnyNodeSlot |
|||
{ |
|||
public int slotId; |
|||
public string name; |
|||
public string description; |
|||
public SlotValueType slotValueType; |
|||
public Vector4 value; |
|||
|
|||
public MaterialSlot toMaterialSlot() |
|||
{ |
|||
return new MaterialSlot(slotId, name, name, Graphing.SlotType.Output, slotValueType, value); |
|||
} |
|||
|
|||
public string getTypeDecl(AbstractMaterialNode.OutputPrecision precision) |
|||
{ |
|||
switch (slotValueType) |
|||
{ |
|||
case SlotValueType.Sampler2D: |
|||
// TODO
|
|||
break; |
|||
case SlotValueType.Dynamic: |
|||
// TODO
|
|||
break; |
|||
case SlotValueType.Vector1: |
|||
return precision + ""; |
|||
case SlotValueType.Vector2: |
|||
return precision + "2"; |
|||
case SlotValueType.Vector3: |
|||
return precision + "3"; |
|||
case SlotValueType.Vector4: |
|||
return precision + "4"; |
|||
} |
|||
return null; |
|||
} |
|||
}; |
|||
|
|||
[Serializable] |
|||
public enum AnyNodePropertyState |
|||
{ |
|||
Constant = 0, |
|||
Exposed = 1, |
|||
Slot = 2, |
|||
}; |
|||
|
|||
|
|||
[Serializable] |
|||
public class AnyNodeProperty |
|||
{ |
|||
public int slotId; |
|||
public string name; |
|||
public string description; |
|||
public PropertyType propertyType; |
|||
public Vector4 value; |
|||
public AnyNodePropertyState state; |
|||
|
|||
public MaterialSlot toMaterialSlot() |
|||
{ |
|||
// convert property type to slotvaluetype...
|
|||
SlotValueType slotValueType = SlotValueType.Dynamic; |
|||
switch (propertyType) |
|||
{ |
|||
case PropertyType.Color: |
|||
slotValueType = SlotValueType.Vector4; |
|||
break; |
|||
case PropertyType.Texture: |
|||
slotValueType = SlotValueType.Sampler2D; |
|||
break; |
|||
case PropertyType.Cubemap: |
|||
slotValueType = SlotValueType.Sampler2D; |
|||
break; |
|||
case PropertyType.Float: |
|||
slotValueType = SlotValueType.Vector1; |
|||
break; |
|||
case PropertyType.Vector2: |
|||
slotValueType = SlotValueType.Vector2; |
|||
break; |
|||
case PropertyType.Vector3: |
|||
slotValueType = SlotValueType.Vector3; |
|||
break; |
|||
case PropertyType.Vector4: |
|||
slotValueType = SlotValueType.Vector4; |
|||
break; |
|||
case PropertyType.Matrix2: |
|||
slotValueType = SlotValueType.Matrix2; |
|||
break; |
|||
case PropertyType.Matrix3: |
|||
slotValueType = SlotValueType.Matrix3; |
|||
break; |
|||
case PropertyType.Matrix4: |
|||
slotValueType = SlotValueType.Matrix4; |
|||
break; |
|||
} |
|||
|
|||
return new MaterialSlot(slotId, name, name, Graphing.SlotType.Input, slotValueType, value); |
|||
} |
|||
|
|||
public PropertyChunk toPropertyChunk() |
|||
{ |
|||
switch (propertyType) |
|||
{ |
|||
case PropertyType.Color: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Texture: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Cubemap: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Float: |
|||
return new FloatPropertyChunk(name, description, value.x, PropertyChunk.HideState.Visible); |
|||
case PropertyType.Vector2: |
|||
case PropertyType.Vector3: |
|||
case PropertyType.Vector4: |
|||
return new VectorPropertyChunk(name, description, value, PropertyChunk.HideState.Visible); |
|||
case PropertyType.Matrix2: |
|||
case PropertyType.Matrix3: |
|||
case PropertyType.Matrix4: |
|||
// TODO
|
|||
break; |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
public string getTypeDecl(AbstractMaterialNode.OutputPrecision precision) |
|||
{ |
|||
switch (propertyType) |
|||
{ |
|||
case PropertyType.Color: |
|||
case PropertyType.Texture: |
|||
case PropertyType.Cubemap: |
|||
// TODO
|
|||
return null; |
|||
case PropertyType.Float: |
|||
return precision + ""; |
|||
case PropertyType.Vector2: |
|||
return precision + "2"; |
|||
case PropertyType.Vector3: |
|||
return precision + "3"; |
|||
case PropertyType.Vector4: |
|||
return precision + "4"; |
|||
case PropertyType.Matrix2: |
|||
case PropertyType.Matrix3: |
|||
case PropertyType.Matrix4: |
|||
// TODO
|
|||
break; |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public interface IAnyNodeDefinition |
|||
{ |
|||
string name { get; } |
|||
AnyNodeProperty[] properties { get; } |
|||
AnyNodeSlot[] outputs { get; } |
|||
string hlsl { get; } |
|||
} |
|||
|
|||
|
|||
public class AnyNodeBase : AbstractMaterialNode |
|||
{ |
|||
// local copy of the definition data -- some of it is state that gets modified by the user
|
|||
// TODO: really we should break the properties and slots into static definition data and mutable user data -- separate structs
|
|||
[SerializeField] |
|||
protected AnyNodeProperty[] m_properties; |
|||
|
|||
[SerializeField] |
|||
protected AnyNodeSlot[] m_outputSlots; |
|||
|
|||
public IEnumerable<AnyNodeProperty> properties |
|||
{ |
|||
get |
|||
{ |
|||
return m_properties; |
|||
} |
|||
} |
|||
|
|||
public int propertyCount |
|||
{ |
|||
get { return m_properties.Length; } |
|||
} |
|||
|
|||
public void setPropertyState(AnyNodeProperty p, AnyNodePropertyState state) |
|||
{ |
|||
if (p.state != state) |
|||
{ |
|||
if ((p.state == AnyNodePropertyState.Slot) && (state != AnyNodePropertyState.Slot)) |
|||
{ |
|||
// Removing slot
|
|||
RemoveSlot(p.slotId); |
|||
} |
|||
else if ((p.state != AnyNodePropertyState.Slot) && (state == AnyNodePropertyState.Slot)) |
|||
{ |
|||
// Adding slot
|
|||
AddSlot(p.toMaterialSlot()); |
|||
} |
|||
|
|||
p.state = state; |
|||
} |
|||
} |
|||
} |
|||
|
|||
// [Title("Abstract Any Node")]
|
|||
public class AnyNode<DEFINITION> : |
|||
AnyNodeBase |
|||
, IGeneratesBodyCode |
|||
, IGeneratesFunction |
|||
|
|||
/* , IMayRequireMeshUV |
|||
, IOnAssetEnabled // TODO
|
|||
, IMayRequireNormal // TODO
|
|||
, IMayRequireTangent |
|||
, IMayRequireBitangent |
|||
, IMayRequireScreenPosition |
|||
, IMayRequireViewDirection |
|||
, IMayRequireWorldPosition |
|||
, IMayRequireVertexColor |
|||
, IMayRequireViewDirectionTangentSpace |
|||
*/ |
|||
where DEFINITION : IAnyNodeDefinition, new() |
|||
{ |
|||
private DEFINITION m_definition; |
|||
|
|||
public string node_name |
|||
{ |
|||
get |
|||
{ |
|||
return m_definition.name; |
|||
} |
|||
} |
|||
|
|||
public string node_hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return m_definition.hlsl; |
|||
} |
|||
} |
|||
|
|||
public AnyNode() |
|||
{ |
|||
m_definition = new DEFINITION(); |
|||
|
|||
m_properties = m_definition.properties; |
|||
|
|||
m_outputSlots = m_definition.outputs; |
|||
|
|||
UpdateNodeAfterDeserialization(); |
|||
} |
|||
|
|||
public sealed override void UpdateNodeAfterDeserialization() |
|||
{ |
|||
// update displayed name of the node
|
|||
name = node_name; |
|||
|
|||
// check new properties and slot definitions -- we want to forward data from the old ones
|
|||
// (just in case the definitions have changed)
|
|||
AnyNodeProperty[] new_properties= m_definition.properties; |
|||
AnyNodeSlot[] new_outputs= m_definition.outputs; |
|||
foreach (AnyNodeSlot s in new_outputs) |
|||
{ |
|||
// try to find matching slot
|
|||
AnyNodeSlot old_slot= Array.Find(m_outputSlots, x => x.slotId == s.slotId); |
|||
if (old_slot != null) |
|||
{ |
|||
s.value = old_slot.value; |
|||
} |
|||
} |
|||
foreach (AnyNodeProperty p in new_properties) |
|||
{ |
|||
// try to find matching old property
|
|||
AnyNodeProperty old_property = Array.Find(m_properties, x => x.slotId == p.slotId); |
|||
if (old_property != null) |
|||
{ |
|||
p.state = old_property.state; |
|||
p.value = old_property.value; |
|||
} |
|||
} |
|||
|
|||
// now that we've copied the old data into the new properties, start using the new properties
|
|||
m_properties = new_properties; |
|||
m_outputSlots = new_outputs; |
|||
|
|||
List<int> validSlotIds = new List<int>(); |
|||
|
|||
// add output slots first
|
|||
foreach (AnyNodeSlot s in m_outputSlots) |
|||
{ |
|||
// add slot to node
|
|||
AddSlot(s.toMaterialSlot()); |
|||
validSlotIds.Add(s.slotId); |
|||
} |
|||
|
|||
// add input slots
|
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
// if this property is an input slot
|
|||
if (p.state == AnyNodePropertyState.Slot) |
|||
{ |
|||
// add slot to node
|
|||
AddSlot(p.toMaterialSlot()); |
|||
validSlotIds.Add(p.slotId); |
|||
} |
|||
} |
|||
|
|||
RemoveSlotsNameNotMatching(validSlotIds); |
|||
} |
|||
|
|||
public override void GeneratePropertyBlock(PropertyGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
// add uniform shader properties -- constants and textures
|
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
// only exposed properties go in the property block
|
|||
if (p.state == AnyNodePropertyState.Exposed) |
|||
{ |
|||
PropertyChunk property = p.toPropertyChunk(); ; |
|||
if (property != null) |
|||
{ |
|||
visitor.AddShaderProperty(property); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
public override void GeneratePropertyUsages(ShaderGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
// only exposed properties go in the property usage (hlsl declaration)
|
|||
if ((p.state == AnyNodePropertyState.Exposed) || |
|||
(p.state == AnyNodePropertyState.Constant && generationMode.IsPreview())) // constant properties are exposed in preview mode for fast iteration update
|
|||
{ |
|||
string typeDecl = p.getTypeDecl(precision); |
|||
if (typeDecl != null) |
|||
{ |
|||
visitor.AddShaderChunk(typeDecl + " " + p.name + ";", true); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
public override void CollectPreviewMaterialProperties(List<PreviewProperty> property_list) |
|||
{ |
|||
base.CollectPreviewMaterialProperties(property_list); |
|||
|
|||
|
|||
// properties.AddRange(subGraph.GetPreviewProperties()); // ???
|
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
|
|||
switch (p.propertyType) |
|||
{ |
|||
case PropertyType.Float: |
|||
case PropertyType.Vector2: |
|||
case PropertyType.Vector3: |
|||
case PropertyType.Vector4: |
|||
property_list.Add( |
|||
new PreviewProperty |
|||
{ |
|||
m_Name = p.name, |
|||
m_PropType = p.propertyType, |
|||
m_Vector4 = p.value |
|||
}); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
public string GetFunctionName() |
|||
{ |
|||
return "unity_any_" + node_name + "_" + precision; |
|||
} |
|||
|
|||
protected virtual string GetFunctionPrototype() |
|||
{ |
|||
string result = "inline void " + GetFunctionName() + "("; |
|||
|
|||
// inputs (slots & properties) first
|
|||
bool comma = false; |
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
string typeDecl = p.getTypeDecl(precision); |
|||
result += "in " + typeDecl + " " + p.name + ", "; |
|||
comma = true; |
|||
} |
|||
|
|||
// then 'globals'
|
|||
// TODO
|
|||
|
|||
// then outputs
|
|||
foreach (AnyNodeSlot s in m_outputSlots) |
|||
{ |
|||
string typeDecl = s.getTypeDecl(precision); |
|||
result += "out " + typeDecl + " " + s.name + ", "; |
|||
comma = true; |
|||
} |
|||
|
|||
// remove last comma, if any
|
|||
if (comma) |
|||
{ |
|||
result= result.Remove(result.Length - 2); |
|||
} |
|||
|
|||
result += ")"; |
|||
|
|||
return result; |
|||
} |
|||
|
|||
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
var outputString = new ShaderGenerator(); |
|||
outputString.AddShaderChunk(GetFunctionPrototype(), false); |
|||
outputString.AddShaderChunk("{", false); |
|||
outputString.Indent(); |
|||
outputString.AddShaderChunk(node_hlsl, false); |
|||
outputString.Deindent(); |
|||
outputString.AddShaderChunk("}", false); |
|||
|
|||
visitor.AddShaderChunk(outputString.GetShaderString(0), true); |
|||
} |
|||
|
|||
public void GenerateNodeCode(ShaderGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
var outputString = new ShaderGenerator(); |
|||
|
|||
outputString.AddShaderChunk("// AnyNode '" + node_name + "'", false); |
|||
|
|||
// declare and initialize output slot variables
|
|||
foreach (AnyNodeSlot s in m_outputSlots) |
|||
{ |
|||
var typeDecl = s.getTypeDecl(OutputPrecision.@float); // precision
|
|||
|
|||
if (typeDecl != null) |
|||
{ |
|||
outputString.AddShaderChunk( |
|||
typeDecl |
|||
+ " " |
|||
+ GetVariableNameForSlot(s.slotId) |
|||
+ " = 0;", false); // TODO non float type default value?
|
|||
} |
|||
} |
|||
|
|||
// open new context, in case our property names conflict with something
|
|||
outputString.AddShaderChunk("{", false); |
|||
outputString.Indent(); |
|||
|
|||
// add static declarations for contant properties
|
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
if (p.state != AnyNodePropertyState.Constant || generationMode.IsPreview()) // except in preview mode...
|
|||
continue; |
|||
|
|||
string typeDecl= p.getTypeDecl(precision); |
|||
|
|||
if (typeDecl != null) |
|||
{ |
|||
switch (p.propertyType) |
|||
{ |
|||
case PropertyType.Color: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Texture: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Cubemap: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Float: |
|||
visitor.AddShaderChunk(typeDecl + " " + p.name + " = " + p.value.x + ";", true); |
|||
break; |
|||
case PropertyType.Vector2: |
|||
visitor.AddShaderChunk(typeDecl + " " + p.name + " = " + typeDecl + "(" + p.value.x + ", " + p.value.y + ");", true); |
|||
break; |
|||
case PropertyType.Vector3: |
|||
visitor.AddShaderChunk(typeDecl + " " + p.name + " = " + typeDecl + "(" + p.value.x + ", " + p.value.y + ", " + p.value.z + ");", true); |
|||
break; |
|||
case PropertyType.Vector4: |
|||
visitor.AddShaderChunk(typeDecl + " " + p.name + " = " + typeDecl + "(" + p.value.x + ", " + p.value.y + ", " + p.value.z + ", " + p.value.w + ");", true); |
|||
break; |
|||
case PropertyType.Matrix2: |
|||
case PropertyType.Matrix3: |
|||
case PropertyType.Matrix4: |
|||
// TODO
|
|||
|
|||
break; |
|||
} |
|||
} |
|||
} |
|||
|
|||
// call function
|
|||
outputString.AddShaderChunk(GetFunctionName() + "(", false); |
|||
outputString.Indent(); |
|||
outputString.AddShaderChunk("// input slots and properties", false); |
|||
|
|||
bool first = true; |
|||
foreach (AnyNodeProperty p in m_properties) |
|||
{ |
|||
string inputVariableName; |
|||
if (p.state == AnyNodePropertyState.Slot) |
|||
{ |
|||
inputVariableName = GetSlotValue(p.slotId, generationMode); |
|||
} |
|||
else |
|||
{ |
|||
// constant or property
|
|||
inputVariableName = p.name; |
|||
} |
|||
outputString.AddShaderChunk((first ? "" : ",") + inputVariableName, false); |
|||
first = false; |
|||
} |
|||
|
|||
outputString.AddShaderChunk("// output parameters", false); |
|||
foreach (AnyNodeSlot s in m_outputSlots) |
|||
{ |
|||
outputString.AddShaderChunk((first ? "" : ",") + GetVariableNameForSlot(s.slotId), false); |
|||
first = false; |
|||
} |
|||
|
|||
outputString.AddShaderChunk(");", false); // TODO: get rid of parameter hack
|
|||
outputString.Deindent(); |
|||
|
|||
outputString.Deindent(); |
|||
outputString.AddShaderChunk("}", false); |
|||
|
|||
// done splicing translated hlsl! yay
|
|||
visitor.AddShaderChunk(outputString.GetShaderString(0), true); |
|||
} |
|||
|
|||
public override bool hasPreview |
|||
{ |
|||
get { return true; } |
|||
} |
|||
|
|||
public override PreviewMode previewMode |
|||
{ |
|||
get |
|||
{ |
|||
return PreviewMode.Preview2D; |
|||
} |
|||
} |
|||
|
|||
bool RequiresMeshUV(UVChannel channel) |
|||
{ |
|||
// TODO
|
|||
return false; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|
|||
fileFormatVersion: 2 |
|||
guid: 38b06780b4d2b274b91e1c2c5627f95d |
|||
timeCreated: 1495627163 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("UV/RadialShearNode")] |
|||
public class RadialShearNode : AnyNode<RadialShearNode.Definition> |
|||
{ |
|||
public class Definition : IAnyNodeDefinition |
|||
{ |
|||
public string name { get { return "RadialShear"; } } |
|||
|
|||
public AnyNodeProperty[] properties |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeProperty[] |
|||
{ |
|||
// slotId is the 'immutable' value we used to connect things
|
|||
new AnyNodeProperty { slotId= 0, name = "inUVs", description = "Input UV coords", propertyType = PropertyType.Vector2, value = Vector4.zero, state = AnyNodePropertyState.Slot }, |
|||
new AnyNodeProperty { slotId= 1, name = "center", description = "UV radial center point", propertyType = PropertyType.Vector2, value= new Vector4(0.5f, 0.5f, 0.5f, 0.5f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 2, name = "shearAmount", description = "Shear amount", propertyType = PropertyType.Vector2, value= Vector4.one, state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 3, name = "offset", description = "UV offset", propertyType = PropertyType.Vector2, value= Vector4.zero, state = AnyNodePropertyState.Constant }, |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public AnyNodeSlot[] outputs |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeSlot[] |
|||
{ |
|||
new AnyNodeSlot { slotId= 4, name = "outUVs", description = "Output UV texture coordinates", slotValueType = SlotValueType.Vector2, value = Vector4.zero } |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public string hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return |
|||
"float2 delta = inUVs - center;\n" + |
|||
"float delta2 = dot(delta.xy, delta.xy);\n" + |
|||
"float2 delta_offset = delta2 * shearAmount;\n" + |
|||
"outUVs = inUVs + float2(delta.y, -delta.x) * delta_offset + offset;"; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 568baa0401e6eee42a35609013ee8100 |
|||
timeCreated: 1495728068 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("UV/ScaleOffset")] |
|||
public class ScaleOffsetNode : AnyNode<ScaleOffsetNode.Definition> |
|||
{ |
|||
public class Definition : IAnyNodeDefinition |
|||
{ |
|||
public string name { get { return "ScaleOffset"; } } |
|||
|
|||
public AnyNodeProperty[] properties |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeProperty[] |
|||
{ |
|||
// slotId is the 'immutable' value we used to connect things
|
|||
new AnyNodeProperty { slotId= 0, name = "inUVs", description = "Input UV coords", propertyType = PropertyType.Vector2, value = Vector4.zero, state = AnyNodePropertyState.Slot }, |
|||
new AnyNodeProperty { slotId= 1, name = "scale", description = "UV scale", propertyType = PropertyType.Vector2, value= Vector4.one, state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 2, name = "scaleCenter", description = "UV scale center", propertyType = PropertyType.Vector2, value= new Vector4(0.5f, 0.5f, 0.5f, 0.5f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 3, name = "offset", description = "UV offset", propertyType = PropertyType.Vector2, value= Vector4.zero, state = AnyNodePropertyState.Constant }, |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public AnyNodeSlot[] outputs |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeSlot[] |
|||
{ |
|||
new AnyNodeSlot { slotId= 4, name = "outUVs", description = "Output UV texture coordinates", slotValueType = SlotValueType.Vector2, value = Vector4.zero } |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public string hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return |
|||
"float4 xform= float4(scale, offset + scaleCenter - scaleCenter * scale);\n" + |
|||
"outUVs = inUVs * xform.xy + xform.zw;"; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 28273174b61bbd246b556e236deb7556 |
|||
timeCreated: 1495726779 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("UV/SphereWarpNode")] |
|||
public class SphereWarpNode : AnyNode<SphereWarpNode.Definition> |
|||
{ |
|||
public class Definition : IAnyNodeDefinition |
|||
{ |
|||
public string name { get { return "SphereWarp"; } } |
|||
|
|||
public AnyNodeProperty[] properties |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeProperty[] |
|||
{ |
|||
// slotId is the 'immutable' value we used to connect things
|
|||
new AnyNodeProperty { slotId= 0, name = "inUVs", description = "Input UV coords", propertyType = PropertyType.Vector2, value = Vector4.zero, state = AnyNodePropertyState.Slot }, |
|||
new AnyNodeProperty { slotId= 1, name = "center", description = "UV radial center point", propertyType = PropertyType.Vector2, value= new Vector4(0.5f, 0.5f, 0.5f, 0.5f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 2, name = "warpAmount", description = "Warp amount", propertyType = PropertyType.Vector2, value= Vector4.one, state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 3, name = "offset", description = "UV offset", propertyType = PropertyType.Vector2, value= Vector4.zero, state = AnyNodePropertyState.Constant }, |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public AnyNodeSlot[] outputs |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeSlot[] |
|||
{ |
|||
new AnyNodeSlot { slotId= 4, name = "outUVs", description = "Output UV texture coordinates", slotValueType = SlotValueType.Vector2, value = Vector4.zero } |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public string hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return |
|||
"float2 delta = inUVs - center;\n" + |
|||
"float delta2 = dot(delta.xy, delta.xy);\n" + |
|||
"float delta4 = delta2 * delta2;\n" + |
|||
"float2 delta_offset = delta4 * warpAmount;\n" + |
|||
"outUVs = inUVs + delta * delta_offset + offset;"; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: dfd538e33eb01974fad49a2533f8cff8 |
|||
timeCreated: 1495729511 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 8080b3773b9568a46bcaaf9b18512990 |
|||
timeCreated: 1495742078 |
|||
licenseType: Pro |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
serializedVersion: 4 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 0 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -1 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: 1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spritePixelsToUnits: 100 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 1 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 1 |
|||
textureFormat: -1 |
|||
textureCompression: 2 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
- buildTarget: Standalone |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 1 |
|||
textureFormat: -1 |
|||
textureCompression: 2 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
spritePackingTag: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using RMGUI.GraphView; |
|||
using UnityEditor.Graphing.Drawing; |
|||
using UnityEditor; |
|||
using UnityEngine; |
|||
using UnityEngine.MaterialGraph; |
|||
|
|||
namespace UnityEditor.MaterialGraph.Drawing |
|||
{ |
|||
class AnyNodeControlPresenter : GraphControlPresenter |
|||
{ |
|||
public override void OnGUIHandler() |
|||
{ |
|||
base.OnGUIHandler(); |
|||
|
|||
var tNode = node as UnityEngine.MaterialGraph.AnyNodeBase; |
|||
if (tNode == null) |
|||
return; |
|||
|
|||
var properties = tNode.properties; |
|||
|
|||
EditorGUI.BeginChangeCheck(); |
|||
UnityEngine.Graphing.ModificationScope modificationScope = UnityEngine.Graphing.ModificationScope.Node; |
|||
|
|||
foreach (AnyNodeProperty p in properties) |
|||
{ |
|||
AnyNodePropertyState newState = (AnyNodePropertyState) EditorGUILayout.EnumPopup(p.name, p.state); |
|||
if (newState != p.state) |
|||
{ |
|||
tNode.setPropertyState(p, newState); |
|||
|
|||
modificationScope = UnityEngine.Graphing.ModificationScope.Graph; |
|||
} |
|||
|
|||
bool disabled = p.state == AnyNodePropertyState.Slot; |
|||
EditorGUI.BeginDisabledGroup(disabled); |
|||
{ |
|||
switch (p.propertyType) |
|||
{ |
|||
case PropertyType.Color: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Texture: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Cubemap: |
|||
// TODO
|
|||
break; |
|||
case PropertyType.Float: |
|||
p.value.x = EditorGUILayout.FloatField("", p.value.x); |
|||
break; |
|||
case PropertyType.Vector2: |
|||
{ |
|||
Vector2 result = EditorGUILayout.Vector2Field("", new Vector2(p.value.x, p.value.y)); |
|||
p.value.x = result.x; |
|||
p.value.y = result.y; |
|||
} |
|||
break; |
|||
case PropertyType.Vector3: |
|||
p.value = EditorGUILayout.Vector3Field("", p.value); |
|||
break; |
|||
case PropertyType.Vector4: |
|||
p.value = EditorGUILayout.Vector4Field("", p.value); |
|||
break; |
|||
case PropertyType.Matrix2: |
|||
// p.value = EditorGUILayout.Matrix2Field("", p.value);
|
|||
break; |
|||
case PropertyType.Matrix3: |
|||
// p.value = EditorGUILayout.Matrix3Field("", p.value);
|
|||
break; |
|||
case PropertyType.Matrix4: |
|||
// p.value = EditorGUILayout.Matrix4Field("", p.value);
|
|||
break; |
|||
} |
|||
} |
|||
EditorGUI.EndDisabledGroup(); |
|||
} |
|||
|
|||
bool changed= EditorGUI.EndChangeCheck(); |
|||
|
|||
if (changed) |
|||
{ |
|||
if (tNode.onModified != null) |
|||
tNode.onModified(tNode, modificationScope); |
|||
} |
|||
} |
|||
|
|||
public override float GetHeight() |
|||
{ |
|||
var tNode = node as UnityEngine.MaterialGraph.AnyNodeBase; |
|||
if (tNode == null) |
|||
return EditorGUIUtility.standardVerticalSpacing; |
|||
|
|||
return (EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing) * tNode.propertyCount * 2 |
|||
+ EditorGUIUtility.standardVerticalSpacing; |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class AnyNodePresenter : PropertyNodePresenter |
|||
{ |
|||
protected override IEnumerable<GraphElementPresenter> GetControlData() |
|||
{ |
|||
var instance = CreateInstance<AnyNodeControlPresenter>(); |
|||
instance.Initialize(node); |
|||
return new List<GraphElementPresenter>(base.GetControlData()) { instance }; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: ce4472789956d684f89df3578d7d1d6d |
|||
timeCreated: 1495707441 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("Input/Scene Data/Camera Direction")] |
|||
public class CamDirNode : AbstractMaterialNode |
|||
{ |
|||
public CamDirNode() |
|||
{ |
|||
name = "CameraDirection"; |
|||
UpdateNodeAfterDeserialization(); |
|||
} |
|||
|
|||
private const int kOutputSlotId = 0; |
|||
private const string kOutputSlotName = "Output"; |
|||
|
|||
public override bool hasPreview { get { return true; } } |
|||
public override PreviewMode previewMode |
|||
{ |
|||
get { return PreviewMode.Preview2D; } |
|||
} |
|||
|
|||
|
|||
public sealed override void UpdateNodeAfterDeserialization() |
|||
{ |
|||
AddSlot(new MaterialSlot(kOutputSlotId, kOutputSlotName, kOutputSlotName, SlotType.Output, SlotValueType.Vector4, Vector4.zero)); |
|||
RemoveSlotsNameNotMatching(new[] { kOutputSlotId }); |
|||
} |
|||
|
|||
public override string GetVariableNameForSlot(int slotId) |
|||
{ |
|||
return "UNITY_MATRIX_IT_MV [2].xyz"; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: dd27728b9ce314209beef46e595204c5 |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("Input/Scene Data/Camera Position")] |
|||
public class CamPosNode : AbstractMaterialNode |
|||
{ |
|||
//TODO - should be a global and immpiment a Imayrequire
|
|||
public CamPosNode() |
|||
{ |
|||
name = "CameraPosition"; |
|||
UpdateNodeAfterDeserialization(); |
|||
} |
|||
|
|||
private const int kOutputSlotId = 0; |
|||
private const string kOutputSlotName = "Output"; |
|||
|
|||
public override bool hasPreview { get { return true; } } |
|||
public override PreviewMode previewMode |
|||
{ |
|||
get { return PreviewMode.Preview2D; } |
|||
} |
|||
|
|||
|
|||
public sealed override void UpdateNodeAfterDeserialization() |
|||
{ |
|||
AddSlot(new MaterialSlot(kOutputSlotId, kOutputSlotName, kOutputSlotName, SlotType.Output, SlotValueType.Vector4, Vector4.zero)); |
|||
RemoveSlotsNameNotMatching(new[] { kOutputSlotId }); |
|||
} |
|||
|
|||
public override string GetVariableNameForSlot(int slotId) |
|||
{ |
|||
return "_WorldSpaceCameraPos"; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 27a1751acacc54e278090fb991699a90 |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
1
MaterialGraphProject/Assets/_MingWai/Gradient.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 12adeac2a3368e94f9889377e4d426c2 |
|||
timeCreated: 1495742113 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
1
MaterialGraphProject/Assets/_MingWai/Gradient_Texture.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: ff2b03d7feb67a145835ad8adae9e0ad |
|||
timeCreated: 1495742113 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: AnimatedMaterial |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 8600000, guid: 3d2f7c217d996304986bdb68379c189e, type: 2} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9 |
|||
timeCreated: 1495742381 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: CustomTexture |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 2100000, guid: a04cf3d84ac9f56498f2ac8b907a5fa4, type: 2} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 1 |
|||
m_InitializationMode: 1 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 3d2f7c217d996304986bdb68379c189e |
|||
timeCreated: 1495741994 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 8 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 0} |
|||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_GIWorkflowMode: 1 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_TemporalCoherenceThreshold: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 9 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_TextureWidth: 1024 |
|||
m_TextureHeight: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 0 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVRFiltering: 0 |
|||
m_PVRFilteringMode: 1 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousColorSigma: 1 |
|||
m_PVRFilteringAtrousNormalSigma: 1 |
|||
m_PVRFilteringAtrousPositionSigma: 1 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_UseShadowmask: 1 |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1 &213559196 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 213559200} |
|||
- component: {fileID: 213559199} |
|||
- component: {fileID: 213559198} |
|||
- component: {fileID: 213559197} |
|||
m_Layer: 0 |
|||
m_Name: Cube (4) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &213559197 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &213559198 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &213559199 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &213559200 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 1.08, y: 2.64, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 6 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &262669736 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 262669740} |
|||
- component: {fileID: 262669739} |
|||
- component: {fileID: 262669738} |
|||
- component: {fileID: 262669737} |
|||
m_Layer: 0 |
|||
m_Name: Cube (1) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &262669737 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 498f1d2437c6bb84d8b82d451d56eaee, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &262669738 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &262669739 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &262669740 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 1.74, y: 1.17, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &267604125 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 267604129} |
|||
- component: {fileID: 267604128} |
|||
- component: {fileID: 267604127} |
|||
- component: {fileID: 267604126} |
|||
m_Layer: 0 |
|||
m_Name: Cube (6) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &267604126 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &267604127 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &267604128 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &267604129 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -0.81, y: -0.51, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 8 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1240285616 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1240285620} |
|||
- component: {fileID: 1240285619} |
|||
- component: {fileID: 1240285618} |
|||
- component: {fileID: 1240285617} |
|||
m_Layer: 0 |
|||
m_Name: Cube |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1240285617 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1240285618 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1240285619 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1240285620 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0.15, y: 1.17, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1251357087 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1251357091} |
|||
- component: {fileID: 1251357090} |
|||
- component: {fileID: 1251357089} |
|||
- component: {fileID: 1251357088} |
|||
m_Layer: 0 |
|||
m_Name: Cube (3) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1251357088 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1251357089 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1251357090 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1251357091 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -0.72, y: 2.65, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 5 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1257845278 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1257845283} |
|||
- component: {fileID: 1257845282} |
|||
- component: {fileID: 1257845281} |
|||
- component: {fileID: 1257845280} |
|||
- component: {fileID: 1257845279} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &1257845279 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!124 &1257845280 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!92 &1257845281 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1257845282 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 1 |
|||
m_AllowMSAA: 1 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
m_StereoMirrorMode: 0 |
|||
--- !u!4 &1257845283 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 1, z: -10} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1609885672 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1609885676} |
|||
- component: {fileID: 1609885675} |
|||
- component: {fileID: 1609885674} |
|||
- component: {fileID: 1609885673} |
|||
m_Layer: 0 |
|||
m_Name: Cube (2) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1609885673 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 498f1d2437c6bb84d8b82d451d56eaee, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1609885674 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1609885675 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1609885676 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -1.55, y: 1.2, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 4 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1701227851 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1701227855} |
|||
- component: {fileID: 1701227854} |
|||
- component: {fileID: 1701227853} |
|||
- component: {fileID: 1701227852} |
|||
m_Layer: 0 |
|||
m_Name: Cube (5) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1701227852 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1701227853 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1701227854 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1701227855 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0.93, y: -0.43, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 7 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1950489749 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1950489751} |
|||
- component: {fileID: 1950489750} |
|||
m_Layer: 0 |
|||
m_Name: Directional Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!108 &1950489750 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1950489749} |
|||
m_Enabled: 1 |
|||
serializedVersion: 8 |
|||
m_Type: 1 |
|||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 10 |
|||
m_SpotAngle: 30 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 2 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 1 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_Lightmapping: 4 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_FalloffTable: |
|||
m_Table[0]: 0 |
|||
m_Table[1]: 0 |
|||
m_Table[2]: 0 |
|||
m_Table[3]: 0 |
|||
m_Table[4]: 0 |
|||
m_Table[5]: 0 |
|||
m_Table[6]: 0 |
|||
m_Table[7]: 0 |
|||
m_Table[8]: 0 |
|||
m_Table[9]: 0 |
|||
m_Table[10]: 0 |
|||
m_Table[11]: 0 |
|||
m_Table[12]: 0 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &1950489751 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1950489749} |
|||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
|||
m_LocalPosition: {x: 0, y: 3, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: cf037fe0510459a4d9218aeb3c780b2b |
|||
timeCreated: 1495742354 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 17691048a8eeabd4baf339beaee72f46 |
|||
timeCreated: 1495742007 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3 |
|||
m_Shader: {fileID: 4800000, guid: 17691048a8eeabd4baf339beaee72f46, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_7a4ffc17_ec7a_49b8_a833_bdec799dea94_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 5485e2f56028a3c4cb54f5caa167377e, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Tex: |
|||
m_Texture: {fileID: 2800000, guid: 5485e2f56028a3c4cb54f5caa167377e, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: a04cf3d84ac9f56498f2ac8b907a5fa4 |
|||
timeCreated: 1495742291 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
guid: fbb15485f0112484eaa58e88a4ac393f |
撰写
预览
正在加载...
取消
保存
Reference in new issue