Browse Source

combine meshes

Marcel Zickler 3 years ago
parent
commit
1f8615bd6d
40 changed files with 1451 additions and 501 deletions
  1. 4 0
      .idea/.idea.VRCycling/.idea/encodings.xml
  2. 8 0
      .idea/.idea.VRCycling/.idea/indexLayout.xml
  3. 2 0
      Assembly-CSharp-Editor.csproj
  4. 4 0
      Assembly-CSharp.csproj
  5. 9 0
      Assets/MeshCombiner/Editor.meta
  6. 85 0
      Assets/MeshCombiner/Editor/CombineMeshesEditor.cs
  7. 12 0
      Assets/MeshCombiner/Editor/CombineMeshesEditor.cs.meta
  8. 25 0
      Assets/MeshCombiner/Editor/CreateCombinedStaticMeshInstance.cs
  9. 12 0
      Assets/MeshCombiner/Editor/CreateCombinedStaticMeshInstance.cs.meta
  10. 7 0
      Assets/MeshCombiner/HDRP/Mesh Combiner_2019.3.2_HDRP.unitypackage.meta
  11. 9 0
      Assets/MeshCombiner/Materials.meta
  12. 321 0
      Assets/MeshCombiner/Materials/New Material.mat
  13. 9 0
      Assets/MeshCombiner/Materials/New Material.mat.meta
  14. 8 0
      Assets/MeshCombiner/MesheData.meta
  15. 99 0
      Assets/MeshCombiner/MesheData/GameObject (1).asset
  16. 8 0
      Assets/MeshCombiner/MesheData/GameObject (1).asset.meta
  17. 96 0
      Assets/MeshCombiner/MesheData/GameObject 1.asset
  18. 8 0
      Assets/MeshCombiner/MesheData/GameObject 1.asset.meta
  19. 99 0
      Assets/MeshCombiner/MesheData/GameObject.asset
  20. 8 0
      Assets/MeshCombiner/MesheData/GameObject.asset.meta
  21. 49 0
      Assets/MeshCombiner/RateStaticMeshCombiner.cs
  22. 11 0
      Assets/MeshCombiner/RateStaticMeshCombiner.cs.meta
  23. 49 0
      Assets/MeshCombiner/Readme.txt
  24. 8 0
      Assets/MeshCombiner/Readme.txt.meta
  25. 9 0
      Assets/MeshCombiner/Scripts.meta
  26. 85 0
      Assets/MeshCombiner/Scripts/CombineMeshes.cs
  27. 12 0
      Assets/MeshCombiner/Scripts/CombineMeshes.cs.meta
  28. 7 0
      Assets/MeshCombiner/Standard/Mesh Combiner_2018.4.15_Standard.unitypackage.meta
  29. 7 0
      Assets/MeshCombiner/URP/Mesh Combiner_2019.3.2_URP.unitypackage.meta
  30. 64 445
      Assets/Scenes/MainScene.unity
  31. 169 0
      Assets/Scripts/SimpleCameraController.cs
  32. 11 0
      Assets/Scripts/SimpleCameraController.cs.meta
  33. 1 40
      Assets/Settings/ForwardRenderer.asset
  34. 118 0
      Assets/Settings/SampleSceneProfile.asset
  35. 8 0
      Assets/Settings/SampleSceneProfile.asset.meta
  36. 7 9
      Assets/Settings/UniversalRP-HighQuality.asset
  37. 1 3
      Assets/Settings/UniversalRP-LowQuality.asset
  38. 1 3
      Assets/Settings/UniversalRP-MediumQuality.asset
  39. 1 1
      ProjectSettings/QualitySettings.asset
  40. BIN
      obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache

+ 4 - 0
.idea/.idea.VRCycling/.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
+</project>

+ 8 - 0
.idea/.idea.VRCycling/.idea/indexLayout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>

+ 2 - 0
Assembly-CSharp-Editor.csproj

@@ -62,6 +62,8 @@
      <Compile Include="Assets\Editor\MaterialAnalyzer.cs" />
      <Compile Include="Assets\Editor\Tests\BikePhysicsTest.cs" />
      <Compile Include="Assets\Editor\Tests\QuartilesTest.cs" />
+     <Compile Include="Assets\MeshCombiner\Editor\CreateCombinedStaticMeshInstance.cs" />
+     <Compile Include="Assets\MeshCombiner\Editor\CombineMeshesEditor.cs" />
  <Reference Include="UnityEditor.TestRunner">
  <HintPath>C:/Users/student/RiderProjects/VRCycling/Library/ScriptAssemblies/UnityEditor.TestRunner.dll</HintPath>
  </Reference>

+ 4 - 0
Assembly-CSharp.csproj

@@ -344,6 +344,9 @@
      <Compile Include="Assets\AdvancedAnt\Plugins\Ant\Fit\Profile\Types\StrokeType.cs" />
      <Compile Include="Assets\AdvancedAnt\Scripts\SpeedDisplay.cs" />
      <Compile Include="Assets\AdvancedAnt\Plugins\Ant\Fit\Mesg.cs" />
+     <Compile Include="Assets\MeshCombiner\Scripts\CombineMeshes.cs" />
+     <Compile Include="Assets\Scripts\SimpleCameraController.cs" />
+     <Compile Include="Assets\MeshCombiner\RateStaticMeshCombiner.cs" />
      <None Include="Assets\TextMesh Pro\Shaders\TMPro.cginc" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile Overlay.shader" />
      <None Include="Assets\AdvancedAnt\Plugins\Ant\License.txt" />
