diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..2b5a94b
Binary files /dev/null and b/.DS_Store differ
diff --git a/Assets/.DS_Store b/Assets/.DS_Store
new file mode 100644
index 0000000..977e240
Binary files /dev/null and b/Assets/.DS_Store differ
diff --git a/Assets/Materials/Ground.mat b/Assets/Materials/Ground.mat
new file mode 100644
index 0000000..303e609
--- /dev/null
+++ b/Assets/Materials/Ground.mat
@@ -0,0 +1,142 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Ground
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 2800000, guid: 05cb056fb4807704d94083bc167b31f5, type: 3}
+ m_Scale: {x: 50, y: 50}
+ m_Offset: {x: 4.67, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowSmoothness: 0.5
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0.9607844, g: 0.9686275, b: 0.9803922, a: 1}
+ - _MainColor: {r: 0.9607844, g: 0.9686275, b: 0.9803922, a: 1}
+ - _ShadowColor: {r: 0.915, g: 0.915, b: 0.915, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Ground.mat.meta b/Assets/Materials/Ground.mat.meta
new file mode 100644
index 0000000..0b91248
--- /dev/null
+++ b/Assets/Materials/Ground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8b77d9e47ff43a7459e55a7989df34c6
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Sonic_Black.mat b/Assets/Materials/Sonic_Black.mat
new file mode 100644
index 0000000..324df3a
--- /dev/null
+++ b/Assets/Materials/Sonic_Black.mat
@@ -0,0 +1,142 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Sonic_Black
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 2800000, guid: 05cb056fb4807704d94083bc167b31f5, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowSmoothness: 0.5
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0, g: 0, b: 0, a: 1}
+ - _MainColor: {r: 0, g: 0, b: 0, a: 1}
+ - _ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Sonic_Black.mat.meta b/Assets/Materials/Sonic_Black.mat.meta
new file mode 100644
index 0000000..de53966
--- /dev/null
+++ b/Assets/Materials/Sonic_Black.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22a2f92d1085ea340ba2464c26bbed99
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Sonic_Blue.mat b/Assets/Materials/Sonic_Blue.mat
new file mode 100644
index 0000000..d39fb32
--- /dev/null
+++ b/Assets/Materials/Sonic_Blue.mat
@@ -0,0 +1,142 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Sonic_Blue
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 10, y: 10}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowSmoothness: 0.5
+ - _ShadowStep: 0.5
+ - _Smoothness: 1
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0.45098042, g: 0.7137255, b: 0.9960785, a: 1}
+ - _MainColor: {r: 0.23529413, g: 0.5647059, b: 0.91372555, a: 1}
+ - _ShadowColor: {r: 0.18077251, g: 0.43385395, b: 0.70199996, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Sonic_Blue.mat.meta b/Assets/Materials/Sonic_Blue.mat.meta
new file mode 100644
index 0000000..859a64f
--- /dev/null
+++ b/Assets/Materials/Sonic_Blue.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 50f80e2240c07864c8b123ac04d031b8
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Sonic_Red.mat b/Assets/Materials/Sonic_Red.mat
new file mode 100644
index 0000000..6f412ef
--- /dev/null
+++ b/Assets/Materials/Sonic_Red.mat
@@ -0,0 +1,142 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Sonic_Red
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 2800000, guid: 05cb056fb4807704d94083bc167b31f5, type: 3}
+ m_Scale: {x: 5, y: 5}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowSmoothness: 0.5
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0.7176471, g: 0.14901961, b: 0.08627451, a: 1}
+ - _MainColor: {r: 0.4901961, g: 0.08235294, b: 0.03529412, a: 1}
+ - _ShadowColor: {r: 0.39, g: 0.06551998, b: 0.028079987, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Sonic_Red.mat.meta b/Assets/Materials/Sonic_Red.mat.meta
new file mode 100644
index 0000000..c07a933
--- /dev/null
+++ b/Assets/Materials/Sonic_Red.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 55da7159b60cbc144af535b6a6ff9fa2
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Sonic_White.mat b/Assets/Materials/Sonic_White.mat
new file mode 100644
index 0000000..57ded86
--- /dev/null
+++ b/Assets/Materials/Sonic_White.mat
@@ -0,0 +1,142 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Sonic_White
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 10, y: 10}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowSmoothness: 0.5
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0.9607844, g: 0.9686275, b: 0.9803922, a: 1}
+ - _MainColor: {r: 0.67058825, g: 0.7411765, b: 0.8588236, a: 1}
+ - _ShadowColor: {r: 0.5981096, g: 0.6610685, b: 0.766, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Sonic_White.mat.meta b/Assets/Materials/Sonic_White.mat.meta
new file mode 100644
index 0000000..6e8e91f
--- /dev/null
+++ b/Assets/Materials/Sonic_White.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a6b6838000f5f3428dead7bdae0729f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Sonic_Yellow.mat b/Assets/Materials/Sonic_Yellow.mat
new file mode 100644
index 0000000..4617d79
--- /dev/null
+++ b/Assets/Materials/Sonic_Yellow.mat
@@ -0,0 +1,141 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Sonic_Yellow
+ m_Shader: {fileID: 4800000, guid: 16878c326e384f245bd7997182b1e139, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _ShadowMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HighlightColor: {r: 0.95294124, g: 0.854902, b: 0.5529412, a: 1}
+ - _MainColor: {r: 0.9333334, g: 0.81568635, b: 0.44705886, a: 1}
+ - _ShadowColor: {r: 0.83, g: 0.72537816, b: 0.39756304, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Sonic_Yellow.mat.meta b/Assets/Materials/Sonic_Yellow.mat.meta
new file mode 100644
index 0000000..34dd64c
--- /dev/null
+++ b/Assets/Materials/Sonic_Yellow.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: abc706a8a59871c4fb28490427412ff3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Toon1.mat b/Assets/Materials/Toon1.mat
new file mode 100644
index 0000000..4cab9e0
--- /dev/null
+++ b/Assets/Materials/Toon1.mat
@@ -0,0 +1,132 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Toon1
+ m_Shader: {fileID: 4800000, guid: 2f3713804e36646dda2f467ed512e004, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Toon1.mat.meta b/Assets/Materials/Toon1.mat.meta
new file mode 100644
index 0000000..ecd1090
--- /dev/null
+++ b/Assets/Materials/Toon1.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a5e61ab2dc00a47dfbc8b95846a30752
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Toon2.mat b/Assets/Materials/Toon2.mat
new file mode 100644
index 0000000..e74b494
--- /dev/null
+++ b/Assets/Materials/Toon2.mat
@@ -0,0 +1,134 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4506083849162155748
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 7
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Toon2
+ m_Shader: {fileID: 4800000, guid: 27611b4b7b59e46a592f9ae79d6e42de, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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: 0}
+ 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}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _ShadowStep: 0.5
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8867924, g: 0.55447763, b: 0.28862584, a: 1}
+ - _Color: {r: 0.09782784, g: 0.5188679, b: 0.04160734, a: 1}
+ - _Color1: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Toon2.mat.meta b/Assets/Materials/Toon2.mat.meta
new file mode 100644
index 0000000..331a6c0
--- /dev/null
+++ b/Assets/Materials/Toon2.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c7342280014514e7f93a06303c6b5190
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/Lab Scene 1.unity b/Assets/Scenes/Lab Scene 1.unity
index acae54e..60ade06 100644
--- a/Assets/Scenes/Lab Scene 1.unity
+++ b/Assets/Scenes/Lab Scene 1.unity
@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0.1802854, g: 0.22571602, b: 0.30692476, a: 1}
+ m_IndirectSpecularColor: {r: 0.18028516, g: 0.22571574, b: 0.30692407, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@@ -140,7 +140,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!114 &307408141
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -235,7 +235,7 @@ Transform:
m_GameObject: {fileID: 307408140}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0.58, y: 1.1467793, z: -3.51}
+ m_LocalPosition: {x: 1.783, y: 2.27, z: 1.341}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -327,8 +327,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543}
serializedVersion: 2
- m_LocalRotation: {x: 0.12718117, y: -0.7039343, z: 0.13040932, w: 0.6865092}
- m_LocalPosition: {x: 3.493, y: 2.477, z: 0}
+ m_LocalRotation: {x: -0.038131654, y: -0.9507278, z: 0.27886003, w: -0.12999883}
+ m_LocalPosition: {x: -0.33049214, y: 2.2201765, z: 1.1859138}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -556,7 +556,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ - {fileID: 2100000, guid: a5e61ab2dc00a47dfbc8b95846a30752, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -662,7 +662,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ - {fileID: 2100000, guid: c7342280014514e7f93a06303c6b5190, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
diff --git a/Assets/Scenes/Lab Scene 2.unity b/Assets/Scenes/Lab Scene 2.unity
index fae77c0..ce0be0f 100644
--- a/Assets/Scenes/Lab Scene 2.unity
+++ b/Assets/Scenes/Lab Scene 2.unity
@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
+ m_IndirectSpecularColor: {r: 0.17558266, g: 0.21970278, b: 0.30202767, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@@ -209,8 +209,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543}
serializedVersion: 2
- m_LocalRotation: {x: -0.033433102, y: 0.72074836, z: -0.034845546, w: -0.69151276}
- m_LocalPosition: {x: 4.8398438, y: 2, z: 0}
+ m_LocalRotation: {x: 0.044427417, y: -0.6534965, z: 0.038480897, w: 0.7546441}
+ m_LocalPosition: {x: 5.403064, y: 2.182105, z: -0.25135314}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -348,13 +348,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 410087039}
serializedVersion: 2
- m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalRotation: {x: 0.5600876, y: -0.121269844, z: 0.039395846, w: 0.81856185}
m_LocalPosition: {x: 0, y: 3, z: -2.61}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+ m_LocalEulerAnglesHint: {x: 67.894, y: -24.223, z: -10.929}
--- !u!114 &410087042
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -439,7 +439,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ - {fileID: 2100000, guid: 8b77d9e47ff43a7459e55a7989df34c6, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -477,13 +477,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1309247978}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalRotation: {x: -0, y: -0, z: -0.28356734, w: 0.95895237}
m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalScale: {x: 2.6165996, y: 2.6165996, z: 2.6165996}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: -32.946}
--- !u!1001 &1599074629
PrefabInstance:
m_ObjectHideFlags: 0
@@ -566,47 +566,137 @@ PrefabInstance:
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
+ - target: {fileID: -8602433362572305629, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
+ - target: {fileID: -7407988419630983719, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
+ - target: {fileID: -5733981035308023022, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 50f80e2240c07864c8b123ac04d031b8, type: 2}
- target: {fileID: -5493175262189019911, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 50f80e2240c07864c8b123ac04d031b8, type: 2}
+ - target: {fileID: -5326866014839177254, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
- target: {fileID: -4982485458470054150, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
+ - target: {fileID: -2750859397604594270, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
- target: {fileID: -1705196261938046187, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
+ - target: {fileID: -742350899316325245, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
- target: {fileID: -534966553111944830, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
- target: {fileID: 744112959957790968, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
- target: {fileID: 919132149155446097, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Name
value: Sonic Model
objectReference: {fileID: 0}
+ - target: {fileID: 1443583819320638466, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 22a2f92d1085ea340ba2464c26bbed99, type: 2}
+ - target: {fileID: 2035337607983341931, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 55da7159b60cbc144af535b6a6ff9fa2, type: 2}
+ - target: {fileID: 2035337607983341931, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[1]
+ value:
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
+ - target: {fileID: 2389692026055523335, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
+ - target: {fileID: 2413864688904672789, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 50f80e2240c07864c8b123ac04d031b8, type: 2}
+ - target: {fileID: 2945044530011656084, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 22a2f92d1085ea340ba2464c26bbed99, type: 2}
+ - target: {fileID: 3253409454975574844, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
+ - target: {fileID: 3791342574719154946, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 22a2f92d1085ea340ba2464c26bbed99, type: 2}
- target: {fileID: 5188758170544245908, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
- target: {fileID: 5804768582271061324, guid: 221abe15e8e581b43bb1d0dc4e10c784,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
- objectReference: {fileID: 2100000, guid: d60db1350aa31bd4080a3bb5e2541934, type: 2}
+ objectReference: {fileID: 2100000, guid: 50f80e2240c07864c8b123ac04d031b8, type: 2}
+ - target: {fileID: 5955265388225236956, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
+ - target: {fileID: 8259033719123135965, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 55da7159b60cbc144af535b6a6ff9fa2, type: 2}
+ - target: {fileID: 8259033719123135965, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[1]
+ value:
+ objectReference: {fileID: 2100000, guid: 7a6b6838000f5f3428dead7bdae0729f, type: 2}
+ - target: {fileID: 9074906319803942526, guid: 221abe15e8e581b43bb1d0dc4e10c784,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: abc706a8a59871c4fb28490427412ff3, type: 2}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
diff --git a/Assets/Shaders/.DS_Store b/Assets/Shaders/.DS_Store
new file mode 100644
index 0000000..2d378a4
Binary files /dev/null and b/Assets/Shaders/.DS_Store differ
diff --git a/Assets/Shaders/ToonShader.shader b/Assets/Shaders/ToonShader.shader
new file mode 100644
index 0000000..fd1520c
--- /dev/null
+++ b/Assets/Shaders/ToonShader.shader
@@ -0,0 +1,109 @@
+Shader "Custom/ToonShader"
+{
+ Properties
+ {
+ _MainColor ("Main Color", Color) = (1, 1, 1, 1)
+ _HighlightColor ("Highlight Color", Color) = (1, 1, 1, 1)
+ _ShadowColor ("Shadow Color", Color) = (1, 1, 1, 1)
+ _ShadowMap("Shadow Map", 2D) = "white"
+ _Smoothness("Smoothness", Float) = 0.5
+ }
+ SubShader
+ {
+
+ Tags { "LightMode" = "UniversalForward" "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
+
+ Pass
+ {
+ HLSLPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
+
+ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
+ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
+
+ struct Attributes
+ {
+ float4 positionOS : POSITION;
+ float3 normalOS : NORMAL;
+ float2 uv : TEXCOORD0;
+ };
+
+ struct Varyings
+ {
+ float4 positionCS : SV_POSITION;
+ float3 positionWS : TEXCOORD0;
+ float3 normal : TEXCOORD1;
+ float4 objPos : TEXCOORD2;
+ float4 shadowCoords : TEXCOORD3;
+ float2 uv : TEXCOORD4;
+ };
+
+
+ TEXTURE2D(_ShadowMap);
+ SAMPLER(sampler_ShadowMap);
+
+ CBUFFER_START(UnityPerMaterial)
+ half4 _MainColor;
+ half4 _HighlightColor;
+ half4 _ShadowColor;
+ float4 _ShadowMap_ST;
+ float _Smoothness;
+ CBUFFER_END
+
+ Varyings vert(Attributes IN)
+ {
+ Varyings OUT;
+
+ VertexPositionInputs positions = GetVertexPositionInputs(IN.positionOS.xyz);
+ VertexNormalInputs normals = GetVertexNormalInputs(IN.normalOS);
+
+ OUT.positionCS = positions.positionCS;
+ OUT.positionWS = positions.positionWS;
+ OUT.normal = normals.normalWS;
+
+ OUT.shadowCoords = GetShadowCoord(positions);
+
+ OUT.uv = TRANSFORM_TEX(IN.uv, _ShadowMap);
+
+ return OUT;
+ }
+
+ half4 GetShadowColor(half shadow, float2 uv)
+ {
+ half4 tex = SAMPLE_TEXTURE2D(_ShadowMap, sampler_ShadowMap, uv);
+ half4 shadowColor = tex * _ShadowColor;
+ return shadow * _MainColor + (1-shadow) * shadowColor;
+ }
+ half4 GetSmoothColor(float NdotL)
+ {
+ if(NdotL < 0.5) return _MainColor;
+ float theta = acos(NdotL) * 180 / 3.1415926;
+
+ float u = smoothstep(15 - _Smoothness * 15, 15 + _Smoothness * 15, theta);
+
+ half4 res = u * _MainColor + (1-u) * _HighlightColor;
+ return res;
+ }
+
+ half4 frag(Varyings IN) : SV_Target
+ {
+ Light mainLight = GetMainLight();
+
+ float3 N = normalize(IN.normal);
+ float3 L = mainLight.direction;
+
+ float NdotL = saturate(dot(N, L));
+
+ half shadowAmount = MainLightRealtimeShadow(IN.shadowCoords);
+
+ return shadowAmount < 0.5 ? GetShadowColor(shadowAmount, IN.uv) : GetSmoothColor(NdotL);
+ }
+
+ ENDHLSL
+ }
+ }
+ FallBack "Diffuse"
+}
diff --git a/Assets/Shaders/ToonShader.shader.meta b/Assets/Shaders/ToonShader.shader.meta
new file mode 100644
index 0000000..d875974
--- /dev/null
+++ b/Assets/Shaders/ToonShader.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 16878c326e384f245bd7997182b1e139
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders/ToonShader1.shader b/Assets/Shaders/ToonShader1.shader
new file mode 100644
index 0000000..fc49230
--- /dev/null
+++ b/Assets/Shaders/ToonShader1.shader
@@ -0,0 +1,76 @@
+Shader "Custom/ToonShader1"
+{
+ Properties
+ {
+ _Color ("Color", Color) = (1,1,1,1)
+ }
+ SubShader
+ {
+ Tags { "RenderType"="Opaque" }
+ LOD 100
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+ #include "UnityStandardBRDF.cginc"
+ #include "AutoLight.cginc"
+ #include "Lighting.cginc"
+
+ struct appdata
+ {
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ float3 normal : NORMAL;
+ };
+
+ struct v2f
+ {
+ float3 worldPos : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ float3 normal : TEXCOORD1;
+ float4 objPos : TEXCOORD2;
+ };
+
+ float4 _Color;
+
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.vertex = UnityObjectToClipPos(v.vertex);
+ o.objPos = v.vertex;
+ o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
+ o.normal = UnityObjectToWorldNormal(v.normal);
+ return o;
+ }
+
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ float4 col = _Color;
+
+ float3 L = normalize(lerp(_WorldSpaceLightPos0.xyz, _WorldSpaceLightPos0.xyz - i.worldPos.xyz, _WorldSpaceLightPos0.w));
+ float3 V = normalize(_WorldSpaceCameraPos.xyz - i.vertex.xyz);
+ float3 H = Unity_SafeNormalize(L + V);
+ float3 N = i.normal;
+
+ float NdotL = saturate( dot( N,L ));
+ float NdotH = saturate( dot( N,H ));
+ float NdotV = saturate( dot( N,V ));
+ float VdotH = saturate( dot( V,H ));
+ float LdotH = saturate( dot( L,H ));
+
+ col *= NdotL > 0.9 ? 2.0 : 1.0;
+ //col = float4(i.objPos.xyz, 1.0);
+ //return float4(col, 1);
+ return col;
+ }
+ ENDCG
+ }
+ }
+ FallBack "Diffuse"
+}
diff --git a/Assets/Shaders/ToonShader1.shader.meta b/Assets/Shaders/ToonShader1.shader.meta
new file mode 100644
index 0000000..44a859a
--- /dev/null
+++ b/Assets/Shaders/ToonShader1.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2f3713804e36646dda2f467ed512e004
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders/ToonShader2.shader b/Assets/Shaders/ToonShader2.shader
new file mode 100644
index 0000000..562f5cc
--- /dev/null
+++ b/Assets/Shaders/ToonShader2.shader
@@ -0,0 +1,82 @@
+Shader "Custom/ToonShader2"
+{
+
+ Properties
+ {
+ _BaseColor("Base Color", Color) = (1, 1, 1, 1)
+ }
+ SubShader
+ {
+
+ Tags { "LightMode" = "UniversalForward" "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
+
+ Pass
+ {
+ HLSLPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
+
+ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
+ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
+
+ CBUFFER_START(UnityPerMaterial)
+ half4 _BaseColor;
+ CBUFFER_END
+
+ struct appdata
+ {
+ float4 position : POSITION;
+ float3 normal : NORMAL;
+ };
+
+ struct v2f
+ {
+ float3 worldPos : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ float3 normal : TEXCOORD1;
+ float4 objPos : TEXCOORD2;
+ float4 shadowCoords : TEXCOORD3;
+ };
+
+ v2f vert(appdata v)
+ {
+ v2f o;
+
+ o.vertex = TransformObjectToHClip(v.position.xyz);
+
+ // Get the VertexPositionInputs for the vertex position
+ VertexPositionInputs positions = GetVertexPositionInputs(v.position.xyz);
+ VertexNormalInputs normals = GetVertexNormalInputs(v.normal);
+
+ // Convert the vertex position to a position on the shadow map
+ float4 shadowCoordinates = GetShadowCoord(positions);
+
+ // Pass the shadow coordinates to the fragment shader
+ o.shadowCoords = shadowCoordinates;
+
+
+ o.objPos = v.position;
+ o.worldPos = positions.positionWS;
+ o.normal = normals.normalWS;
+
+ return o;
+ }
+
+ half4 frag(v2f i) : SV_Target
+ {
+ float4 col = _BaseColor;
+ half shadowAmount = MainLightRealtimeShadow(i.shadowCoords);
+
+ Light mainLight = GetMainLight();
+
+ col *= shadowAmount < 1 ? 0.3 : 1.0;
+
+ return col;
+ }
+
+ ENDHLSL
+ }
+ }
+}
diff --git a/Assets/Shaders/ToonShader2.shader.meta b/Assets/Shaders/ToonShader2.shader.meta
new file mode 100644
index 0000000..8ea9724
--- /dev/null
+++ b/Assets/Shaders/ToonShader2.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 27611b4b7b59e46a592f9ae79d6e42de
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/README.md b/README.md
index b8551a7..bdb5aa5 100644
--- a/README.md
+++ b/README.md
@@ -1,44 +1,27 @@
# Lab 05 - Stylization!
-Let's practice adding stylization to a 3D scene using Unity's shader graph!
-
-## Introduction
-We will be stylizing a "toon" look by creating a shader in Unity that supports shadows and multiple lights in real-time! In the process, you will gain some familiarity with Unity’s shader graph.
-
-## What’s provided:
-This tutorial video will cover the base code, and then go over the process of making a limited version of a toon shader.
-
-Start by downloading Unity 2022.3.9f1
-
-[Lab Overview and Puzzle 1 Tutorial Video](https://youtu.be/jc5MLgzJong)
-
-## Lab Puzzles:
-The goal of each puzzle will be to replicate the look of each puzzle’s image.
### 1. Puzzle 1: Simple two-tone toon shading
-
+
- * Follow the tutorial to create a 2 band toon shader, and then create multiple materials based off of the shader graph
- * Attach those materials to the objects (the sphere and plane) in the default scene "Lab Scene 1" to produce a look similar to the one above!
### 2. Puzzle 2: Leveled-up toon shading
-
+
- * Edit your materials to allow for a 3rd color in your scene, such that you have highlights, midtones, shadows on your objects. Edit your shader so that the thresholds on these values are adjustable.
- * Shade the sonic and shadow receiving plane in "Lab Scene 2" to get a look similar to the one above!
### 3. Puzzle 3: Stylized Shadow
-
+
- * Use one of the provided texture png’s in order to add a screenspace shadow pattern onto the shadows of the scene!
- * Hint 1: What does the "ShadowAttenuation" variable do?
-Extra Credit:
- * Add some soft interpolation at the edges of your bands, for smooth transitions between color bands. Create a "smoothness" parameter that adjusts the degree of smoothness!
+### Extra Credit:
+
+##### Smooth = 0.0
+
-# Submission:
-- Create a pull request against this repository
-- In your readme, add screenshots of your results for Puzzles 1, 2 and 3
-- Profit
+##### Smooth = 0.5
+
+
+##### Smooth = 1.0
+