@@ -379,6 +382,7 @@
      <None Include="Assets\TextMesh Pro\Shaders\TMPro_Properties.cginc" />
      <None Include="Assets\AdvancedAnt\PC_MAC_readme.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMPro_Surface.cginc" />
+     <None Include="Assets\MeshCombiner\Readme.txt" />
      <None Include="Assets\Packages\Makaretu.Dns.2.0.1\lib\net45\Makaretu.Dns.xml" />
      <None Include="Assets\TextMesh Pro\Resources\LineBreaking Following Characters.txt" />
      <None Include="Assets\Packages\System.Security.Cryptography.Primitives.4.3.0\ThirdPartyNotices.txt" />

+ 9 - 0
Assets/MeshCombiner/Editor.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a8e13240d68efbb4abd4353a5ed8125f
+folderAsset: yes
+timeCreated: 1550006090
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 85 - 0
Assets/MeshCombiner/Editor/CombineMeshesEditor.cs

@@ -0,0 +1,85 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using System.Reflection;
+using System.IO;
+
+namespace LylekGames {
+[CustomEditor(typeof(CombineMeshes))]
+	public class CombineMeshesEditor : UnityEditor.Editor {
+		CombineMeshes myCombine;
+
+        public void OnEnable()
+        {
+            myCombine = (CombineMeshes)target;
+            myCombine.Start();
+        }
+        public override void OnInspectorGUI() {
+			myCombine = (CombineMeshes)target;
+			DrawDefaultInspector();
+            if (myCombine.myMeshFilter.sharedMesh == null)
+            {
+                if (GUILayout.Button("Combine Meshes"))
+                    myCombine.EnableMeshNewCollider();
+            }
+            if (myCombine.myMeshFilter.sharedMesh != null)
+            {
+                if (GUILayout.Button("Save As Prefab (DESTRUCTIVE)"))
+                    SaveMeshData(true);
+                if (GUILayout.Button("Save As Prefab (Non-Destructive)"))
+                    SaveMeshData(false);
+                if (GUILayout.Button("Disable Meshes"))
+                {
+                    myCombine.DisableMesh();
+                    EditorGUIUtility.ExitGUI();
+                }
+            }
+        }
+        public void SaveMeshData(bool destructive = false)
+        {
+            if (PrefabUtility.GetPrefabInstanceStatus(myCombine.gameObject) == PrefabInstanceStatus.Connected)
+                PrefabUtility.UnpackPrefabInstance(myCombine.gameObject, PrefabUnpackMode.Completely, InteractionMode.AutomatedAction);
+            if (!Directory.Exists(Application.dataPath + "/MeshCombiner/Prefabs/"))
+                Directory.CreateDirectory(Application.dataPath + "/MeshCombiner/Prefabs/");
+            if (!Directory.Exists(Application.dataPath + "/MeshCombiner/MesheData/"))
+                Directory.CreateDirectory(Application.dataPath + "/MeshCombiner/MesheData/");
+            AssetDatabase.SaveAssets();
+            AssetDatabase.Refresh();
+
+            //SAVE MESH AND CREATE PREFAB
+            SaveMesh(myCombine.myMeshFilter, destructive);
+            Debug.Log("Data saved successfully.");
+        }
+        public void SaveMesh(MeshFilter meshFilter, bool destructive = false)
+        {
+            //SAVE MESH DATA
+            AssetDatabase.CreateAsset(meshFilter.sharedMesh, "Assets/MeshCombiner/MesheData/" + meshFilter.gameObject.name + ".asset");
+            AssetDatabase.SaveAssets();
+            AssetDatabase.Refresh();
+            //SET OUR GAMEOBJECT'S MESH DATA AS OUR NEW SAVED MESH DATA
+            meshFilter.sharedMesh = (Mesh)AssetDatabase.LoadAssetAtPath("Assets/MeshCombiner/MesheData/" + meshFilter.gameObject.name + ".asset", typeof(Mesh));
+            //REMOVE OUR CHILD OBJECTS
+            if (destructive)
+            {
+                int childCount = meshFilter.gameObject.transform.childCount;
+                for (int i = 0; i < childCount; i++)
+                    DestroyImmediate(meshFilter.transform.GetChild(0).gameObject);
+            }
+            MeshCollider meshCollider = null;
+            if (!meshFilter.gameObject.GetComponent<MeshCollider>())
+                meshCollider = meshFilter.gameObject.AddComponent<MeshCollider>();
+            else
+                meshCollider = meshFilter.gameObject.GetComponent<MeshCollider>();
+            meshCollider.sharedMesh = meshFilter.sharedMesh;
+            //------------------CREATE A PREFAB OF THIS GAMEOBJECT------------------//
+            PrefabUtility.SaveAsPrefabAssetAndConnect(myCombine.gameObject, "Assets/MeshCombiner/Prefabs/" + meshFilter.gameObject.name + ".prefab", InteractionMode.UserAction);
+            DestroyImmediate(myCombine);
+            //REMOVE THE COMBINE SCRIPT FROM OUR PREFAB, WE WON'T BE NEEDING IT ANYMORE
+            GameObject prefab = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/MeshCombiner/Prefabs/" + meshFilter.gameObject.name + ".prefab", typeof(GameObject));
+            if (prefab != null)
+                if (prefab.GetComponent<CombineMeshes>())
+                    DestroyImmediate(prefab.GetComponent<CombineMeshes>(), true);
+        }
+    }
+}

+ 12 - 0
Assets/MeshCombiner/Editor/CombineMeshesEditor.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2957d31ed0f2b844a88f19d8f2815ada
+timeCreated: 1519243895
+licenseType: Store
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 25 - 0
Assets/MeshCombiner/Editor/CreateCombinedStaticMeshInstance.cs

@@ -0,0 +1,25 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+namespace LylekGames {
+	public class CreateCombinedStaticMeshInstance {
+        
+        [MenuItem("Tools/Combine/Static Meshes")]
+        private static void CombineStaticMeshesNewCollider()
+        {
+            //MY OBJECT
+            Object selectedObject = Selection.activeObject;
+            GameObject myObject = (GameObject)selectedObject;
+
+            CombineMeshes myCombine;
+            if (!myObject.GetComponent<CombineMeshes>())
+                myCombine = myObject.AddComponent<CombineMeshes>();
+            else
+                myCombine = myObject.GetComponent<CombineMeshes>();
+            myCombine.Start();
+            myCombine.EnableMeshNewCollider();
+        }
+    }
+}

+ 12 - 0
Assets/MeshCombiner/Editor/CreateCombinedStaticMeshInstance.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a3ac6d77d299b9c478aeaff8727903cd
+timeCreated: 1550006090
+licenseType: Store
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
Assets/MeshCombiner/HDRP/Mesh Combiner_2019.3.2_HDRP.unitypackage.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5147c378a83cc5247ba7d765c8e6b7ac
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/MeshCombiner/Materials.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a77d5dd2ad51a234cb0faf0787ee6b9b
+folderAsset: yes
+timeCreated: 1550094735
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 321 - 0
Assets/MeshCombiner/Materials/New Material.mat

@@ -0,0 +1,321 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-835571794234561779
+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: da692e001514ec24dbc4cca1949ff7e8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  version: 0
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: New Material
+  m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 2050
+  stringTagMap:
+    RenderType: Opaque
+  disabledShaderPasses:
+  - DistortionVectors
+  - TransparentDepthPrepass
+  - TransparentDepthPostpass
+  - TransparentBackface
+  - MOTIONVECTORS
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _AnisotropyMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BaseColorMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BaseMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BentNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BentNormalMapOS:
+        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}
+    - _CoatMaskMap:
+        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}
+    - _DetailMap:
+        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}
+    - _DistortionVectorMap:
+        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}
+    - _EmissiveColorMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _HeightMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _IridescenceMaskMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _IridescenceThicknessMap:
+        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}
+    - _MaskMap:
+        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}
+    - _NormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _NormalMapOS:
+        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}
+    - _SpecularColorMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SubsurfaceMaskMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _TangentMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _TangentMapOS:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ThicknessMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _TransmittanceColorMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _AORemapMax: 1
+    - _AORemapMin: 0
+    - _ATDistance: 1
+    - _AddPrecomputedVelocity: 0
+    - _AlbedoAffectEmissive: 0
+    - _AlphaClip: 0
+    - _AlphaCutoff: 0.5
+    - _AlphaCutoffEnable: 0
+    - _AlphaCutoffPostpass: 0.5
+    - _AlphaCutoffPrepass: 0.5
+    - _AlphaCutoffShadow: 0.5
+    - _AlphaDstBlend: 0
+    - _AlphaSrcBlend: 1
+    - _Anisotropy: 0
+    - _Blend: 0
+    - _BlendMode: 0
+    - _BumpScale: 1
+    - _CoatMask: 0
+    - _Cull: 2
+    - _CullMode: 2
+    - _CullModeForward: 2
+    - _Cutoff: 0.5
+    - _DepthOffsetEnable: 0
+    - _DetailAlbedoScale: 1
+    - _DetailNormalMapScale: 1
+    - _DetailNormalScale: 1
+    - _DetailSmoothnessScale: 1
+    - _DiffusionProfile: 0
+    - _DiffusionProfileHash: 0
+    - _DisplacementLockObjectScale: 1
+    - _DisplacementLockTilingScale: 1
+    - _DisplacementMode: 0
+    - _DistortionBlendMode: 0
+    - _DistortionBlurBlendMode: 0
+    - _DistortionBlurDstBlend: 1
+    - _DistortionBlurRemapMax: 1
+    - _DistortionBlurRemapMin: 0
+    - _DistortionBlurScale: 1
+    - _DistortionBlurSrcBlend: 1
+    - _DistortionDepthTest: 1
+    - _DistortionDstBlend: 1
+    - _DistortionEnable: 0
+    - _DistortionScale: 1
+    - _DistortionSrcBlend: 1
+    - _DistortionVectorBias: -1
+    - _DistortionVectorScale: 2
+    - _DoubleSidedEnable: 0
+    - _DoubleSidedNormalMode: 1
+    - _DstBlend: 0
+    - _EmissiveColorMode: 1
+    - _EmissiveExposureWeight: 1
+    - _EmissiveIntensity: 1
+    - _EmissiveIntensityUnit: 0
+    - _EnableBlendModePreserveSpecularLighting: 1
+    - _EnableFogOnTransparent: 1
+    - _EnableGeometricSpecularAA: 0
+    - _EnergyConservingSpecularColor: 1
+    - _EnvironmentReflections: 1
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _HdrpVersion: 2
+    - _HeightAmplitude: 0.02
+    - _HeightCenter: 0.5
+    - _HeightMapParametrization: 0
+    - _HeightMax: 1
+    - _HeightMin: -1
+    - _HeightOffset: 0
+    - _HeightPoMAmplitude: 2
+    - _HeightTessAmplitude: 2
+    - _HeightTessCenter: 0.5
+    - _InvTilingScale: 1
+    - _Ior: 1.5
+    - _IridescenceMask: 1
+    - _IridescenceThickness: 1
+    - _LinkDetailsWithBase: 0
+    - _MaterialID: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _NormalMapSpace: 0
+    - _NormalScale: 1
+    - _OcclusionStrength: 1
+    - _PPDLodThreshold: 5
+    - _PPDMaxSamples: 15
+    - _PPDMinSamples: 5
+    - _PPDPrimitiveLength: 1
+    - _PPDPrimitiveWidth: 1
+    - _Parallax: 0.02
+    - _QueueOffset: 0
+    - _ReceiveShadows: 1
+    - _ReceivesSSR: 1
+    - _RefractionModel: 0
+    - _SSRefractionProjectionModel: 0
+    - _Smoothness: 0.2
+    - _SmoothnessRemapMax: 0.5
+    - _SmoothnessRemapMin: 0
+    - _SmoothnessTextureChannel: 0
+    - _SpecularAAScreenSpaceVariance: 0.1
+    - _SpecularAAThreshold: 0.2
+    - _SpecularHighlights: 1
+    - _SpecularOcclusionMode: 1
+    - _SrcBlend: 1
+    - _StencilRef: 2
+    - _StencilRefDepth: 0
+    - _StencilRefDistortionVec: 64
+    - _StencilRefGBuffer: 2
+    - _StencilRefMV: 128
+    - _StencilWriteMask: 3
+    - _StencilWriteMaskDepth: 48
+    - _StencilWriteMaskDistortionVec: 64
+    - _StencilWriteMaskGBuffer: 51
+    - _StencilWriteMaskMV: 176
+    - _SubsurfaceMask: 1
+    - _SupportDecals: 1
+    - _Surface: 0
+    - _SurfaceType: 0
+    - _TexWorldScale: 1
+    - _TexWorldScaleEmissive: 1
+    - _Thickness: 1
+    - _TransmissionEnable: 1
+    - _TransparentBackfaceEnable: 0
+    - _TransparentCullMode: 2
+    - _TransparentDepthPostpassEnable: 0
+    - _TransparentDepthPrepassEnable: 0
+    - _TransparentSortPriority: 0
+    - _TransparentWritingMotionVec: 0
+    - _UVBase: 0
+    - _UVDetail: 0
+    - _UVEmissive: 0
+    - _UVSec: 0
+    - _UseEmissiveIntensity: 0
+    - _UseShadowThreshold: 0
+    - _WorkflowMode: 1
+    - _ZTestDepthEqualForOpaque: 3
+    - _ZTestGBuffer: 4
+    - _ZTestModeDistortion: 4
+    - _ZTestTransparent: 4
+    - _ZWrite: 1
+    m_Colors:
+    - _BaseColor: {r: 0, g: 0.751724, b: 1, a: 1}
+    - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
+    - _Color: {r: 0, g: 0.751724, b: 1, a: 1}
+    - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
+    - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
+    - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+    - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
+    - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
+    - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+    - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
+    - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
+    - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
+    - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
+    - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
+    - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}

+ 9 - 0
Assets/MeshCombiner/Materials/New Material.mat.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d36e2ae9bb4a8304cb4b11e1d60b7716
+timeCreated: 1550094744
+licenseType: Store
+NativeFormatImporter:
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/MeshCombiner/MesheData.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 41f3672015de490449ec69055241cc66
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

File diff suppressed because it is too large
+ 99 - 0
Assets/MeshCombiner/MesheData/GameObject (1).asset


+ 8 - 0
Assets/MeshCombiner/MesheData/GameObject (1).asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3067af804fc87ad4a9d7be844b40c2a4
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

File diff suppressed because it is too large
+ 96 - 0
Assets/MeshCombiner/MesheData/GameObject 1.asset


+ 8 - 0
Assets/MeshCombiner/MesheData/GameObject 1.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 777df41ec79068246a690b660a1079b5
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 4300000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

File diff suppressed because it is too large
+ 99 - 0
Assets/MeshCombiner/MesheData/GameObject.asset


+ 8 - 0
Assets/MeshCombiner/MesheData/GameObject.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e5be6eed8ffdc3448a5fe2031cc96f9
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 4300000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 49 - 0
Assets/MeshCombiner/RateStaticMeshCombiner.cs

@@ -0,0 +1,49 @@
+#if UNITY_EDITOR
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+[InitializeOnLoad]
+public class RateStaticMeshCombiner : Editor
+{
+
+    public static string namePackage;
+    public static string rateUrl;
+    public static float timer;
+
+    static RateStaticMeshCombiner() 
+    {
+        namePackage = "Static Mesh Combiner";
+        rateUrl = "https://assetstore.unity.com/packages/tools/modeling/same-material-static-mesh-combiner-139565";
+        timer = 300f;
+        
+        if (!EditorPrefs.GetBool("RateAsset_" + namePackage + "_bool"))
+            EditorApplication.update += UpdateTime;
+    }
+    static void UpdateTime()
+    {
+        if (EditorPrefs.GetBool("RateAsset_" + namePackage + "_bool"))
+            EditorApplication.update -= UpdateTime;
+        if (timer < 0)
+        {
+            OpenWindow();
+            EditorPrefs.SetBool("RateAsset_" + namePackage + "_bool", true);
+            EditorApplication.update -= UpdateTime;
+        }
+        else
+            timer -= 1 * Time.deltaTime;
+    }
+    static void OpenWindow()
+    {
+        int window = EditorUtility.DisplayDialogComplex("   " + namePackage + " | Leave a Rating?", "If you enjoy " + namePackage + " please take a moment to rate the asset.\n\nThank you for your support!", "Certainly!", "Never", "Cancel");
+
+        switch (window)
+        {
+            case 0:
+                Application.OpenURL(rateUrl);
+                break;
+        }
+        EditorPrefs.SetBool("RateAsset_" + namePackage + "_bool", true);
+    } 
+}
+#endif

+ 11 - 0
Assets/MeshCombiner/RateStaticMeshCombiner.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 645245b4b65fb8b4a8bb26488accee9c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 49 - 0
Assets/MeshCombiner/Readme.txt

@@ -0,0 +1,49 @@
+/*
+[README COMBINE]
+Same Material - Combine Static Meshes
+Lylek Games
+
+[COMBINED STATIC MESHES]
+FOR USE IN THE EDITOR!
+This script is design to combine multipl meshes (with the same material) into a single mesh. To do this,
+first create an empty game object, then drag and your meshes inside so that they are children of the empty gameobject.
+Now simply select the empty game object and press Tools > Combine > Static Meshes! All done! Feel free to take a look
+at the components of the once empty game object. You will find that the CombineMeshes script has been added. You may
+use this script to revert the empty game object back to normal and restore (set active) the child meshes.
+
+[Update 1.1.3]
+- Added precautions to prevent improper use of the combine script. (Do not add the script to objects with existing mesh data).
+
+[Update 1.1.2]
+- You can now save your combined meshes as prefabs! After using the combine method, a save option will be available
+in the Editor, via the CombineMeshes script, attached to the combined gameObject.
+
+- Your prefab, as well as the mesh data that is created, will be named the name of your GameObject. Saving gameObjects
+of identical names may override existing prefabs.
+
+- You have the option to save destructive or non destructive. Saving destructive will destroy all child gameObjects.
+Saving non destructive will preserve all child gameObjects.
+
+
+VIDEO DEMO: https://www.youtube.com/watch?v=cLUvJ1P010A
+
+I have included a 'RateStaticMeshCombiner' script which will propmpt the user (you!) to rate this asset. This prompt
+should only ever appear the one time, regarless of your choice. If there are any issues with this prompt, please let
+me know, or simply delete the script located directly in the CombineMeshes folder. Thanks!
+
+[SUPPORT]
+We do our best to make our assets as user-friendly as possible; please, by all means, do not hesitate to send us an email if you have any questions or comments!
+support@lylekgames.com, or visit http://www.lylekgames.com/contacts
+
+**Please leave a rating and review! Even a small review may help immensely with prioritizing updates.**
+(Assets with few and infrequent reviews/ratings tend to have less of a priority and my be late or miss-out on crucial compatibility updates, or even be depricated.)
+Thank you! =)
+
+*******************************************************************************************
+
+Website
+http://www.lylekgames.com/
+
+Support
+http://www.lylekgames.com/contacts
+*/

+ 8 - 0
Assets/MeshCombiner/Readme.txt.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0aa1291c5d5ad9149b7c794e477880ec
+timeCreated: 1550094156
+licenseType: Store
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/MeshCombiner/Scripts.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e0adf24d2c5ecbd469b30629522ce0da
+folderAsset: yes
+timeCreated: 1550006090
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 85 - 0
Assets/MeshCombiner/Scripts/CombineMeshes.cs

@@ -0,0 +1,85 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace LylekGames {
+	[RequireComponent(typeof(MeshFilter))]
+	[RequireComponent(typeof(MeshRenderer))]
+	public class CombineMeshes : MonoBehaviour {
+    
+		private Matrix4x4 myMatrix;
+        [HideInInspector]
+        public MeshFilter myMeshFilter;
+        private MeshRenderer myMeshRenderer;
+        [HideInInspector]
+        [SerializeField]
+        private MeshFilter[] meshFilters;
+        private MeshRenderer[] meshRenderers;
+
+        public void Start()
+        {
+            myMeshFilter = GetComponent<MeshFilter>();
+            myMeshRenderer = GetComponent<MeshRenderer>();
+        }
+        public void EnableMeshNewCollider() {
+            if (myMeshFilter)
+            {
+                if (myMeshFilter.sharedMesh != null)
+                {
+                    Debug.LogError("This object already contains mesh data. (This may occur when adding the Combine script to an existing mesh. Please take a quick look at the Readme to find out how to use the combine script as intended).");
+                    Debug.Log("Combine script removed.");
+                    DestroyImmediate(this);
+                    return;
+                }
+            }
+            if (transform.childCount > 0)
+            {
+                myMatrix = transform.worldToLocalMatrix;
+                CombineInstance[] combine;
+                meshFilters = GetComponentsInChildren<MeshFilter>();
+                combine = new CombineInstance[meshFilters.Length];
+                for (int i = 0; i < meshFilters.Length; i++)
+                {
+                    if (meshFilters[i].sharedMesh != null)
+                    {
+                        combine[i].mesh = meshFilters[i].sharedMesh;
+                        combine[i].transform = myMatrix * meshFilters[i].transform.localToWorldMatrix;
+                        meshFilters[i].gameObject.SetActive(false);
+                    }
+                }
+                myMeshFilter.mesh = new Mesh();
+                myMeshFilter.sharedMesh.CombineMeshes(combine);
+                myMeshRenderer.material = meshFilters[1].GetComponent<Renderer>().sharedMaterial;
+                gameObject.AddComponent<MeshCollider>();
+                gameObject.isStatic = true;
+            }
+            else
+                Debug.Log("There are no child meshes to combine.");
+        }
+
+		public void DisableMesh() {
+            if (meshFilters != null && meshFilters.Length > 0)
+            {
+                for (int i = 0; i < meshFilters.Length; i++)
+                {
+                    meshFilters[i].gameObject.SetActive(true);
+                }
+                if (meshRenderers != null)
+                    if (meshRenderers.Length > 0)
+                        foreach (MeshRenderer meshRenderer in meshRenderers)
+                            meshRenderer.enabled = true;
+                myMeshFilter.mesh = null;
+                myMeshRenderer.material = null;
+                if (GetComponent<Collider>())
+                    DestroyImmediate(gameObject.GetComponent<Collider>());
+            }
+            else
+            {
+                Debug.LogError("There is no mesh data to disable. (This may occur when adding the Combine script to an existing mesh. Please take a quick look at the Readme to find out how to use the combine script as intended.)");
+                Debug.Log("Combine script removed.");
+                DestroyImmediate(this);
+                return;
+            }
+        }
+	}
+}

+ 12 - 0
Assets/MeshCombiner/Scripts/CombineMeshes.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: dbcc69c0f8dc1a647b3b732fb9033f73
+timeCreated: 1517377822
+licenseType: Store
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
Assets/MeshCombiner/Standard/Mesh Combiner_2018.4.15_Standard.unitypackage.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c14e2c1b3f66c914eadda6e37fd68cea
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
Assets/MeshCombiner/URP/Mesh Combiner_2019.3.2_URP.unitypackage.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fd04eeb770a55ad479ca27b18678b930
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

File diff suppressed because it is too large
+ 64 - 445
Assets/Scenes/MainScene.unity


+ 169 - 0
Assets/Scripts/SimpleCameraController.cs

@@ -0,0 +1,169 @@
+using UnityEngine;
+
+namespace UnityTemplateProjects
+{
+    public class SimpleCameraController : MonoBehaviour
+    {
+        class CameraState
+        {
+            public float yaw;
+            public float pitch;
+            public float roll;
+            public float x;
+            public float y;
+            public float z;
+
+            public void SetFromTransform(Transform t)
+            {
+                pitch = t.eulerAngles.x;
+                yaw = t.eulerAngles.y;
+                roll = t.eulerAngles.z;
+                x = t.position.x;
+                y = t.position.y;
+                z = t.position.z;
+            }
+
+            public void Translate(Vector3 translation)
+            {
+                Vector3 rotatedTranslation = Quaternion.Euler(pitch, yaw, roll) * translation;
+
+                x += rotatedTranslation.x;
+                y += rotatedTranslation.y;
+                z += rotatedTranslation.z;
+            }
+
+            public void LerpTowards(CameraState target, float positionLerpPct, float rotationLerpPct)
+            {
+                yaw = Mathf.Lerp(yaw, target.yaw, rotationLerpPct);
+                pitch = Mathf.Lerp(pitch, target.pitch, rotationLerpPct);
+                roll = Mathf.Lerp(roll, target.roll, rotationLerpPct);
+                
+                x = Mathf.Lerp(x, target.x, positionLerpPct);
+                y = Mathf.Lerp(y, target.y, positionLerpPct);
+                z = Mathf.Lerp(z, target.z, positionLerpPct);
+            }
+
+            public void UpdateTransform(Transform t)
+            {
+                t.eulerAngles = new Vector3(pitch, yaw, roll);
+                t.position = new Vector3(x, y, z);
+            }
+        }
+        
+        CameraState m_TargetCameraState = new CameraState();
+        CameraState m_InterpolatingCameraState = new CameraState();
+
+        [Header("Movement Settings")]
+        [Tooltip("Exponential boost factor on translation, controllable by mouse wheel.")]
+        public float boost = 3.5f;
+
+        [Tooltip("Time it takes to interpolate camera position 99% of the way to the target."), Range(0.001f, 1f)]
+        public float positionLerpTime = 0.2f;
+
+        [Header("Rotation Settings")]
+        [Tooltip("X = Change in mouse position.\nY = Multiplicative factor for camera rotation.")]
+        public AnimationCurve mouseSensitivityCurve = new AnimationCurve(new Keyframe(0f, 0.5f, 0f, 5f), new Keyframe(1f, 2.5f, 0f, 0f));
+
+        [Tooltip("Time it takes to interpolate camera rotation 99% of the way to the target."), Range(0.001f, 1f)]
+        public float rotationLerpTime = 0.01f;
+
+        [Tooltip("Whether or not to invert our Y axis for mouse input to rotation.")]
+        public bool invertY = false;
+
+        void OnEnable()
+        {
+            m_TargetCameraState.SetFromTransform(transform);
+            m_InterpolatingCameraState.SetFromTransform(transform);
+        }
+
+        Vector3 GetInputTranslationDirection()
+        {
+            Vector3 direction = new Vector3();
+            if (Input.GetKey(KeyCode.W))
+            {
+                direction += Vector3.forward;
+            }
+            if (Input.GetKey(KeyCode.S))
+            {
+                direction += Vector3.back;
+            }
+            if (Input.GetKey(KeyCode.A))
+            {
+                direction += Vector3.left;
+            }
+            if (Input.GetKey(KeyCode.D))
+            {
+                direction += Vector3.right;
+            }
+            if (Input.GetKey(KeyCode.Q))
+            {
+                direction += Vector3.down;
+            }
+            if (Input.GetKey(KeyCode.E))
+            {
+                direction += Vector3.up;
+            }
+            return direction;
+        }
+        
+        void Update()
+        {
+            // Exit Sample  
+            if (Input.GetKey(KeyCode.Escape))
+            {
+                Application.Quit();
+				#if UNITY_EDITOR
+				UnityEditor.EditorApplication.isPlaying = false; 
+				#endif
+            }
+
+            // Hide and lock cursor when right mouse button pressed
+            if (Input.GetMouseButtonDown(1))
+            {
+                Cursor.lockState = CursorLockMode.Locked;
+            }
+
+            // Unlock and show cursor when right mouse button released
+            if (Input.GetMouseButtonUp(1))
+            {
+                Cursor.visible = true;
+                Cursor.lockState = CursorLockMode.None;
+            }
+
+            // Rotation
+            if (Input.GetMouseButton(1))
+            {
+                var mouseMovement = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y") * (invertY ? 1 : -1));
+                
+                var mouseSensitivityFactor = mouseSensitivityCurve.Evaluate(mouseMovement.magnitude);
+
+                m_TargetCameraState.yaw += mouseMovement.x * mouseSensitivityFactor;
+                m_TargetCameraState.pitch += mouseMovement.y * mouseSensitivityFactor;
+            }
+            
+            // Translation
+            var translation = GetInputTranslationDirection() * Time.deltaTime;
+
+            // Speed up movement when shift key held
+            if (Input.GetKey(KeyCode.LeftShift))
+            {
+                translation *= 10.0f;
+            }
+            
+            // Modify movement by a boost factor (defined in Inspector and modified in play mode through the mouse scroll wheel)
+            boost += Input.mouseScrollDelta.y * 0.2f;
+            translation *= Mathf.Pow(2.0f, boost);
+
+            m_TargetCameraState.Translate(translation);
+
+            // Framerate-independent interpolation
+            // Calculate the lerp amount, such that we get 99% of the way to our target in the specified time
+            var positionLerpPct = 1f - Mathf.Exp((Mathf.Log(1f - 0.99f) / positionLerpTime) * Time.deltaTime);
+            var rotationLerpPct = 1f - Mathf.Exp((Mathf.Log(1f - 0.99f) / rotationLerpTime) * Time.deltaTime);
+            m_InterpolatingCameraState.LerpTowards(m_TargetCameraState, positionLerpPct, rotationLerpPct);
+
+            m_InterpolatingCameraState.UpdateTransform(transform);
+        }
+    }
+
+}

+ 11 - 0
Assets/Scripts/SimpleCameraController.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: be76e5f14cfee674cb30b491fb72b09b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 40
Assets/Settings/ForwardRenderer.asset

@@ -1,24 +1,5 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!114 &-3383895950237585765
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  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: 0}
-  m_Name: BokehFilter
-  m_EditorClassIdentifier: 
-  m_Active: 0
-  settings:
-    IsEnabled: 1
-    WhenToInsert: 550
-    maxCoc: 0.41
-    focusDistance: 49.1
-    fragMaterial: {fileID: 2100000, guid: 800ff24e1e7e7a546a151a3ba28b6c6a, type: 2}
 --- !u!114 &11400000
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -31,9 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
   m_Name: ForwardRenderer
   m_EditorClassIdentifier: 
-  m_RendererFeatures:
-  - {fileID: 6778055420923976788}
-  m_RendererFeatureMap: 549c15607e7d105e
+  m_RendererFeatures: []
   postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
   shaders:
     blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
@@ -55,21 +34,3 @@ MonoBehaviour:
     passOperation: 0
     failOperation: 0
     zFailOperation: 0
-  m_ShadowTransparentReceive: 1
---- !u!114 &6778055420923976788
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  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: c1ced6fce81e55b4bad32b490ad4e55c, type: 3}
-  m_Name: VignetteBlitFilter
-  m_EditorClassIdentifier: 
-  m_Active: 1
-  settings:
-    IsEnabled: 1
-    WhenToInsert: 550
-    MaterialToBlit: {fileID: 2100000, guid: 800ff24e1e7e7a546a151a3ba28b6c6a, type: 2}

+ 118 - 0
Assets/Settings/SampleSceneProfile.asset

@@ -0,0 +1,118 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-7893295128165547882
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  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: 0b2db86121404754db890f4c8dfe81b2, type: 3}
+  m_Name: Bloom
+  m_EditorClassIdentifier: 
+  active: 1
+  m_AdvancedMode: 0
+  threshold:
+    m_OverrideState: 1
+    m_Value: 1
+    min: 0
+  intensity:
+    m_OverrideState: 1
+    m_Value: 1
+    min: 0
+  scatter:
+    m_OverrideState: 0
+    m_Value: 0.7
+    min: 0
+    max: 1
+  clamp:
+    m_OverrideState: 0
+    m_Value: 65472
+    min: 0
+  tint:
+    m_OverrideState: 0
+    m_Value: {r: 1, g: 1, b: 1, a: 1}
+    hdr: 0
+    showAlpha: 0
+    showEyeDropper: 1
+  highQualityFiltering:
+    m_OverrideState: 0
+    m_Value: 0
+  dirtTexture:
+    m_OverrideState: 0
+    m_Value: {fileID: 0}
+  dirtIntensity:
+    m_OverrideState: 0
+    m_Value: 0
+    min: 0
+--- !u!114 &-7011558710299706105
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  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: 899c54efeace73346a0a16faa3afe726, type: 3}
+  m_Name: Vignette
+  m_EditorClassIdentifier: 
+  active: 1
+  m_AdvancedMode: 0
+  color:
+    m_OverrideState: 0
+    m_Value: {r: 0, g: 0, b: 0, a: 1}
+    hdr: 0
+    showAlpha: 0
+    showEyeDropper: 1
+  center:
+    m_OverrideState: 0
+    m_Value: {x: 0.5, y: 0.5}
+  intensity:
+    m_OverrideState: 1
+    m_Value: 0.25
+    min: 0
+    max: 1
+  smoothness:
+    m_OverrideState: 1
+    m_Value: 0.4
+    min: 0.01
+    max: 1
+  rounded:
+    m_OverrideState: 0
+    m_Value: 0
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: d7fd9488000d3734a9e00ee676215985, type: 3}
+  m_Name: SampleSceneProfile
+  m_EditorClassIdentifier: 
+  components:
+  - {fileID: 849379129802519247}
+  - {fileID: -7893295128165547882}
+  - {fileID: -7011558710299706105}
+--- !u!114 &849379129802519247
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  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: 97c23e3b12dc18c42a140437e53d3951, type: 3}
+  m_Name: Tonemapping
+  m_EditorClassIdentifier: 
+  active: 1
+  m_AdvancedMode: 0
+  mode:
+    m_OverrideState: 1
+    m_Value: 2

+ 8 - 0
Assets/Settings/SampleSceneProfile.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 10fc4df2da32a41aaa32d77bc913491c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 9
Assets/Settings/UniversalRP-HighQuality.asset

@@ -22,29 +22,27 @@ MonoBehaviour:
   m_RequireDepthTexture: 0
   m_RequireOpaqueTexture: 0
   m_OpaqueDownsampling: 1
-  m_SupportsTerrainHoles: 1
   m_SupportsHDR: 1
-  m_MSAA: 4
+  m_MSAA: 2
   m_RenderScale: 1
   m_MainLightRenderingMode: 1
   m_MainLightShadowsSupported: 1
-  m_MainLightShadowmapResolution: 1024
+  m_MainLightShadowmapResolution: 2048
   m_AdditionalLightsRenderingMode: 1
   m_AdditionalLightsPerObjectLimit: 4
   m_AdditionalLightShadowsSupported: 1
-  m_AdditionalLightsShadowmapResolution: 1024
-  m_ShadowDistance: 100
+  m_AdditionalLightsShadowmapResolution: 512
+  m_ShadowDistance: 50
   m_ShadowCascades: 1
-  m_Cascade2Split: 0.10026746
-  m_Cascade4Split: {x: 0.088621624, y: 0.18108104, z: 0.29943246}
+  m_Cascade2Split: 0.25
+  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
   m_ShadowDepthBias: 1
   m_ShadowNormalBias: 1
   m_SoftShadowsSupported: 1
   m_UseSRPBatcher: 1
-  m_SupportsDynamicBatching: 1
+  m_SupportsDynamicBatching: 0
   m_MixedLightingSupported: 1
   m_DebugLevel: 0
-  m_UseAdaptivePerformance: 1
   m_ColorGradingMode: 0
   m_ColorGradingLutSize: 32
   m_ShadowType: 1

+ 1 - 3
Assets/Settings/UniversalRP-LowQuality.asset

@@ -22,7 +22,6 @@ MonoBehaviour:
   m_RequireDepthTexture: 0
   m_RequireOpaqueTexture: 0
   m_OpaqueDownsampling: 1
-  m_SupportsTerrainHoles: 1
   m_SupportsHDR: 0
   m_MSAA: 1
   m_RenderScale: 1
@@ -41,10 +40,9 @@ MonoBehaviour:
   m_ShadowNormalBias: 1
   m_SoftShadowsSupported: 0
   m_UseSRPBatcher: 1
-  m_SupportsDynamicBatching: 1
+  m_SupportsDynamicBatching: 0
   m_MixedLightingSupported: 1
   m_DebugLevel: 0
-  m_UseAdaptivePerformance: 1
   m_ColorGradingMode: 0
   m_ColorGradingLutSize: 16
   m_ShadowType: 1

+ 1 - 3
Assets/Settings/UniversalRP-MediumQuality.asset

@@ -22,7 +22,6 @@ MonoBehaviour:
   m_RequireDepthTexture: 0
   m_RequireOpaqueTexture: 0
   m_OpaqueDownsampling: 1
-  m_SupportsTerrainHoles: 1
   m_SupportsHDR: 0
   m_MSAA: 1
   m_RenderScale: 1
@@ -41,10 +40,9 @@ MonoBehaviour:
   m_ShadowNormalBias: 1
   m_SoftShadowsSupported: 0
   m_UseSRPBatcher: 1
-  m_SupportsDynamicBatching: 1
+  m_SupportsDynamicBatching: 0
   m_MixedLightingSupported: 1
   m_DebugLevel: 0
-  m_UseAdaptivePerformance: 1
   m_ColorGradingMode: 0
   m_ColorGradingLutSize: 32
   m_ShadowType: 1

+ 1 - 1
ProjectSettings/QualitySettings.asset

@@ -95,7 +95,7 @@ QualitySettings:
     skinWeights: 2
     textureQuality: 0
     anisotropicTextures: 1
-    antiAliasing: 4
+    antiAliasing: 2
     softParticles: 0
     softVegetation: 1
     realtimeReflectionProbes: 1

BIN
obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache


Some files were not shown because too many files changed in this diff