├── .gitignore ├── Assets ├── Unity Simple Liquid.meta └── Unity Simple Liquid │ ├── Editor.meta │ ├── Editor │ ├── LiquidContainerEditor.cs │ ├── LiquidContainerEditor.cs.meta │ ├── SplitControllerEditor.cs │ └── SplitControllerEditor.cs.meta │ ├── Effects.meta │ ├── Effects │ ├── LiquidParticles.prefab │ └── LiquidParticles.prefab.meta │ ├── Example.meta │ ├── Example │ ├── Animation.meta │ ├── Animation │ │ ├── MovementGlass.anim │ │ ├── MovementGlass.anim.meta │ │ ├── RotationPivot.anim │ │ ├── RotationPivot.anim.meta │ │ ├── RotationPivot.controller │ │ └── RotationPivot.controller.meta │ ├── Materials.meta │ ├── Materials │ │ ├── Cap.mat │ │ ├── Cap.mat.meta │ │ ├── Glass.mat │ │ └── Glass.mat.meta │ ├── Models.meta │ ├── Models │ │ ├── Bottle.fbx │ │ ├── Bottle.fbx.meta │ │ ├── Glass.fbx │ │ └── Glass.fbx.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Bottle.prefab │ │ ├── Bottle.prefab.meta │ │ ├── Glass.prefab │ │ └── Glass.prefab.meta │ ├── Scenes.meta │ └── Scenes │ │ ├── Change Color.unity │ │ ├── Change Color.unity.meta │ │ ├── Example Scene.meta │ │ ├── Example Scene.unity │ │ ├── Example Scene.unity.meta │ │ └── Example Scene │ │ ├── LightingData.asset │ │ ├── LightingData.asset.meta │ │ ├── ReflectionProbe-0.exr │ │ └── ReflectionProbe-0.exr.meta │ ├── Materials.meta │ ├── Materials │ ├── DefaultLiquid.mat │ ├── DefaultLiquid.mat.meta │ ├── Splash.mat │ └── Splash.mat.meta │ ├── Scripts.meta │ ├── Scripts │ ├── EndlessContainer.cs │ ├── EndlessContainer.cs.meta │ ├── LiquidContainer.cs │ ├── LiquidContainer.cs.meta │ ├── SplitController.cs │ ├── SplitController.cs.meta │ ├── Utils.meta │ └── Utils │ │ ├── GeomUtils.cs │ │ ├── GeomUtils.cs.meta │ │ ├── GizmosHelper.cs │ │ └── GizmosHelper.cs.meta │ ├── Shaders.meta │ └── Shaders │ ├── SimpleLiquidShader.shader │ └── SimpleLiquidShader.shader.meta ├── Imgs └── demo.gif ├── LICENSE ├── Logs └── Packages-Update.log ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | 27 | # Unity3D generated meta files 28 | *.pidb.meta 29 | *.pdb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk 36 | *.unitypackage 37 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93bffa93367d0df44a8bbca25f161eb6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d515baef34857496288c3ed4bfbd38f8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Editor/LiquidContainerEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace UnitySimpleLiquid 7 | { 8 | [CustomEditor(typeof(LiquidContainer))] 9 | public class LiquidContainerEditor : Editor 10 | { 11 | public override void OnInspectorGUI() 12 | { 13 | base.OnInspectorGUI(); 14 | 15 | var liquid = (LiquidContainer)target; 16 | 17 | if (liquid.CustomVolume) 18 | { 19 | var newVolume = EditorGUILayout.FloatField("Volume (liters):", liquid.Volume); 20 | liquid.Volume = newVolume > 0 ? newVolume : 0.01f; 21 | } 22 | else 23 | { 24 | GUI.enabled = false; 25 | 26 | var calculatedVolume = liquid.CalculateVolume(); 27 | EditorGUILayout.FloatField("Volume (liters):", calculatedVolume); 28 | liquid.Volume = calculatedVolume; 29 | 30 | GUI.enabled = true; 31 | } 32 | 33 | 34 | 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Editor/LiquidContainerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33df7821650d04c698c1587b41f0904e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Editor/SplitControllerEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace UnitySimpleLiquid 7 | { 8 | [CustomEditor(typeof(SplitController))] 9 | public class SplitControllerEditor : Editor 10 | { 11 | public override void OnInspectorGUI() 12 | { 13 | base.OnInspectorGUI(); 14 | 15 | var split = (SplitController)target; 16 | 17 | GUI.enabled = false; 18 | EditorGUILayout.Toggle("Is Spliting", split.IsSpliting); 19 | GUI.enabled = true; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Editor/SplitControllerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 591ff52319de34d03b7cb49e1521ca77 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Effects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f62edf0b289ae4c5092055c2b3385560 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Effects/LiquidParticles.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6cbd7c4436dcf4a709ab46f353a9d3c3 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4ce3c606d15b6944a2361f7df059be9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f1a07cdd4fb9b44ebe1cc36bfc8d90e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/MovementGlass.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: MovementGlass 10 | serializedVersion: 6 11 | m_Legacy: 1 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: [] 17 | m_PositionCurves: 18 | - curve: 19 | serializedVersion: 2 20 | m_Curve: 21 | - serializedVersion: 3 22 | time: 0 23 | value: {x: 0.6946, y: 1.34, z: -0.101} 24 | inSlope: {x: 0, y: 0, z: 0} 25 | outSlope: {x: 0, y: 0, z: 0} 26 | tangentMode: 0 27 | weightedMode: 0 28 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 29 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 30 | - serializedVersion: 3 31 | time: 10.033334 32 | value: {x: -0.38, y: 1.34, z: -0.101} 33 | inSlope: {x: 0, y: 0, z: 0} 34 | outSlope: {x: 0, y: 0, z: 0} 35 | tangentMode: 0 36 | weightedMode: 0 37 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 38 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 39 | - serializedVersion: 3 40 | time: 19.933332 41 | value: {x: 0.6946, y: 1.34, z: -0.101} 42 | inSlope: {x: 0, y: 0, z: 0} 43 | outSlope: {x: 0, y: 0, z: 0} 44 | tangentMode: 0 45 | weightedMode: 0 46 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 47 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 48 | m_PreInfinity: 2 49 | m_PostInfinity: 2 50 | m_RotationOrder: 4 51 | path: 52 | m_ScaleCurves: [] 53 | m_FloatCurves: [] 54 | m_PPtrCurves: [] 55 | m_SampleRate: 60 56 | m_WrapMode: 2 57 | m_Bounds: 58 | m_Center: {x: 0, y: 0, z: 0} 59 | m_Extent: {x: 0, y: 0, z: 0} 60 | m_ClipBindingConstant: 61 | genericBindings: [] 62 | pptrCurveMapping: [] 63 | m_AnimationClipSettings: 64 | serializedVersion: 2 65 | m_AdditiveReferencePoseClip: {fileID: 0} 66 | m_AdditiveReferencePoseTime: 0 67 | m_StartTime: 0 68 | m_StopTime: 19.933332 69 | m_OrientationOffsetY: 0 70 | m_Level: 0 71 | m_CycleOffset: 0 72 | m_HasAdditiveReferencePose: 0 73 | m_LoopTime: 1 74 | m_LoopBlend: 0 75 | m_LoopBlendOrientation: 0 76 | m_LoopBlendPositionY: 0 77 | m_LoopBlendPositionXZ: 0 78 | m_KeepOriginalOrientation: 0 79 | m_KeepOriginalPositionY: 1 80 | m_KeepOriginalPositionXZ: 0 81 | m_HeightFromFeet: 0 82 | m_Mirror: 0 83 | m_EditorCurves: 84 | - curve: 85 | serializedVersion: 2 86 | m_Curve: 87 | - serializedVersion: 3 88 | time: 0 89 | value: 0.6946 90 | inSlope: 0 91 | outSlope: 0 92 | tangentMode: 136 93 | weightedMode: 0 94 | inWeight: 0.33333334 95 | outWeight: 0.33333334 96 | - serializedVersion: 3 97 | time: 10.033334 98 | value: -0.38 99 | inSlope: 0 100 | outSlope: 0 101 | tangentMode: 136 102 | weightedMode: 0 103 | inWeight: 0.33333334 104 | outWeight: 0.33333334 105 | - serializedVersion: 3 106 | time: 19.933332 107 | value: 0.6946 108 | inSlope: 0 109 | outSlope: 0 110 | tangentMode: 136 111 | weightedMode: 0 112 | inWeight: 0.33333334 113 | outWeight: 0.33333334 114 | m_PreInfinity: 2 115 | m_PostInfinity: 2 116 | m_RotationOrder: 4 117 | attribute: m_LocalPosition.x 118 | path: 119 | classID: 4 120 | script: {fileID: 0} 121 | - curve: 122 | serializedVersion: 2 123 | m_Curve: 124 | - serializedVersion: 3 125 | time: 0 126 | value: 1.34 127 | inSlope: 0 128 | outSlope: 0 129 | tangentMode: 136 130 | weightedMode: 0 131 | inWeight: 0.33333334 132 | outWeight: 0.33333334 133 | - serializedVersion: 3 134 | time: 10.033334 135 | value: 1.34 136 | inSlope: 0 137 | outSlope: 0 138 | tangentMode: 136 139 | weightedMode: 0 140 | inWeight: 0.33333334 141 | outWeight: 0.33333334 142 | - serializedVersion: 3 143 | time: 19.933332 144 | value: 1.34 145 | inSlope: 0 146 | outSlope: 0 147 | tangentMode: 136 148 | weightedMode: 0 149 | inWeight: 0.33333334 150 | outWeight: 0.33333334 151 | m_PreInfinity: 2 152 | m_PostInfinity: 2 153 | m_RotationOrder: 4 154 | attribute: m_LocalPosition.y 155 | path: 156 | classID: 4 157 | script: {fileID: 0} 158 | - curve: 159 | serializedVersion: 2 160 | m_Curve: 161 | - serializedVersion: 3 162 | time: 0 163 | value: -0.101 164 | inSlope: 0 165 | outSlope: 0 166 | tangentMode: 136 167 | weightedMode: 0 168 | inWeight: 0.33333334 169 | outWeight: 0.33333334 170 | - serializedVersion: 3 171 | time: 10.033334 172 | value: -0.101 173 | inSlope: 0 174 | outSlope: 0 175 | tangentMode: 136 176 | weightedMode: 0 177 | inWeight: 0.33333334 178 | outWeight: 0.33333334 179 | - serializedVersion: 3 180 | time: 19.933332 181 | value: -0.101 182 | inSlope: 0 183 | outSlope: 0 184 | tangentMode: 136 185 | weightedMode: 0 186 | inWeight: 0.33333334 187 | outWeight: 0.33333334 188 | m_PreInfinity: 2 189 | m_PostInfinity: 2 190 | m_RotationOrder: 4 191 | attribute: m_LocalPosition.z 192 | path: 193 | classID: 4 194 | script: {fileID: 0} 195 | m_EulerEditorCurves: [] 196 | m_HasGenericRootTransform: 0 197 | m_HasMotionFloatCurves: 0 198 | m_Events: [] 199 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/MovementGlass.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffc34fc7cc920ef48bb35aeeab1b7524 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/RotationPivot.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: RotationPivot 10 | serializedVersion: 6 11 | m_Legacy: 0 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: 17 | - curve: 18 | serializedVersion: 2 19 | m_Curve: 20 | - serializedVersion: 3 21 | time: 0 22 | value: {x: -129.311, y: -94.277985, z: -15.01001} 23 | inSlope: {x: 0, y: 0, z: 0} 24 | outSlope: {x: 0, y: 0, z: 0} 25 | tangentMode: 0 26 | weightedMode: 0 27 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 28 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 29 | - serializedVersion: 3 30 | time: 3.6166666 31 | value: {x: -213.297, y: 80.273994, z: -168.68} 32 | inSlope: {x: 0, y: 0, z: 0} 33 | outSlope: {x: 0, y: 0, z: 0} 34 | tangentMode: 0 35 | weightedMode: 0 36 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 37 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 38 | - serializedVersion: 3 39 | time: 6.4 40 | value: {x: -213.297, y: 80.273994, z: -168.68} 41 | inSlope: {x: 0, y: 0, z: 0} 42 | outSlope: {x: 0, y: 0, z: 0} 43 | tangentMode: 0 44 | weightedMode: 0 45 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 46 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 47 | - serializedVersion: 3 48 | time: 10 49 | value: {x: -129.311, y: -94.277985, z: -15.01001} 50 | inSlope: {x: 0, y: 0, z: 0} 51 | outSlope: {x: 0, y: 0, z: 0} 52 | tangentMode: 0 53 | weightedMode: 0 54 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 55 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 56 | m_PreInfinity: 2 57 | m_PostInfinity: 2 58 | m_RotationOrder: 4 59 | path: 60 | m_PositionCurves: [] 61 | m_ScaleCurves: [] 62 | m_FloatCurves: [] 63 | m_PPtrCurves: [] 64 | m_SampleRate: 60 65 | m_WrapMode: 0 66 | m_Bounds: 67 | m_Center: {x: 0, y: 0, z: 0} 68 | m_Extent: {x: 0, y: 0, z: 0} 69 | m_ClipBindingConstant: 70 | genericBindings: 71 | - serializedVersion: 2 72 | path: 0 73 | attribute: 4 74 | script: {fileID: 0} 75 | typeID: 4 76 | customType: 4 77 | isPPtrCurve: 0 78 | pptrCurveMapping: [] 79 | m_AnimationClipSettings: 80 | serializedVersion: 2 81 | m_AdditiveReferencePoseClip: {fileID: 0} 82 | m_AdditiveReferencePoseTime: 0 83 | m_StartTime: 0 84 | m_StopTime: 10 85 | m_OrientationOffsetY: 0 86 | m_Level: 0 87 | m_CycleOffset: 0 88 | m_HasAdditiveReferencePose: 0 89 | m_LoopTime: 1 90 | m_LoopBlend: 0 91 | m_LoopBlendOrientation: 0 92 | m_LoopBlendPositionY: 0 93 | m_LoopBlendPositionXZ: 0 94 | m_KeepOriginalOrientation: 0 95 | m_KeepOriginalPositionY: 1 96 | m_KeepOriginalPositionXZ: 0 97 | m_HeightFromFeet: 0 98 | m_Mirror: 0 99 | m_EditorCurves: 100 | - curve: 101 | serializedVersion: 2 102 | m_Curve: 103 | - serializedVersion: 3 104 | time: 0 105 | value: -129.311 106 | inSlope: 0 107 | outSlope: 0 108 | tangentMode: 136 109 | weightedMode: 0 110 | inWeight: 0.33333334 111 | outWeight: 0.33333334 112 | - serializedVersion: 3 113 | time: 3.6166666 114 | value: -213.297 115 | inSlope: 0 116 | outSlope: 0 117 | tangentMode: 136 118 | weightedMode: 0 119 | inWeight: 0.33333334 120 | outWeight: 0.33333334 121 | - serializedVersion: 3 122 | time: 6.4 123 | value: -213.297 124 | inSlope: 0 125 | outSlope: 0 126 | tangentMode: 136 127 | weightedMode: 0 128 | inWeight: 0.33333334 129 | outWeight: 0.33333334 130 | - serializedVersion: 3 131 | time: 10 132 | value: -129.311 133 | inSlope: 0 134 | outSlope: 0 135 | tangentMode: 136 136 | weightedMode: 0 137 | inWeight: 0.33333334 138 | outWeight: 0.33333334 139 | m_PreInfinity: 2 140 | m_PostInfinity: 2 141 | m_RotationOrder: 4 142 | attribute: localEulerAnglesRaw.x 143 | path: 144 | classID: 4 145 | script: {fileID: 0} 146 | - curve: 147 | serializedVersion: 2 148 | m_Curve: 149 | - serializedVersion: 3 150 | time: 0 151 | value: -94.277985 152 | inSlope: 0 153 | outSlope: 0 154 | tangentMode: 136 155 | weightedMode: 0 156 | inWeight: 0.33333334 157 | outWeight: 0.33333334 158 | - serializedVersion: 3 159 | time: 3.6166666 160 | value: 80.273994 161 | inSlope: 0 162 | outSlope: 0 163 | tangentMode: 136 164 | weightedMode: 0 165 | inWeight: 0.33333334 166 | outWeight: 0.33333334 167 | - serializedVersion: 3 168 | time: 6.4 169 | value: 80.273994 170 | inSlope: 0 171 | outSlope: 0 172 | tangentMode: 136 173 | weightedMode: 0 174 | inWeight: 0.33333334 175 | outWeight: 0.33333334 176 | - serializedVersion: 3 177 | time: 10 178 | value: -94.277985 179 | inSlope: 0 180 | outSlope: 0 181 | tangentMode: 136 182 | weightedMode: 0 183 | inWeight: 0.33333334 184 | outWeight: 0.33333334 185 | m_PreInfinity: 2 186 | m_PostInfinity: 2 187 | m_RotationOrder: 4 188 | attribute: localEulerAnglesRaw.y 189 | path: 190 | classID: 4 191 | script: {fileID: 0} 192 | - curve: 193 | serializedVersion: 2 194 | m_Curve: 195 | - serializedVersion: 3 196 | time: 0 197 | value: -15.01001 198 | inSlope: 0 199 | outSlope: 0 200 | tangentMode: 136 201 | weightedMode: 0 202 | inWeight: 0.33333334 203 | outWeight: 0.33333334 204 | - serializedVersion: 3 205 | time: 3.6166666 206 | value: -168.68 207 | inSlope: 0 208 | outSlope: 0 209 | tangentMode: 136 210 | weightedMode: 0 211 | inWeight: 0.33333334 212 | outWeight: 0.33333334 213 | - serializedVersion: 3 214 | time: 6.4 215 | value: -168.68 216 | inSlope: 0 217 | outSlope: 0 218 | tangentMode: 136 219 | weightedMode: 0 220 | inWeight: 0.33333334 221 | outWeight: 0.33333334 222 | - serializedVersion: 3 223 | time: 10 224 | value: -15.01001 225 | inSlope: 0 226 | outSlope: 0 227 | tangentMode: 136 228 | weightedMode: 0 229 | inWeight: 0.33333334 230 | outWeight: 0.33333334 231 | m_PreInfinity: 2 232 | m_PostInfinity: 2 233 | m_RotationOrder: 4 234 | attribute: localEulerAnglesRaw.z 235 | path: 236 | classID: 4 237 | script: {fileID: 0} 238 | m_EulerEditorCurves: 239 | - curve: 240 | serializedVersion: 2 241 | m_Curve: [] 242 | m_PreInfinity: 2 243 | m_PostInfinity: 2 244 | m_RotationOrder: 4 245 | attribute: m_LocalEulerAngles.x 246 | path: 247 | classID: 4 248 | script: {fileID: 0} 249 | - curve: 250 | serializedVersion: 2 251 | m_Curve: [] 252 | m_PreInfinity: 2 253 | m_PostInfinity: 2 254 | m_RotationOrder: 4 255 | attribute: m_LocalEulerAngles.y 256 | path: 257 | classID: 4 258 | script: {fileID: 0} 259 | - curve: 260 | serializedVersion: 2 261 | m_Curve: [] 262 | m_PreInfinity: 2 263 | m_PostInfinity: 2 264 | m_RotationOrder: 4 265 | attribute: m_LocalEulerAngles.z 266 | path: 267 | classID: 4 268 | script: {fileID: 0} 269 | m_HasGenericRootTransform: 1 270 | m_HasMotionFloatCurves: 0 271 | m_Events: [] 272 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/RotationPivot.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e437e876d6f1f1a4bbc2b8b01f27420b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/RotationPivot.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1102 &-9205973890400993676 4 | AnimatorState: 5 | serializedVersion: 5 6 | m_ObjectHideFlags: 1 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: RotationPivot 11 | m_Speed: 1 12 | m_CycleOffset: 0 13 | m_Transitions: [] 14 | m_StateMachineBehaviours: [] 15 | m_Position: {x: 50, y: 50, z: 0} 16 | m_IKOnFeet: 0 17 | m_WriteDefaultValues: 1 18 | m_Mirror: 0 19 | m_SpeedParameterActive: 0 20 | m_MirrorParameterActive: 0 21 | m_CycleOffsetParameterActive: 0 22 | m_TimeParameterActive: 0 23 | m_Motion: {fileID: 7400000, guid: e437e876d6f1f1a4bbc2b8b01f27420b, type: 2} 24 | m_Tag: 25 | m_SpeedParameter: 26 | m_MirrorParameter: 27 | m_CycleOffsetParameter: 28 | m_TimeParameter: 29 | --- !u!91 &9100000 30 | AnimatorController: 31 | m_ObjectHideFlags: 0 32 | m_CorrespondingSourceObject: {fileID: 0} 33 | m_PrefabInstance: {fileID: 0} 34 | m_PrefabAsset: {fileID: 0} 35 | m_Name: RotationPivot 36 | serializedVersion: 5 37 | m_AnimatorParameters: [] 38 | m_AnimatorLayers: 39 | - serializedVersion: 5 40 | m_Name: Base Layer 41 | m_StateMachine: {fileID: 2144304055110145264} 42 | m_Mask: {fileID: 0} 43 | m_Motions: [] 44 | m_Behaviours: [] 45 | m_BlendingMode: 0 46 | m_SyncedLayerIndex: -1 47 | m_DefaultWeight: 0 48 | m_IKPass: 0 49 | m_SyncedLayerAffectsTiming: 0 50 | m_Controller: {fileID: 9100000} 51 | --- !u!1107 &2144304055110145264 52 | AnimatorStateMachine: 53 | serializedVersion: 5 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: -9205973890400993676} 62 | m_Position: {x: 200, y: 0, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: -9205973890400993676} 73 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Animation/RotationPivot.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a585b7b9fbc85d4eacdd5b1d12486d5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0911db06204d921458607d4d87a7d6b2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Materials/Cap.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Cap 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.442 65 | - _GlossyReflections: 1 66 | - _Metallic: 0.176 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Materials/Cap.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ce279f6d23699248b3b02f9a9168c37 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Materials/Glass.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Glass 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 3000 17 | stringTagMap: 18 | RenderType: Transparent 19 | disabledShaderPasses: [] 20 | m_SavedProperties: 21 | serializedVersion: 3 22 | m_TexEnvs: 23 | - _BumpMap: 24 | m_Texture: {fileID: 0} 25 | m_Scale: {x: 1, y: 1} 26 | m_Offset: {x: 0, y: 0} 27 | - _DetailAlbedoMap: 28 | m_Texture: {fileID: 0} 29 | m_Scale: {x: 1, y: 1} 30 | m_Offset: {x: 0, y: 0} 31 | - _DetailMask: 32 | m_Texture: {fileID: 0} 33 | m_Scale: {x: 1, y: 1} 34 | m_Offset: {x: 0, y: 0} 35 | - _DetailNormalMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _EmissionMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _MainTex: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _MetallicGlossMap: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _OcclusionMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _ParallaxMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 10 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.197 66 | - _GlossyReflections: 1 67 | - _Metallic: 0.095 68 | - _Mode: 3 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 0 76 | m_Colors: 77 | - _Color: {r: 0.7735849, g: 0.7735849, b: 0.7735849, a: 0.18039216} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Materials/Glass.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5d0e024007d29c44a932f8cc87b3520 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28efee0eccc97d2498b7de641b800e44 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Models/Bottle.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/Assets/Unity Simple Liquid/Example/Models/Bottle.fbx -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Models/Bottle.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82ae06bcb7b8b53498a9550e007d21bc 3 | ModelImporter: 4 | serializedVersion: 26 5 | internalIDToNameTable: [] 6 | externalObjects: {} 7 | materials: 8 | importMaterials: 0 9 | materialName: 0 10 | materialSearch: 1 11 | materialLocation: 1 12 | animations: 13 | legacyGenerateAnimations: 4 14 | bakeSimulation: 0 15 | resampleCurves: 1 16 | optimizeGameObjects: 0 17 | motionNodeName: 18 | rigImportErrors: 19 | rigImportWarnings: 20 | animationImportErrors: 21 | animationImportWarnings: 22 | animationRetargetingWarnings: 23 | animationDoRetargetingWarnings: 0 24 | importAnimatedCustomProperties: 0 25 | importConstraints: 0 26 | animationCompression: 1 27 | animationRotationError: 0.5 28 | animationPositionError: 0.5 29 | animationScaleError: 0.5 30 | animationWrapMode: 0 31 | extraExposedTransformPaths: [] 32 | extraUserProperties: [] 33 | clipAnimations: [] 34 | isReadable: 0 35 | meshes: 36 | lODScreenPercentages: [] 37 | globalScale: 1 38 | meshCompression: 0 39 | addColliders: 0 40 | useSRGBMaterialColor: 1 41 | sortHierarchyByName: 1 42 | importVisibility: 1 43 | importBlendShapes: 1 44 | importCameras: 1 45 | importLights: 1 46 | swapUVChannels: 0 47 | generateSecondaryUV: 0 48 | useFileUnits: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | preserveHierarchy: 0 52 | skinWeightsMode: 0 53 | maxBonesPerVertex: 4 54 | minBoneWeight: 0.001 55 | meshOptimizationFlags: -1 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 1 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 68 | blendShapeNormalImportMode: 1 69 | normalSmoothingSource: 0 70 | referencedClips: [] 71 | importAnimation: 0 72 | copyAvatar: 0 73 | humanDescription: 74 | serializedVersion: 3 75 | human: [] 76 | skeleton: [] 77 | armTwist: 0.5 78 | foreArmTwist: 0.5 79 | upperLegTwist: 0.5 80 | legTwist: 0.5 81 | armStretch: 0.05 82 | legStretch: 0.05 83 | feetSpacing: 0 84 | globalScale: 1 85 | rootMotionBoneName: 86 | hasTranslationDoF: 0 87 | hasExtraRoot: 0 88 | skeletonHasParents: 1 89 | lastHumanDescriptionAvatarSource: {instanceID: 0} 90 | animationType: 0 91 | humanoidOversampling: 1 92 | additionalBone: 0 93 | userData: 94 | assetBundleName: 95 | assetBundleVariant: 96 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Models/Glass.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/Assets/Unity Simple Liquid/Example/Models/Glass.fbx -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Models/Glass.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3a07e53f958fbd4d9561fbbb678e026 3 | ModelImporter: 4 | serializedVersion: 26 5 | internalIDToNameTable: 6 | - first: 7 | 74: 4067746198656614825 8 | second: WhiskeyGlass|FluidsAction 9 | - first: 10 | 74: 8533834376186876949 11 | second: Fluids|FluidsAction 12 | externalObjects: {} 13 | materials: 14 | importMaterials: 0 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | importConstraints: 0 32 | animationCompression: 1 33 | animationRotationError: 0.5 34 | animationPositionError: 0.5 35 | animationScaleError: 0.5 36 | animationWrapMode: 0 37 | extraExposedTransformPaths: [] 38 | extraUserProperties: [] 39 | clipAnimations: 40 | - serializedVersion: 16 41 | name: WhiskeyGlass|FluidsAction 42 | takeName: WhiskeyGlass|FluidsAction 43 | internalID: 4067746198656614825 44 | firstFrame: 0 45 | lastFrame: 1 46 | wrapMode: 0 47 | orientationOffsetY: 0 48 | level: 0 49 | cycleOffset: 0 50 | loop: 0 51 | hasAdditiveReferencePose: 0 52 | loopTime: 0 53 | loopBlend: 0 54 | loopBlendOrientation: 0 55 | loopBlendPositionY: 0 56 | loopBlendPositionXZ: 0 57 | keepOriginalOrientation: 0 58 | keepOriginalPositionY: 1 59 | keepOriginalPositionXZ: 0 60 | heightFromFeet: 0 61 | mirror: 0 62 | bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 63 | curves: [] 64 | events: [] 65 | transformMask: [] 66 | maskType: 3 67 | maskSource: {instanceID: 0} 68 | additiveReferencePoseFrame: 0 69 | - serializedVersion: 16 70 | name: Fluids|FluidsAction 71 | takeName: Fluids|FluidsAction 72 | internalID: 8533834376186876949 73 | firstFrame: 0 74 | lastFrame: 1 75 | wrapMode: 0 76 | orientationOffsetY: 0 77 | level: 0 78 | cycleOffset: 0 79 | loop: 0 80 | hasAdditiveReferencePose: 0 81 | loopTime: 0 82 | loopBlend: 0 83 | loopBlendOrientation: 0 84 | loopBlendPositionY: 0 85 | loopBlendPositionXZ: 0 86 | keepOriginalOrientation: 0 87 | keepOriginalPositionY: 1 88 | keepOriginalPositionXZ: 0 89 | heightFromFeet: 0 90 | mirror: 0 91 | bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 92 | curves: [] 93 | events: [] 94 | transformMask: [] 95 | maskType: 3 96 | maskSource: {instanceID: 0} 97 | additiveReferencePoseFrame: 0 98 | isReadable: 0 99 | meshes: 100 | lODScreenPercentages: [] 101 | globalScale: 1 102 | meshCompression: 0 103 | addColliders: 0 104 | useSRGBMaterialColor: 1 105 | sortHierarchyByName: 1 106 | importVisibility: 1 107 | importBlendShapes: 1 108 | importCameras: 1 109 | importLights: 1 110 | swapUVChannels: 0 111 | generateSecondaryUV: 0 112 | useFileUnits: 1 113 | keepQuads: 0 114 | weldVertices: 1 115 | preserveHierarchy: 0 116 | skinWeightsMode: 0 117 | maxBonesPerVertex: 4 118 | minBoneWeight: 0.001 119 | meshOptimizationFlags: -1 120 | indexFormat: 0 121 | secondaryUVAngleDistortion: 8 122 | secondaryUVAreaDistortion: 15.000001 123 | secondaryUVHardAngle: 88 124 | secondaryUVPackMargin: 4 125 | useFileScale: 1 126 | tangentSpace: 127 | normalSmoothAngle: 71 128 | normalImportMode: 1 129 | tangentImportMode: 3 130 | normalCalculationMode: 0 131 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 132 | blendShapeNormalImportMode: 1 133 | normalSmoothingSource: 0 134 | referencedClips: [] 135 | importAnimation: 0 136 | copyAvatar: 0 137 | humanDescription: 138 | serializedVersion: 3 139 | human: [] 140 | skeleton: [] 141 | armTwist: 0.5 142 | foreArmTwist: 0.5 143 | upperLegTwist: 0.5 144 | legTwist: 0.5 145 | armStretch: 0.05 146 | legStretch: 0.05 147 | feetSpacing: 0 148 | globalScale: 1 149 | rootMotionBoneName: 150 | hasTranslationDoF: 0 151 | hasExtraRoot: 1 152 | skeletonHasParents: 1 153 | lastHumanDescriptionAvatarSource: {instanceID: 0} 154 | animationType: 0 155 | humanoidOversampling: 1 156 | additionalBone: 0 157 | userData: 158 | assetBundleName: 159 | assetBundleVariant: 160 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0263813233cad4e4cbdf781437b0dcd7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Prefabs/Bottle.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &2543850318960091211 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 1519625932346200664} 12 | - component: {fileID: 4290243747654017780} 13 | - component: {fileID: 1849351744} 14 | - component: {fileID: 1849351742} 15 | m_Layer: 0 16 | m_Name: Bottle 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &1519625932346200664 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 2543850318960091211} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: -0, y: 1.893, z: 0} 31 | m_LocalScale: {x: 0.48715585, y: 0.48715585, z: 0.48715585} 32 | m_Children: 33 | - {fileID: 4978369109101898360} 34 | - {fileID: 4010355648684805109} 35 | - {fileID: 2106463147095516152} 36 | m_Father: {fileID: 0} 37 | m_RootOrder: 0 38 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 39 | --- !u!114 &4290243747654017780 40 | MonoBehaviour: 41 | m_ObjectHideFlags: 0 42 | m_CorrespondingSourceObject: {fileID: 0} 43 | m_PrefabInstance: {fileID: 0} 44 | m_PrefabAsset: {fileID: 0} 45 | m_GameObject: {fileID: 2543850318960091211} 46 | m_Enabled: 1 47 | m_EditorHideFlags: 0 48 | m_Script: {fileID: 11500000, guid: 7f97c0cadc5f88b46b59a38d17fac88e, type: 3} 49 | m_Name: 50 | m_EditorClassIdentifier: 51 | liquidRender: {fileID: 8479694515570843939} 52 | liquidMaterial: {fileID: 2100000, guid: 8dec526bbd84d684da6f40f79c3ab1bd, type: 2} 53 | cap: {fileID: 7634469175278025645} 54 | isOpen: 1 55 | inertness: 50 56 | liquidColor: {r: 0.09411765, g: 0.36862746, b: 0.13333334, a: 0.28627452} 57 | fillAmountPercent: 0.653 58 | customVolume: 0 59 | --- !u!136 &1849351744 60 | CapsuleCollider: 61 | m_ObjectHideFlags: 0 62 | m_CorrespondingSourceObject: {fileID: 0} 63 | m_PrefabInstance: {fileID: 0} 64 | m_PrefabAsset: {fileID: 0} 65 | m_GameObject: {fileID: 2543850318960091211} 66 | m_Material: {fileID: 0} 67 | m_IsTrigger: 0 68 | m_Enabled: 1 69 | m_Radius: 0.100430764 70 | m_Height: 0.44198456 71 | m_Direction: 1 72 | m_Center: {x: 0.0006372519, y: 0.23271824, z: 0.00000010751718} 73 | --- !u!114 &1849351742 74 | MonoBehaviour: 75 | m_ObjectHideFlags: 0 76 | m_CorrespondingSourceObject: {fileID: 0} 77 | m_PrefabInstance: {fileID: 0} 78 | m_PrefabAsset: {fileID: 0} 79 | m_GameObject: {fileID: 2543850318960091211} 80 | m_Enabled: 1 81 | m_EditorHideFlags: 0 82 | m_Script: {fileID: 11500000, guid: acb562255fca9b544b4583d4e7147e92, type: 3} 83 | m_Name: 84 | m_EditorClassIdentifier: 85 | liquidContainer: {fileID: 4290243747654017780} 86 | bottleneckRadius: 0.02 87 | splitSpeed: 60 88 | maxEdgeDrops: 4 89 | particlesPrefab: {fileID: 5157395080114985353, guid: 6cbd7c4436dcf4a709ab46f353a9d3c3, 90 | type: 3} 91 | mixingSpeed: 1 92 | --- !u!1 &4368494120379776360 93 | GameObject: 94 | m_ObjectHideFlags: 0 95 | m_CorrespondingSourceObject: {fileID: 0} 96 | m_PrefabInstance: {fileID: 0} 97 | m_PrefabAsset: {fileID: 0} 98 | serializedVersion: 6 99 | m_Component: 100 | - component: {fileID: 2106463147095516152} 101 | - component: {fileID: 4195550815684687313} 102 | - component: {fileID: 8479694515570843939} 103 | m_Layer: 0 104 | m_Name: Liquid 105 | m_TagString: Untagged 106 | m_Icon: {fileID: 0} 107 | m_NavMeshLayer: 0 108 | m_StaticEditorFlags: 0 109 | m_IsActive: 1 110 | --- !u!4 &2106463147095516152 111 | Transform: 112 | m_ObjectHideFlags: 0 113 | m_CorrespondingSourceObject: {fileID: 0} 114 | m_PrefabInstance: {fileID: 0} 115 | m_PrefabAsset: {fileID: 0} 116 | m_GameObject: {fileID: 4368494120379776360} 117 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 118 | m_LocalPosition: {x: -0, y: 0, z: 0} 119 | m_LocalScale: {x: 1, y: 1, z: 1} 120 | m_Children: [] 121 | m_Father: {fileID: 1519625932346200664} 122 | m_RootOrder: 2 123 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 124 | --- !u!33 &4195550815684687313 125 | MeshFilter: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 4368494120379776360} 131 | m_Mesh: {fileID: -9216810965846887918, guid: 82ae06bcb7b8b53498a9550e007d21bc, type: 3} 132 | --- !u!23 &8479694515570843939 133 | MeshRenderer: 134 | m_ObjectHideFlags: 0 135 | m_CorrespondingSourceObject: {fileID: 0} 136 | m_PrefabInstance: {fileID: 0} 137 | m_PrefabAsset: {fileID: 0} 138 | m_GameObject: {fileID: 4368494120379776360} 139 | m_Enabled: 1 140 | m_CastShadows: 0 141 | m_ReceiveShadows: 0 142 | m_DynamicOccludee: 0 143 | m_MotionVectors: 1 144 | m_LightProbeUsage: 1 145 | m_ReflectionProbeUsage: 1 146 | m_RenderingLayerMask: 1 147 | m_RendererPriority: 0 148 | m_Materials: 149 | - {fileID: 0} 150 | m_StaticBatchInfo: 151 | firstSubMesh: 0 152 | subMeshCount: 0 153 | m_StaticBatchRoot: {fileID: 0} 154 | m_ProbeAnchor: {fileID: 0} 155 | m_LightProbeVolumeOverride: {fileID: 0} 156 | m_ScaleInLightmap: 1 157 | m_ReceiveGI: 1 158 | m_PreserveUVs: 0 159 | m_IgnoreNormalsForChartDetection: 0 160 | m_ImportantGI: 0 161 | m_StitchLightmapSeams: 1 162 | m_SelectedEditorRenderState: 3 163 | m_MinimumChartSize: 4 164 | m_AutoUVMaxDistance: 0.5 165 | m_AutoUVMaxAngle: 89 166 | m_LightmapParameters: {fileID: 0} 167 | m_SortingLayerID: 0 168 | m_SortingLayer: 0 169 | m_SortingOrder: 0 170 | --- !u!1 &7634469175278025645 171 | GameObject: 172 | m_ObjectHideFlags: 0 173 | m_CorrespondingSourceObject: {fileID: 0} 174 | m_PrefabInstance: {fileID: 0} 175 | m_PrefabAsset: {fileID: 0} 176 | serializedVersion: 6 177 | m_Component: 178 | - component: {fileID: 4010355648684805109} 179 | - component: {fileID: 52516837051074873} 180 | - component: {fileID: 2702110211509381637} 181 | m_Layer: 0 182 | m_Name: Cap 183 | m_TagString: Untagged 184 | m_Icon: {fileID: 0} 185 | m_NavMeshLayer: 0 186 | m_StaticEditorFlags: 0 187 | m_IsActive: 0 188 | --- !u!4 &4010355648684805109 189 | Transform: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | m_GameObject: {fileID: 7634469175278025645} 195 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 196 | m_LocalPosition: {x: -0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: [] 199 | m_Father: {fileID: 1519625932346200664} 200 | m_RootOrder: 1 201 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 202 | --- !u!33 &52516837051074873 203 | MeshFilter: 204 | m_ObjectHideFlags: 0 205 | m_CorrespondingSourceObject: {fileID: 0} 206 | m_PrefabInstance: {fileID: 0} 207 | m_PrefabAsset: {fileID: 0} 208 | m_GameObject: {fileID: 7634469175278025645} 209 | m_Mesh: {fileID: 3365645382605875686, guid: 82ae06bcb7b8b53498a9550e007d21bc, type: 3} 210 | --- !u!23 &2702110211509381637 211 | MeshRenderer: 212 | m_ObjectHideFlags: 0 213 | m_CorrespondingSourceObject: {fileID: 0} 214 | m_PrefabInstance: {fileID: 0} 215 | m_PrefabAsset: {fileID: 0} 216 | m_GameObject: {fileID: 7634469175278025645} 217 | m_Enabled: 1 218 | m_CastShadows: 1 219 | m_ReceiveShadows: 1 220 | m_DynamicOccludee: 1 221 | m_MotionVectors: 1 222 | m_LightProbeUsage: 1 223 | m_ReflectionProbeUsage: 1 224 | m_RenderingLayerMask: 1 225 | m_RendererPriority: 0 226 | m_Materials: 227 | - {fileID: 2100000, guid: 6ce279f6d23699248b3b02f9a9168c37, type: 2} 228 | m_StaticBatchInfo: 229 | firstSubMesh: 0 230 | subMeshCount: 0 231 | m_StaticBatchRoot: {fileID: 0} 232 | m_ProbeAnchor: {fileID: 0} 233 | m_LightProbeVolumeOverride: {fileID: 0} 234 | m_ScaleInLightmap: 1 235 | m_ReceiveGI: 1 236 | m_PreserveUVs: 0 237 | m_IgnoreNormalsForChartDetection: 0 238 | m_ImportantGI: 0 239 | m_StitchLightmapSeams: 1 240 | m_SelectedEditorRenderState: 3 241 | m_MinimumChartSize: 4 242 | m_AutoUVMaxDistance: 0.5 243 | m_AutoUVMaxAngle: 89 244 | m_LightmapParameters: {fileID: 0} 245 | m_SortingLayerID: 0 246 | m_SortingLayer: 0 247 | m_SortingOrder: 0 248 | --- !u!1 &8856505883073089809 249 | GameObject: 250 | m_ObjectHideFlags: 0 251 | m_CorrespondingSourceObject: {fileID: 0} 252 | m_PrefabInstance: {fileID: 0} 253 | m_PrefabAsset: {fileID: 0} 254 | serializedVersion: 6 255 | m_Component: 256 | - component: {fileID: 4978369109101898360} 257 | - component: {fileID: 5176330910244830806} 258 | - component: {fileID: 9216213750355567323} 259 | m_Layer: 0 260 | m_Name: Bottle 261 | m_TagString: Untagged 262 | m_Icon: {fileID: 0} 263 | m_NavMeshLayer: 0 264 | m_StaticEditorFlags: 0 265 | m_IsActive: 1 266 | --- !u!4 &4978369109101898360 267 | Transform: 268 | m_ObjectHideFlags: 0 269 | m_CorrespondingSourceObject: {fileID: 0} 270 | m_PrefabInstance: {fileID: 0} 271 | m_PrefabAsset: {fileID: 0} 272 | m_GameObject: {fileID: 8856505883073089809} 273 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 274 | m_LocalPosition: {x: -0, y: 0, z: 0} 275 | m_LocalScale: {x: 1, y: 1, z: 1} 276 | m_Children: [] 277 | m_Father: {fileID: 1519625932346200664} 278 | m_RootOrder: 0 279 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 280 | --- !u!33 &5176330910244830806 281 | MeshFilter: 282 | m_ObjectHideFlags: 0 283 | m_CorrespondingSourceObject: {fileID: 0} 284 | m_PrefabInstance: {fileID: 0} 285 | m_PrefabAsset: {fileID: 0} 286 | m_GameObject: {fileID: 8856505883073089809} 287 | m_Mesh: {fileID: 6121590469811200223, guid: 82ae06bcb7b8b53498a9550e007d21bc, type: 3} 288 | --- !u!23 &9216213750355567323 289 | MeshRenderer: 290 | m_ObjectHideFlags: 0 291 | m_CorrespondingSourceObject: {fileID: 0} 292 | m_PrefabInstance: {fileID: 0} 293 | m_PrefabAsset: {fileID: 0} 294 | m_GameObject: {fileID: 8856505883073089809} 295 | m_Enabled: 1 296 | m_CastShadows: 1 297 | m_ReceiveShadows: 1 298 | m_DynamicOccludee: 1 299 | m_MotionVectors: 1 300 | m_LightProbeUsage: 1 301 | m_ReflectionProbeUsage: 1 302 | m_RenderingLayerMask: 1 303 | m_RendererPriority: 0 304 | m_Materials: 305 | - {fileID: 2100000, guid: f5d0e024007d29c44a932f8cc87b3520, type: 2} 306 | m_StaticBatchInfo: 307 | firstSubMesh: 0 308 | subMeshCount: 0 309 | m_StaticBatchRoot: {fileID: 0} 310 | m_ProbeAnchor: {fileID: 0} 311 | m_LightProbeVolumeOverride: {fileID: 0} 312 | m_ScaleInLightmap: 1 313 | m_ReceiveGI: 1 314 | m_PreserveUVs: 0 315 | m_IgnoreNormalsForChartDetection: 0 316 | m_ImportantGI: 0 317 | m_StitchLightmapSeams: 1 318 | m_SelectedEditorRenderState: 3 319 | m_MinimumChartSize: 4 320 | m_AutoUVMaxDistance: 0.5 321 | m_AutoUVMaxAngle: 89 322 | m_LightmapParameters: {fileID: 0} 323 | m_SortingLayerID: 0 324 | m_SortingLayer: 0 325 | m_SortingOrder: 0 326 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Prefabs/Bottle.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3803ca82074e8354e84353e64b5d2f29 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Prefabs/Glass.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &3143017696739695999 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 1601175883211743740} 12 | - component: {fileID: 7815246123550276744} 13 | - component: {fileID: 765355747951042094} 14 | m_Layer: 0 15 | m_Name: Fluid 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &1601175883211743740 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 3143017696739695999} 28 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 29 | m_LocalPosition: {x: 0.0000030743395, y: 0.0015764087, z: -0.00000060188177} 30 | m_LocalScale: {x: 0.98365045, y: 0.98365045, z: 0.98365045} 31 | m_Children: [] 32 | m_Father: {fileID: 8191323892244427148} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!33 &7815246123550276744 36 | MeshFilter: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | m_GameObject: {fileID: 3143017696739695999} 42 | m_Mesh: {fileID: -7258037994817100765, guid: f3a07e53f958fbd4d9561fbbb678e026, type: 3} 43 | --- !u!23 &765355747951042094 44 | MeshRenderer: 45 | m_ObjectHideFlags: 0 46 | m_CorrespondingSourceObject: {fileID: 0} 47 | m_PrefabInstance: {fileID: 0} 48 | m_PrefabAsset: {fileID: 0} 49 | m_GameObject: {fileID: 3143017696739695999} 50 | m_Enabled: 1 51 | m_CastShadows: 0 52 | m_ReceiveShadows: 0 53 | m_DynamicOccludee: 1 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_RenderingLayerMask: 1 58 | m_RendererPriority: 0 59 | m_Materials: 60 | - {fileID: 0} 61 | m_StaticBatchInfo: 62 | firstSubMesh: 0 63 | subMeshCount: 0 64 | m_StaticBatchRoot: {fileID: 0} 65 | m_ProbeAnchor: {fileID: 0} 66 | m_LightProbeVolumeOverride: {fileID: 0} 67 | m_ScaleInLightmap: 1 68 | m_ReceiveGI: 1 69 | m_PreserveUVs: 0 70 | m_IgnoreNormalsForChartDetection: 0 71 | m_ImportantGI: 0 72 | m_StitchLightmapSeams: 1 73 | m_SelectedEditorRenderState: 3 74 | m_MinimumChartSize: 4 75 | m_AutoUVMaxDistance: 0.5 76 | m_AutoUVMaxAngle: 89 77 | m_LightmapParameters: {fileID: 0} 78 | m_SortingLayerID: 0 79 | m_SortingLayer: 0 80 | m_SortingOrder: 0 81 | --- !u!1 &5185389706047701919 82 | GameObject: 83 | m_ObjectHideFlags: 0 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInstance: {fileID: 0} 86 | m_PrefabAsset: {fileID: 0} 87 | serializedVersion: 6 88 | m_Component: 89 | - component: {fileID: 8191323892244427148} 90 | - component: {fileID: 8296172667356064988} 91 | - component: {fileID: 1222170062} 92 | - component: {fileID: 1222170061} 93 | m_Layer: 0 94 | m_Name: Glass 95 | m_TagString: Untagged 96 | m_Icon: {fileID: 0} 97 | m_NavMeshLayer: 0 98 | m_StaticEditorFlags: 0 99 | m_IsActive: 1 100 | --- !u!4 &8191323892244427148 101 | Transform: 102 | m_ObjectHideFlags: 0 103 | m_CorrespondingSourceObject: {fileID: 0} 104 | m_PrefabInstance: {fileID: 0} 105 | m_PrefabAsset: {fileID: 0} 106 | m_GameObject: {fileID: 5185389706047701919} 107 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 108 | m_LocalPosition: {x: 0, y: 1.138, z: 0} 109 | m_LocalScale: {x: 0.44647616, y: 0.44647616, z: 0.44647616} 110 | m_Children: 111 | - {fileID: 1601175883211743740} 112 | - {fileID: 3241803590354836021} 113 | m_Father: {fileID: 0} 114 | m_RootOrder: 0 115 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 116 | --- !u!114 &8296172667356064988 117 | MonoBehaviour: 118 | m_ObjectHideFlags: 0 119 | m_CorrespondingSourceObject: {fileID: 0} 120 | m_PrefabInstance: {fileID: 0} 121 | m_PrefabAsset: {fileID: 0} 122 | m_GameObject: {fileID: 5185389706047701919} 123 | m_Enabled: 1 124 | m_EditorHideFlags: 0 125 | m_Script: {fileID: 11500000, guid: 7f97c0cadc5f88b46b59a38d17fac88e, type: 3} 126 | m_Name: 127 | m_EditorClassIdentifier: 128 | liquidRender: {fileID: 765355747951042094} 129 | liquidMaterial: {fileID: 2100000, guid: 8dec526bbd84d684da6f40f79c3ab1bd, type: 2} 130 | cap: {fileID: 0} 131 | isOpen: 1 132 | inertness: 50 133 | liquidColor: {r: 0.09411764, g: 0.36862746, b: 0.13224405, a: 0.4117647} 134 | fillAmountPercent: 0.491 135 | customVolume: 0 136 | --- !u!65 &1222170062 137 | BoxCollider: 138 | m_ObjectHideFlags: 0 139 | m_CorrespondingSourceObject: {fileID: 0} 140 | m_PrefabInstance: {fileID: 0} 141 | m_PrefabAsset: {fileID: 0} 142 | m_GameObject: {fileID: 5185389706047701919} 143 | m_Material: {fileID: 0} 144 | m_IsTrigger: 0 145 | m_Enabled: 1 146 | serializedVersion: 2 147 | m_Size: {x: 0.16000001, y: 0.192807, z: 0.16} 148 | m_Center: {x: 0, y: 0, z: 0} 149 | --- !u!114 &1222170061 150 | MonoBehaviour: 151 | m_ObjectHideFlags: 0 152 | m_CorrespondingSourceObject: {fileID: 0} 153 | m_PrefabInstance: {fileID: 0} 154 | m_PrefabAsset: {fileID: 0} 155 | m_GameObject: {fileID: 5185389706047701919} 156 | m_Enabled: 1 157 | m_EditorHideFlags: 0 158 | m_Script: {fileID: 11500000, guid: acb562255fca9b544b4583d4e7147e92, type: 3} 159 | m_Name: 160 | m_EditorClassIdentifier: 161 | liquidContainer: {fileID: 8296172667356064988} 162 | bottleneckRadius: 0.045 163 | splitSpeed: 40 164 | maxEdgeDrops: 4 165 | particlesPrefab: {fileID: 5157395080114985353, guid: 6cbd7c4436dcf4a709ab46f353a9d3c3, 166 | type: 3} 167 | mixingSpeed: 1 168 | --- !u!1 &5222405182016459952 169 | GameObject: 170 | m_ObjectHideFlags: 0 171 | m_CorrespondingSourceObject: {fileID: 0} 172 | m_PrefabInstance: {fileID: 0} 173 | m_PrefabAsset: {fileID: 0} 174 | serializedVersion: 6 175 | m_Component: 176 | - component: {fileID: 3241803590354836021} 177 | - component: {fileID: 4150695810904119621} 178 | - component: {fileID: 773405230227982066} 179 | m_Layer: 0 180 | m_Name: WhiskeyGlass 181 | m_TagString: Untagged 182 | m_Icon: {fileID: 0} 183 | m_NavMeshLayer: 0 184 | m_StaticEditorFlags: 0 185 | m_IsActive: 1 186 | --- !u!4 &3241803590354836021 187 | Transform: 188 | m_ObjectHideFlags: 0 189 | m_CorrespondingSourceObject: {fileID: 0} 190 | m_PrefabInstance: {fileID: 0} 191 | m_PrefabAsset: {fileID: 0} 192 | m_GameObject: {fileID: 5222405182016459952} 193 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 194 | m_LocalPosition: {x: -0, y: 0, z: 0} 195 | m_LocalScale: {x: 1, y: 1, z: 1} 196 | m_Children: [] 197 | m_Father: {fileID: 8191323892244427148} 198 | m_RootOrder: 1 199 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 200 | --- !u!33 &4150695810904119621 201 | MeshFilter: 202 | m_ObjectHideFlags: 0 203 | m_CorrespondingSourceObject: {fileID: 0} 204 | m_PrefabInstance: {fileID: 0} 205 | m_PrefabAsset: {fileID: 0} 206 | m_GameObject: {fileID: 5222405182016459952} 207 | m_Mesh: {fileID: 7545540037413135360, guid: f3a07e53f958fbd4d9561fbbb678e026, type: 3} 208 | --- !u!23 &773405230227982066 209 | MeshRenderer: 210 | m_ObjectHideFlags: 0 211 | m_CorrespondingSourceObject: {fileID: 0} 212 | m_PrefabInstance: {fileID: 0} 213 | m_PrefabAsset: {fileID: 0} 214 | m_GameObject: {fileID: 5222405182016459952} 215 | m_Enabled: 1 216 | m_CastShadows: 1 217 | m_ReceiveShadows: 1 218 | m_DynamicOccludee: 1 219 | m_MotionVectors: 1 220 | m_LightProbeUsage: 1 221 | m_ReflectionProbeUsage: 1 222 | m_RenderingLayerMask: 1 223 | m_RendererPriority: 0 224 | m_Materials: 225 | - {fileID: 2100000, guid: f5d0e024007d29c44a932f8cc87b3520, type: 2} 226 | m_StaticBatchInfo: 227 | firstSubMesh: 0 228 | subMeshCount: 0 229 | m_StaticBatchRoot: {fileID: 0} 230 | m_ProbeAnchor: {fileID: 0} 231 | m_LightProbeVolumeOverride: {fileID: 0} 232 | m_ScaleInLightmap: 1 233 | m_ReceiveGI: 1 234 | m_PreserveUVs: 0 235 | m_IgnoreNormalsForChartDetection: 0 236 | m_ImportantGI: 0 237 | m_StitchLightmapSeams: 1 238 | m_SelectedEditorRenderState: 3 239 | m_MinimumChartSize: 4 240 | m_AutoUVMaxDistance: 0.5 241 | m_AutoUVMaxAngle: 89 242 | m_LightmapParameters: {fileID: 0} 243 | m_SortingLayerID: 0 244 | m_SortingLayer: 0 245 | m_SortingOrder: 0 246 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Prefabs/Glass.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcd73b51eabfdb64d8180fae92d8e674 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e34c2578bd69224b9716e3ca90cea81 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Change Color.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0af8189f6d578944b190245b7a8fe65 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e0e8aa030fed7a4eb1fe18fd18a14be 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 1 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightingDataAsset: {fileID: 112000000, guid: 1154d3ed37ef2b34ab5653fa091f3d84, 100 | type: 2} 101 | m_UseShadowmask: 1 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | debug: 122 | m_Flags: 0 123 | m_NavMeshData: {fileID: 0} 124 | --- !u!1 &38791931 125 | GameObject: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | serializedVersion: 6 131 | m_Component: 132 | - component: {fileID: 38791935} 133 | - component: {fileID: 38791934} 134 | - component: {fileID: 38791933} 135 | - component: {fileID: 38791932} 136 | m_Layer: 0 137 | m_Name: Drop2 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!65 &38791932 144 | BoxCollider: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 38791931} 150 | m_Material: {fileID: 0} 151 | m_IsTrigger: 0 152 | m_Enabled: 1 153 | serializedVersion: 2 154 | m_Size: {x: 1, y: 1, z: 1} 155 | m_Center: {x: 0, y: 0, z: 0} 156 | --- !u!23 &38791933 157 | MeshRenderer: 158 | m_ObjectHideFlags: 0 159 | m_CorrespondingSourceObject: {fileID: 0} 160 | m_PrefabInstance: {fileID: 0} 161 | m_PrefabAsset: {fileID: 0} 162 | m_GameObject: {fileID: 38791931} 163 | m_Enabled: 1 164 | m_CastShadows: 1 165 | m_ReceiveShadows: 1 166 | m_DynamicOccludee: 1 167 | m_MotionVectors: 1 168 | m_LightProbeUsage: 1 169 | m_ReflectionProbeUsage: 1 170 | m_RenderingLayerMask: 1 171 | m_RendererPriority: 0 172 | m_Materials: 173 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 174 | m_StaticBatchInfo: 175 | firstSubMesh: 0 176 | subMeshCount: 0 177 | m_StaticBatchRoot: {fileID: 0} 178 | m_ProbeAnchor: {fileID: 0} 179 | m_LightProbeVolumeOverride: {fileID: 0} 180 | m_ScaleInLightmap: 1 181 | m_ReceiveGI: 1 182 | m_PreserveUVs: 0 183 | m_IgnoreNormalsForChartDetection: 0 184 | m_ImportantGI: 0 185 | m_StitchLightmapSeams: 1 186 | m_SelectedEditorRenderState: 3 187 | m_MinimumChartSize: 4 188 | m_AutoUVMaxDistance: 0.5 189 | m_AutoUVMaxAngle: 89 190 | m_LightmapParameters: {fileID: 0} 191 | m_SortingLayerID: 0 192 | m_SortingLayer: 0 193 | m_SortingOrder: 0 194 | --- !u!33 &38791934 195 | MeshFilter: 196 | m_ObjectHideFlags: 0 197 | m_CorrespondingSourceObject: {fileID: 0} 198 | m_PrefabInstance: {fileID: 0} 199 | m_PrefabAsset: {fileID: 0} 200 | m_GameObject: {fileID: 38791931} 201 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 202 | --- !u!4 &38791935 203 | Transform: 204 | m_ObjectHideFlags: 0 205 | m_CorrespondingSourceObject: {fileID: 0} 206 | m_PrefabInstance: {fileID: 0} 207 | m_PrefabAsset: {fileID: 0} 208 | m_GameObject: {fileID: 38791931} 209 | m_LocalRotation: {x: -0, y: -0, z: -0.17364825, w: 0.9848078} 210 | m_LocalPosition: {x: 0.702, y: 1.2219999, z: -0.027} 211 | m_LocalScale: {x: 0.2, y: 0.01, z: 0.1} 212 | m_Children: [] 213 | m_Father: {fileID: 494957920} 214 | m_RootOrder: 0 215 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: -20} 216 | --- !u!1 &43539778 217 | GameObject: 218 | m_ObjectHideFlags: 0 219 | m_CorrespondingSourceObject: {fileID: 0} 220 | m_PrefabInstance: {fileID: 0} 221 | m_PrefabAsset: {fileID: 0} 222 | serializedVersion: 6 223 | m_Component: 224 | - component: {fileID: 43539781} 225 | - component: {fileID: 43539780} 226 | - component: {fileID: 43539779} 227 | m_Layer: 0 228 | m_Name: Logo 229 | m_TagString: Untagged 230 | m_Icon: {fileID: 0} 231 | m_NavMeshLayer: 0 232 | m_StaticEditorFlags: 0 233 | m_IsActive: 1 234 | --- !u!102 &43539779 235 | TextMesh: 236 | serializedVersion: 3 237 | m_ObjectHideFlags: 0 238 | m_CorrespondingSourceObject: {fileID: 0} 239 | m_PrefabInstance: {fileID: 0} 240 | m_PrefabAsset: {fileID: 0} 241 | m_GameObject: {fileID: 43539778} 242 | m_Text: 'Unity Simple 243 | 244 | Liquid' 245 | m_OffsetZ: 0 246 | m_CharacterSize: 1 247 | m_LineSpacing: 1 248 | m_Anchor: 0 249 | m_Alignment: 0 250 | m_TabSize: 4 251 | m_FontSize: 45 252 | m_FontStyle: 0 253 | m_RichText: 1 254 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 255 | m_Color: 256 | serializedVersion: 2 257 | rgba: 4294967295 258 | --- !u!23 &43539780 259 | MeshRenderer: 260 | m_ObjectHideFlags: 0 261 | m_CorrespondingSourceObject: {fileID: 0} 262 | m_PrefabInstance: {fileID: 0} 263 | m_PrefabAsset: {fileID: 0} 264 | m_GameObject: {fileID: 43539778} 265 | m_Enabled: 1 266 | m_CastShadows: 1 267 | m_ReceiveShadows: 1 268 | m_DynamicOccludee: 1 269 | m_MotionVectors: 1 270 | m_LightProbeUsage: 1 271 | m_ReflectionProbeUsage: 1 272 | m_RenderingLayerMask: 1 273 | m_RendererPriority: 0 274 | m_Materials: 275 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 276 | m_StaticBatchInfo: 277 | firstSubMesh: 0 278 | subMeshCount: 0 279 | m_StaticBatchRoot: {fileID: 0} 280 | m_ProbeAnchor: {fileID: 0} 281 | m_LightProbeVolumeOverride: {fileID: 0} 282 | m_ScaleInLightmap: 1 283 | m_ReceiveGI: 1 284 | m_PreserveUVs: 0 285 | m_IgnoreNormalsForChartDetection: 0 286 | m_ImportantGI: 0 287 | m_StitchLightmapSeams: 1 288 | m_SelectedEditorRenderState: 3 289 | m_MinimumChartSize: 4 290 | m_AutoUVMaxDistance: 0.5 291 | m_AutoUVMaxAngle: 89 292 | m_LightmapParameters: {fileID: 0} 293 | m_SortingLayerID: 0 294 | m_SortingLayer: 0 295 | m_SortingOrder: 0 296 | --- !u!4 &43539781 297 | Transform: 298 | m_ObjectHideFlags: 0 299 | m_CorrespondingSourceObject: {fileID: 0} 300 | m_PrefabInstance: {fileID: 0} 301 | m_PrefabAsset: {fileID: 0} 302 | m_GameObject: {fileID: 43539778} 303 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 304 | m_LocalPosition: {x: 0.24529631, y: 2.31, z: 1.3239894} 305 | m_LocalScale: {x: 0.051388577, y: 0.051388577, z: 0.051388577} 306 | m_Children: [] 307 | m_Father: {fileID: 728861136} 308 | m_RootOrder: 0 309 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 310 | --- !u!1001 &76327050 311 | PrefabInstance: 312 | m_ObjectHideFlags: 0 313 | serializedVersion: 2 314 | m_Modification: 315 | m_TransformParent: {fileID: 494957920} 316 | m_Modifications: 317 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 318 | type: 3} 319 | propertyPath: m_Name 320 | value: Glass (2) 321 | objectReference: {fileID: 0} 322 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 323 | type: 3} 324 | propertyPath: m_IsActive 325 | value: 1 326 | objectReference: {fileID: 0} 327 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 328 | type: 3} 329 | propertyPath: m_LocalPosition.x 330 | value: 0.6946 331 | objectReference: {fileID: 0} 332 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 333 | type: 3} 334 | propertyPath: m_LocalPosition.y 335 | value: 1.071 336 | objectReference: {fileID: 0} 337 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 338 | type: 3} 339 | propertyPath: m_LocalPosition.z 340 | value: -0.047 341 | objectReference: {fileID: 0} 342 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 343 | type: 3} 344 | propertyPath: m_LocalRotation.x 345 | value: -0 346 | objectReference: {fileID: 0} 347 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 348 | type: 3} 349 | propertyPath: m_LocalRotation.y 350 | value: -0 351 | objectReference: {fileID: 0} 352 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 353 | type: 3} 354 | propertyPath: m_LocalRotation.z 355 | value: -0 356 | objectReference: {fileID: 0} 357 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 358 | type: 3} 359 | propertyPath: m_LocalRotation.w 360 | value: 1 361 | objectReference: {fileID: 0} 362 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 363 | type: 3} 364 | propertyPath: m_RootOrder 365 | value: 4 366 | objectReference: {fileID: 0} 367 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 368 | type: 3} 369 | propertyPath: m_LocalEulerAnglesHint.x 370 | value: 0 371 | objectReference: {fileID: 0} 372 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 373 | type: 3} 374 | propertyPath: m_LocalEulerAnglesHint.y 375 | value: 0 376 | objectReference: {fileID: 0} 377 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 378 | type: 3} 379 | propertyPath: m_LocalEulerAnglesHint.z 380 | value: 0 381 | objectReference: {fileID: 0} 382 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 383 | type: 3} 384 | propertyPath: m_LocalScale.x 385 | value: 0.44647995 386 | objectReference: {fileID: 0} 387 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 388 | type: 3} 389 | propertyPath: m_LocalScale.y 390 | value: 0.44647995 391 | objectReference: {fileID: 0} 392 | - target: {fileID: 765355747951042094, guid: dcd73b51eabfdb64d8180fae92d8e674, 393 | type: 3} 394 | propertyPath: m_Materials.Array.data[0] 395 | value: 396 | objectReference: {fileID: 311477789} 397 | m_RemovedComponents: [] 398 | m_SourcePrefab: {fileID: 100100000, guid: dcd73b51eabfdb64d8180fae92d8e674, type: 3} 399 | --- !u!4 &197674952 stripped 400 | Transform: 401 | m_CorrespondingSourceObject: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 402 | type: 3} 403 | m_PrefabInstance: {fileID: 1316520427} 404 | m_PrefabAsset: {fileID: 0} 405 | --- !u!21 &311477789 406 | Material: 407 | serializedVersion: 6 408 | m_ObjectHideFlags: 0 409 | m_CorrespondingSourceObject: {fileID: 0} 410 | m_PrefabInstance: {fileID: 0} 411 | m_PrefabAsset: {fileID: 0} 412 | m_Name: DefaultLiquid 413 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 414 | m_ShaderKeywords: 415 | m_LightmapFlags: 4 416 | m_EnableInstancingVariants: 0 417 | m_DoubleSidedGI: 0 418 | m_CustomRenderQueue: -1 419 | stringTagMap: {} 420 | disabledShaderPasses: [] 421 | m_SavedProperties: 422 | serializedVersion: 3 423 | m_TexEnvs: 424 | - _BumpMap: 425 | m_Texture: {fileID: 0} 426 | m_Scale: {x: 1, y: 1} 427 | m_Offset: {x: 0, y: 0} 428 | - _DetailAlbedoMap: 429 | m_Texture: {fileID: 0} 430 | m_Scale: {x: 1, y: 1} 431 | m_Offset: {x: 0, y: 0} 432 | - _DetailMask: 433 | m_Texture: {fileID: 0} 434 | m_Scale: {x: 1, y: 1} 435 | m_Offset: {x: 0, y: 0} 436 | - _DetailNormalMap: 437 | m_Texture: {fileID: 0} 438 | m_Scale: {x: 1, y: 1} 439 | m_Offset: {x: 0, y: 0} 440 | - _EmissionMap: 441 | m_Texture: {fileID: 0} 442 | m_Scale: {x: 1, y: 1} 443 | m_Offset: {x: 0, y: 0} 444 | - _MainTex: 445 | m_Texture: {fileID: 0} 446 | m_Scale: {x: 1, y: 1} 447 | m_Offset: {x: 0, y: 0} 448 | - _MetallicGlossMap: 449 | m_Texture: {fileID: 0} 450 | m_Scale: {x: 1, y: 1} 451 | m_Offset: {x: 0, y: 0} 452 | - _OcclusionMap: 453 | m_Texture: {fileID: 0} 454 | m_Scale: {x: 1, y: 1} 455 | m_Offset: {x: 0, y: 0} 456 | - _ParallaxMap: 457 | m_Texture: {fileID: 0} 458 | m_Scale: {x: 1, y: 1} 459 | m_Offset: {x: 0, y: 0} 460 | m_Floats: 461 | - _BumpScale: 1 462 | - _Cutoff: 0.5 463 | - _DetailNormalMapScale: 1 464 | - _DstBlend: 0 465 | - _GlossMapScale: 1 466 | - _Glossiness: 0.5 467 | - _GlossyReflections: 1 468 | - _Metallic: 0 469 | - _Mode: 0 470 | - _OcclusionStrength: 1 471 | - _Parallax: 0.02 472 | - _SmoothnessTextureChannel: 0 473 | - _SpecularHighlights: 1 474 | - _SrcBlend: 1 475 | - _UVSec: 0 476 | - _ZWrite: 1 477 | m_Colors: 478 | - _Color: {r: 0.09411764, g: 0.36862746, b: 0.13224405, a: 0.4117647} 479 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 480 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 481 | - _SurfaceLevel: {r: 0.69460136, g: 1.0818012, b: -0.047000267, a: 0} 482 | --- !u!1 &322788915 483 | GameObject: 484 | m_ObjectHideFlags: 0 485 | m_CorrespondingSourceObject: {fileID: 0} 486 | m_PrefabInstance: {fileID: 0} 487 | m_PrefabAsset: {fileID: 0} 488 | serializedVersion: 6 489 | m_Component: 490 | - component: {fileID: 322788919} 491 | - component: {fileID: 322788918} 492 | - component: {fileID: 322788917} 493 | - component: {fileID: 322788916} 494 | m_Layer: 0 495 | m_Name: Cube 496 | m_TagString: Untagged 497 | m_Icon: {fileID: 0} 498 | m_NavMeshLayer: 0 499 | m_StaticEditorFlags: 0 500 | m_IsActive: 1 501 | --- !u!65 &322788916 502 | BoxCollider: 503 | m_ObjectHideFlags: 0 504 | m_CorrespondingSourceObject: {fileID: 0} 505 | m_PrefabInstance: {fileID: 0} 506 | m_PrefabAsset: {fileID: 0} 507 | m_GameObject: {fileID: 322788915} 508 | m_Material: {fileID: 0} 509 | m_IsTrigger: 0 510 | m_Enabled: 1 511 | serializedVersion: 2 512 | m_Size: {x: 1, y: 1, z: 1} 513 | m_Center: {x: 0, y: 0, z: 0} 514 | --- !u!23 &322788917 515 | MeshRenderer: 516 | m_ObjectHideFlags: 0 517 | m_CorrespondingSourceObject: {fileID: 0} 518 | m_PrefabInstance: {fileID: 0} 519 | m_PrefabAsset: {fileID: 0} 520 | m_GameObject: {fileID: 322788915} 521 | m_Enabled: 1 522 | m_CastShadows: 1 523 | m_ReceiveShadows: 1 524 | m_DynamicOccludee: 1 525 | m_MotionVectors: 1 526 | m_LightProbeUsage: 1 527 | m_ReflectionProbeUsage: 1 528 | m_RenderingLayerMask: 1 529 | m_RendererPriority: 0 530 | m_Materials: 531 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 532 | m_StaticBatchInfo: 533 | firstSubMesh: 0 534 | subMeshCount: 0 535 | m_StaticBatchRoot: {fileID: 0} 536 | m_ProbeAnchor: {fileID: 0} 537 | m_LightProbeVolumeOverride: {fileID: 0} 538 | m_ScaleInLightmap: 1 539 | m_ReceiveGI: 1 540 | m_PreserveUVs: 0 541 | m_IgnoreNormalsForChartDetection: 0 542 | m_ImportantGI: 0 543 | m_StitchLightmapSeams: 1 544 | m_SelectedEditorRenderState: 3 545 | m_MinimumChartSize: 4 546 | m_AutoUVMaxDistance: 0.5 547 | m_AutoUVMaxAngle: 89 548 | m_LightmapParameters: {fileID: 0} 549 | m_SortingLayerID: 0 550 | m_SortingLayer: 0 551 | m_SortingOrder: 0 552 | --- !u!33 &322788918 553 | MeshFilter: 554 | m_ObjectHideFlags: 0 555 | m_CorrespondingSourceObject: {fileID: 0} 556 | m_PrefabInstance: {fileID: 0} 557 | m_PrefabAsset: {fileID: 0} 558 | m_GameObject: {fileID: 322788915} 559 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 560 | --- !u!4 &322788919 561 | Transform: 562 | m_ObjectHideFlags: 0 563 | m_CorrespondingSourceObject: {fileID: 0} 564 | m_PrefabInstance: {fileID: 0} 565 | m_PrefabAsset: {fileID: 0} 566 | m_GameObject: {fileID: 322788915} 567 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 568 | m_LocalPosition: {x: 0, y: 0.514, z: 0} 569 | m_LocalScale: {x: 2, y: 1, z: 0.80217326} 570 | m_Children: [] 571 | m_Father: {fileID: 728861136} 572 | m_RootOrder: 3 573 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 574 | --- !u!1 &426081792 575 | GameObject: 576 | m_ObjectHideFlags: 0 577 | m_CorrespondingSourceObject: {fileID: 0} 578 | m_PrefabInstance: {fileID: 0} 579 | m_PrefabAsset: {fileID: 0} 580 | serializedVersion: 6 581 | m_Component: 582 | - component: {fileID: 426081796} 583 | - component: {fileID: 426081795} 584 | - component: {fileID: 426081794} 585 | - component: {fileID: 426081793} 586 | m_Layer: 0 587 | m_Name: Plane 588 | m_TagString: Untagged 589 | m_Icon: {fileID: 0} 590 | m_NavMeshLayer: 0 591 | m_StaticEditorFlags: 0 592 | m_IsActive: 1 593 | --- !u!64 &426081793 594 | MeshCollider: 595 | m_ObjectHideFlags: 0 596 | m_CorrespondingSourceObject: {fileID: 0} 597 | m_PrefabInstance: {fileID: 0} 598 | m_PrefabAsset: {fileID: 0} 599 | m_GameObject: {fileID: 426081792} 600 | m_Material: {fileID: 0} 601 | m_IsTrigger: 0 602 | m_Enabled: 1 603 | serializedVersion: 3 604 | m_Convex: 0 605 | m_CookingOptions: 14 606 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 607 | --- !u!23 &426081794 608 | MeshRenderer: 609 | m_ObjectHideFlags: 0 610 | m_CorrespondingSourceObject: {fileID: 0} 611 | m_PrefabInstance: {fileID: 0} 612 | m_PrefabAsset: {fileID: 0} 613 | m_GameObject: {fileID: 426081792} 614 | m_Enabled: 1 615 | m_CastShadows: 1 616 | m_ReceiveShadows: 1 617 | m_DynamicOccludee: 1 618 | m_MotionVectors: 1 619 | m_LightProbeUsage: 1 620 | m_ReflectionProbeUsage: 1 621 | m_RenderingLayerMask: 1 622 | m_RendererPriority: 0 623 | m_Materials: 624 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 625 | m_StaticBatchInfo: 626 | firstSubMesh: 0 627 | subMeshCount: 0 628 | m_StaticBatchRoot: {fileID: 0} 629 | m_ProbeAnchor: {fileID: 0} 630 | m_LightProbeVolumeOverride: {fileID: 0} 631 | m_ScaleInLightmap: 1 632 | m_ReceiveGI: 1 633 | m_PreserveUVs: 0 634 | m_IgnoreNormalsForChartDetection: 0 635 | m_ImportantGI: 0 636 | m_StitchLightmapSeams: 1 637 | m_SelectedEditorRenderState: 3 638 | m_MinimumChartSize: 4 639 | m_AutoUVMaxDistance: 0.5 640 | m_AutoUVMaxAngle: 89 641 | m_LightmapParameters: {fileID: 0} 642 | m_SortingLayerID: 0 643 | m_SortingLayer: 0 644 | m_SortingOrder: 0 645 | --- !u!33 &426081795 646 | MeshFilter: 647 | m_ObjectHideFlags: 0 648 | m_CorrespondingSourceObject: {fileID: 0} 649 | m_PrefabInstance: {fileID: 0} 650 | m_PrefabAsset: {fileID: 0} 651 | m_GameObject: {fileID: 426081792} 652 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 653 | --- !u!4 &426081796 654 | Transform: 655 | m_ObjectHideFlags: 0 656 | m_CorrespondingSourceObject: {fileID: 0} 657 | m_PrefabInstance: {fileID: 0} 658 | m_PrefabAsset: {fileID: 0} 659 | m_GameObject: {fileID: 426081792} 660 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 661 | m_LocalPosition: {x: 0, y: 0, z: 0} 662 | m_LocalScale: {x: 1, y: 1, z: 1} 663 | m_Children: [] 664 | m_Father: {fileID: 728861136} 665 | m_RootOrder: 2 666 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 667 | --- !u!21 &444572669 668 | Material: 669 | serializedVersion: 6 670 | m_ObjectHideFlags: 0 671 | m_CorrespondingSourceObject: {fileID: 0} 672 | m_PrefabInstance: {fileID: 0} 673 | m_PrefabAsset: {fileID: 0} 674 | m_Name: DefaultLiquid 675 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 676 | m_ShaderKeywords: 677 | m_LightmapFlags: 4 678 | m_EnableInstancingVariants: 0 679 | m_DoubleSidedGI: 0 680 | m_CustomRenderQueue: -1 681 | stringTagMap: {} 682 | disabledShaderPasses: [] 683 | m_SavedProperties: 684 | serializedVersion: 3 685 | m_TexEnvs: 686 | - _BumpMap: 687 | m_Texture: {fileID: 0} 688 | m_Scale: {x: 1, y: 1} 689 | m_Offset: {x: 0, y: 0} 690 | - _DetailAlbedoMap: 691 | m_Texture: {fileID: 0} 692 | m_Scale: {x: 1, y: 1} 693 | m_Offset: {x: 0, y: 0} 694 | - _DetailMask: 695 | m_Texture: {fileID: 0} 696 | m_Scale: {x: 1, y: 1} 697 | m_Offset: {x: 0, y: 0} 698 | - _DetailNormalMap: 699 | m_Texture: {fileID: 0} 700 | m_Scale: {x: 1, y: 1} 701 | m_Offset: {x: 0, y: 0} 702 | - _EmissionMap: 703 | m_Texture: {fileID: 0} 704 | m_Scale: {x: 1, y: 1} 705 | m_Offset: {x: 0, y: 0} 706 | - _MainTex: 707 | m_Texture: {fileID: 0} 708 | m_Scale: {x: 1, y: 1} 709 | m_Offset: {x: 0, y: 0} 710 | - _MetallicGlossMap: 711 | m_Texture: {fileID: 0} 712 | m_Scale: {x: 1, y: 1} 713 | m_Offset: {x: 0, y: 0} 714 | - _OcclusionMap: 715 | m_Texture: {fileID: 0} 716 | m_Scale: {x: 1, y: 1} 717 | m_Offset: {x: 0, y: 0} 718 | - _ParallaxMap: 719 | m_Texture: {fileID: 0} 720 | m_Scale: {x: 1, y: 1} 721 | m_Offset: {x: 0, y: 0} 722 | m_Floats: 723 | - _BumpScale: 1 724 | - _Cutoff: 0.5 725 | - _DetailNormalMapScale: 1 726 | - _DstBlend: 0 727 | - _GlossMapScale: 1 728 | - _Glossiness: 0.5 729 | - _GlossyReflections: 1 730 | - _Metallic: 0 731 | - _Mode: 0 732 | - _OcclusionStrength: 1 733 | - _Parallax: 0.02 734 | - _SmoothnessTextureChannel: 0 735 | - _SpecularHighlights: 1 736 | - _SrcBlend: 1 737 | - _UVSec: 0 738 | - _ZWrite: 1 739 | m_Colors: 740 | - _Color: {r: 0.09411764, g: 0.36862746, b: 0.13224405, a: 0.4117647} 741 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 742 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 743 | - _SurfaceLevel: {r: 0.1194734, g: 1.1856878, b: 0.003481216, a: 0} 744 | --- !u!1 &494957919 745 | GameObject: 746 | m_ObjectHideFlags: 0 747 | m_CorrespondingSourceObject: {fileID: 0} 748 | m_PrefabInstance: {fileID: 0} 749 | m_PrefabAsset: {fileID: 0} 750 | serializedVersion: 6 751 | m_Component: 752 | - component: {fileID: 494957920} 753 | m_Layer: 0 754 | m_Name: SlopeDemo 755 | m_TagString: Untagged 756 | m_Icon: {fileID: 0} 757 | m_NavMeshLayer: 0 758 | m_StaticEditorFlags: 0 759 | m_IsActive: 1 760 | --- !u!4 &494957920 761 | Transform: 762 | m_ObjectHideFlags: 0 763 | m_CorrespondingSourceObject: {fileID: 0} 764 | m_PrefabInstance: {fileID: 0} 765 | m_PrefabAsset: {fileID: 0} 766 | m_GameObject: {fileID: 494957919} 767 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 768 | m_LocalPosition: {x: 0, y: 0, z: 0} 769 | m_LocalScale: {x: 1, y: 1, z: 1} 770 | m_Children: 771 | - {fileID: 38791935} 772 | - {fileID: 656708534} 773 | - {fileID: 2094895850} 774 | - {fileID: 197674952} 775 | - {fileID: 1033486901} 776 | m_Father: {fileID: 886273610} 777 | m_RootOrder: 1 778 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 779 | --- !u!1001 &537452409 780 | PrefabInstance: 781 | m_ObjectHideFlags: 0 782 | serializedVersion: 2 783 | m_Modification: 784 | m_TransformParent: {fileID: 494957920} 785 | m_Modifications: 786 | - target: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 787 | type: 3} 788 | propertyPath: m_Name 789 | value: EndlessBottle 790 | objectReference: {fileID: 0} 791 | - target: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 792 | type: 3} 793 | propertyPath: m_IsActive 794 | value: 1 795 | objectReference: {fileID: 0} 796 | - target: {fileID: 4290243747654017780, guid: 3803ca82074e8354e84353e64b5d2f29, 797 | type: 3} 798 | propertyPath: isOpen 799 | value: 1 800 | objectReference: {fileID: 0} 801 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 802 | type: 3} 803 | propertyPath: m_LocalPosition.x 804 | value: 0.8014 805 | objectReference: {fileID: 0} 806 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 807 | type: 3} 808 | propertyPath: m_LocalPosition.y 809 | value: 1.689 810 | objectReference: {fileID: 0} 811 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 812 | type: 3} 813 | propertyPath: m_LocalPosition.z 814 | value: -0.043 815 | objectReference: {fileID: 0} 816 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 817 | type: 3} 818 | propertyPath: m_LocalRotation.x 819 | value: -0 820 | objectReference: {fileID: 0} 821 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 822 | type: 3} 823 | propertyPath: m_LocalRotation.y 824 | value: -0 825 | objectReference: {fileID: 0} 826 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 827 | type: 3} 828 | propertyPath: m_LocalRotation.z 829 | value: -1 830 | objectReference: {fileID: 0} 831 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 832 | type: 3} 833 | propertyPath: m_LocalRotation.w 834 | value: 0 835 | objectReference: {fileID: 0} 836 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 837 | type: 3} 838 | propertyPath: m_RootOrder 839 | value: 2 840 | objectReference: {fileID: 0} 841 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 842 | type: 3} 843 | propertyPath: m_LocalEulerAnglesHint.x 844 | value: 0 845 | objectReference: {fileID: 0} 846 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 847 | type: 3} 848 | propertyPath: m_LocalEulerAnglesHint.y 849 | value: 0 850 | objectReference: {fileID: 0} 851 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 852 | type: 3} 853 | propertyPath: m_LocalEulerAnglesHint.z 854 | value: -180 855 | objectReference: {fileID: 0} 856 | - target: {fileID: 8479694515570843939, guid: 3803ca82074e8354e84353e64b5d2f29, 857 | type: 3} 858 | propertyPath: m_Materials.Array.data[0] 859 | value: 860 | objectReference: {fileID: 1445805800} 861 | - target: {fileID: 7634469175278025645, guid: 3803ca82074e8354e84353e64b5d2f29, 862 | type: 3} 863 | propertyPath: m_IsActive 864 | value: 0 865 | objectReference: {fileID: 0} 866 | m_RemovedComponents: [] 867 | m_SourcePrefab: {fileID: 100100000, guid: 3803ca82074e8354e84353e64b5d2f29, type: 3} 868 | --- !u!1 &619982085 869 | GameObject: 870 | m_ObjectHideFlags: 0 871 | m_CorrespondingSourceObject: {fileID: 0} 872 | m_PrefabInstance: {fileID: 0} 873 | m_PrefabAsset: {fileID: 0} 874 | serializedVersion: 6 875 | m_Component: 876 | - component: {fileID: 619982088} 877 | - component: {fileID: 619982087} 878 | - component: {fileID: 619982086} 879 | m_Layer: 0 880 | m_Name: Main Camera 881 | m_TagString: MainCamera 882 | m_Icon: {fileID: 0} 883 | m_NavMeshLayer: 0 884 | m_StaticEditorFlags: 0 885 | m_IsActive: 1 886 | --- !u!81 &619982086 887 | AudioListener: 888 | m_ObjectHideFlags: 0 889 | m_CorrespondingSourceObject: {fileID: 0} 890 | m_PrefabInstance: {fileID: 0} 891 | m_PrefabAsset: {fileID: 0} 892 | m_GameObject: {fileID: 619982085} 893 | m_Enabled: 1 894 | --- !u!20 &619982087 895 | Camera: 896 | m_ObjectHideFlags: 0 897 | m_CorrespondingSourceObject: {fileID: 0} 898 | m_PrefabInstance: {fileID: 0} 899 | m_PrefabAsset: {fileID: 0} 900 | m_GameObject: {fileID: 619982085} 901 | m_Enabled: 1 902 | serializedVersion: 2 903 | m_ClearFlags: 1 904 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 905 | m_projectionMatrixMode: 1 906 | m_GateFitMode: 2 907 | m_FOVAxisMode: 0 908 | m_SensorSize: {x: 36, y: 24} 909 | m_LensShift: {x: 0, y: 0} 910 | m_FocalLength: 50 911 | m_NormalizedViewPortRect: 912 | serializedVersion: 2 913 | x: 0 914 | y: 0 915 | width: 1 916 | height: 1 917 | near clip plane: 0.3 918 | far clip plane: 1000 919 | field of view: 60 920 | orthographic: 0 921 | orthographic size: 5 922 | m_Depth: -1 923 | m_CullingMask: 924 | serializedVersion: 2 925 | m_Bits: 4294967295 926 | m_RenderingPath: -1 927 | m_TargetTexture: {fileID: 0} 928 | m_TargetDisplay: 0 929 | m_TargetEye: 3 930 | m_HDR: 1 931 | m_AllowMSAA: 1 932 | m_AllowDynamicResolution: 0 933 | m_ForceIntoRT: 0 934 | m_OcclusionCulling: 1 935 | m_StereoConvergence: 10 936 | m_StereoSeparation: 0.022 937 | --- !u!4 &619982088 938 | Transform: 939 | m_ObjectHideFlags: 0 940 | m_CorrespondingSourceObject: {fileID: 0} 941 | m_PrefabInstance: {fileID: 0} 942 | m_PrefabAsset: {fileID: 0} 943 | m_GameObject: {fileID: 619982085} 944 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 945 | m_LocalPosition: {x: 0.27, y: 1.45, z: -0.75} 946 | m_LocalScale: {x: 1, y: 1, z: 1} 947 | m_Children: [] 948 | m_Father: {fileID: 0} 949 | m_RootOrder: 0 950 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 951 | --- !u!1 &656708530 952 | GameObject: 953 | m_ObjectHideFlags: 0 954 | m_CorrespondingSourceObject: {fileID: 0} 955 | m_PrefabInstance: {fileID: 0} 956 | m_PrefabAsset: {fileID: 0} 957 | serializedVersion: 6 958 | m_Component: 959 | - component: {fileID: 656708534} 960 | - component: {fileID: 656708533} 961 | - component: {fileID: 656708532} 962 | - component: {fileID: 656708531} 963 | m_Layer: 0 964 | m_Name: Drop1 965 | m_TagString: Untagged 966 | m_Icon: {fileID: 0} 967 | m_NavMeshLayer: 0 968 | m_StaticEditorFlags: 0 969 | m_IsActive: 1 970 | --- !u!65 &656708531 971 | BoxCollider: 972 | m_ObjectHideFlags: 0 973 | m_CorrespondingSourceObject: {fileID: 0} 974 | m_PrefabInstance: {fileID: 0} 975 | m_PrefabAsset: {fileID: 0} 976 | m_GameObject: {fileID: 656708530} 977 | m_Material: {fileID: 0} 978 | m_IsTrigger: 0 979 | m_Enabled: 1 980 | serializedVersion: 2 981 | m_Size: {x: 1, y: 1, z: 1} 982 | m_Center: {x: 0, y: 0, z: 0} 983 | --- !u!23 &656708532 984 | MeshRenderer: 985 | m_ObjectHideFlags: 0 986 | m_CorrespondingSourceObject: {fileID: 0} 987 | m_PrefabInstance: {fileID: 0} 988 | m_PrefabAsset: {fileID: 0} 989 | m_GameObject: {fileID: 656708530} 990 | m_Enabled: 1 991 | m_CastShadows: 1 992 | m_ReceiveShadows: 1 993 | m_DynamicOccludee: 1 994 | m_MotionVectors: 1 995 | m_LightProbeUsage: 1 996 | m_ReflectionProbeUsage: 1 997 | m_RenderingLayerMask: 1 998 | m_RendererPriority: 0 999 | m_Materials: 1000 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 1001 | m_StaticBatchInfo: 1002 | firstSubMesh: 0 1003 | subMeshCount: 0 1004 | m_StaticBatchRoot: {fileID: 0} 1005 | m_ProbeAnchor: {fileID: 0} 1006 | m_LightProbeVolumeOverride: {fileID: 0} 1007 | m_ScaleInLightmap: 1 1008 | m_ReceiveGI: 1 1009 | m_PreserveUVs: 0 1010 | m_IgnoreNormalsForChartDetection: 0 1011 | m_ImportantGI: 0 1012 | m_StitchLightmapSeams: 1 1013 | m_SelectedEditorRenderState: 3 1014 | m_MinimumChartSize: 4 1015 | m_AutoUVMaxDistance: 0.5 1016 | m_AutoUVMaxAngle: 89 1017 | m_LightmapParameters: {fileID: 0} 1018 | m_SortingLayerID: 0 1019 | m_SortingLayer: 0 1020 | m_SortingOrder: 0 1021 | --- !u!33 &656708533 1022 | MeshFilter: 1023 | m_ObjectHideFlags: 0 1024 | m_CorrespondingSourceObject: {fileID: 0} 1025 | m_PrefabInstance: {fileID: 0} 1026 | m_PrefabAsset: {fileID: 0} 1027 | m_GameObject: {fileID: 656708530} 1028 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1029 | --- !u!4 &656708534 1030 | Transform: 1031 | m_ObjectHideFlags: 0 1032 | m_CorrespondingSourceObject: {fileID: 0} 1033 | m_PrefabInstance: {fileID: 0} 1034 | m_PrefabAsset: {fileID: 0} 1035 | m_GameObject: {fileID: 656708530} 1036 | m_LocalRotation: {x: -0, y: -0, z: 0.16173236, w: 0.9868347} 1037 | m_LocalPosition: {x: 0.804, y: 1.33, z: -0.027} 1038 | m_LocalScale: {x: 0.20000002, y: 0.01, z: 0.1} 1039 | m_Children: [] 1040 | m_Father: {fileID: 494957920} 1041 | m_RootOrder: 1 1042 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 18.615002} 1043 | --- !u!21 &717763441 1044 | Material: 1045 | serializedVersion: 6 1046 | m_ObjectHideFlags: 0 1047 | m_CorrespondingSourceObject: {fileID: 0} 1048 | m_PrefabInstance: {fileID: 0} 1049 | m_PrefabAsset: {fileID: 0} 1050 | m_Name: DefaultLiquid 1051 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 1052 | m_ShaderKeywords: 1053 | m_LightmapFlags: 4 1054 | m_EnableInstancingVariants: 0 1055 | m_DoubleSidedGI: 0 1056 | m_CustomRenderQueue: -1 1057 | stringTagMap: {} 1058 | disabledShaderPasses: [] 1059 | m_SavedProperties: 1060 | serializedVersion: 3 1061 | m_TexEnvs: 1062 | - _BumpMap: 1063 | m_Texture: {fileID: 0} 1064 | m_Scale: {x: 1, y: 1} 1065 | m_Offset: {x: 0, y: 0} 1066 | - _DetailAlbedoMap: 1067 | m_Texture: {fileID: 0} 1068 | m_Scale: {x: 1, y: 1} 1069 | m_Offset: {x: 0, y: 0} 1070 | - _DetailMask: 1071 | m_Texture: {fileID: 0} 1072 | m_Scale: {x: 1, y: 1} 1073 | m_Offset: {x: 0, y: 0} 1074 | - _DetailNormalMap: 1075 | m_Texture: {fileID: 0} 1076 | m_Scale: {x: 1, y: 1} 1077 | m_Offset: {x: 0, y: 0} 1078 | - _EmissionMap: 1079 | m_Texture: {fileID: 0} 1080 | m_Scale: {x: 1, y: 1} 1081 | m_Offset: {x: 0, y: 0} 1082 | - _MainTex: 1083 | m_Texture: {fileID: 0} 1084 | m_Scale: {x: 1, y: 1} 1085 | m_Offset: {x: 0, y: 0} 1086 | - _MetallicGlossMap: 1087 | m_Texture: {fileID: 0} 1088 | m_Scale: {x: 1, y: 1} 1089 | m_Offset: {x: 0, y: 0} 1090 | - _OcclusionMap: 1091 | m_Texture: {fileID: 0} 1092 | m_Scale: {x: 1, y: 1} 1093 | m_Offset: {x: 0, y: 0} 1094 | - _ParallaxMap: 1095 | m_Texture: {fileID: 0} 1096 | m_Scale: {x: 1, y: 1} 1097 | m_Offset: {x: 0, y: 0} 1098 | m_Floats: 1099 | - _BumpScale: 1 1100 | - _Cutoff: 0.5 1101 | - _DetailNormalMapScale: 1 1102 | - _DstBlend: 0 1103 | - _GlossMapScale: 1 1104 | - _Glossiness: 0.5 1105 | - _GlossyReflections: 1 1106 | - _Metallic: 0 1107 | - _Mode: 0 1108 | - _OcclusionStrength: 1 1109 | - _Parallax: 0.02 1110 | - _SmoothnessTextureChannel: 0 1111 | - _SpecularHighlights: 1 1112 | - _SrcBlend: 1 1113 | - _UVSec: 0 1114 | - _ZWrite: 1 1115 | m_Colors: 1116 | - _Color: {r: 0.09411765, g: 0.36862746, b: 0.13333334, a: 0.28627452} 1117 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 1118 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 1119 | - _SurfaceLevel: {r: -0.075310454, g: 1.7459357, b: -0.042999897, a: 0} 1120 | --- !u!1 &728861135 1121 | GameObject: 1122 | m_ObjectHideFlags: 0 1123 | m_CorrespondingSourceObject: {fileID: 0} 1124 | m_PrefabInstance: {fileID: 0} 1125 | m_PrefabAsset: {fileID: 0} 1126 | serializedVersion: 6 1127 | m_Component: 1128 | - component: {fileID: 728861136} 1129 | m_Layer: 0 1130 | m_Name: Scene 1131 | m_TagString: Untagged 1132 | m_Icon: {fileID: 0} 1133 | m_NavMeshLayer: 0 1134 | m_StaticEditorFlags: 0 1135 | m_IsActive: 1 1136 | --- !u!4 &728861136 1137 | Transform: 1138 | m_ObjectHideFlags: 0 1139 | m_CorrespondingSourceObject: {fileID: 0} 1140 | m_PrefabInstance: {fileID: 0} 1141 | m_PrefabAsset: {fileID: 0} 1142 | m_GameObject: {fileID: 728861135} 1143 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1144 | m_LocalPosition: {x: 0, y: 0, z: 0} 1145 | m_LocalScale: {x: 1, y: 1, z: 1} 1146 | m_Children: 1147 | - {fileID: 43539781} 1148 | - {fileID: 1042395928} 1149 | - {fileID: 426081796} 1150 | - {fileID: 322788919} 1151 | m_Father: {fileID: 0} 1152 | m_RootOrder: 1 1153 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1154 | --- !u!1 &838594972 1155 | GameObject: 1156 | m_ObjectHideFlags: 0 1157 | m_CorrespondingSourceObject: {fileID: 0} 1158 | m_PrefabInstance: {fileID: 0} 1159 | m_PrefabAsset: {fileID: 0} 1160 | serializedVersion: 6 1161 | m_Component: 1162 | - component: {fileID: 838594973} 1163 | - component: {fileID: 838594974} 1164 | m_Layer: 0 1165 | m_Name: RotationPivot 1166 | m_TagString: Untagged 1167 | m_Icon: {fileID: 0} 1168 | m_NavMeshLayer: 0 1169 | m_StaticEditorFlags: 0 1170 | m_IsActive: 1 1171 | --- !u!4 &838594973 1172 | Transform: 1173 | m_ObjectHideFlags: 0 1174 | m_CorrespondingSourceObject: {fileID: 0} 1175 | m_PrefabInstance: {fileID: 0} 1176 | m_PrefabAsset: {fileID: 0} 1177 | m_GameObject: {fileID: 838594972} 1178 | m_LocalRotation: {x: -0.56850547, y: -0.39137378, z: -0.6948091, w: 0.20215969} 1179 | m_LocalPosition: {x: -0.019473493, y: 1.3831714, z: -0.0142751075} 1180 | m_LocalScale: {x: 0.4871563, y: 0.48715657, z: 0.4871562} 1181 | m_Children: 1182 | - {fileID: 995673946635686112} 1183 | m_Father: {fileID: 1728454927} 1184 | m_RootOrder: 0 1185 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1186 | --- !u!95 &838594974 1187 | Animator: 1188 | serializedVersion: 3 1189 | m_ObjectHideFlags: 0 1190 | m_CorrespondingSourceObject: {fileID: 0} 1191 | m_PrefabInstance: {fileID: 0} 1192 | m_PrefabAsset: {fileID: 0} 1193 | m_GameObject: {fileID: 838594972} 1194 | m_Enabled: 1 1195 | m_Avatar: {fileID: 0} 1196 | m_Controller: {fileID: 9100000, guid: 9a585b7b9fbc85d4eacdd5b1d12486d5, type: 2} 1197 | m_CullingMode: 0 1198 | m_UpdateMode: 0 1199 | m_ApplyRootMotion: 0 1200 | m_LinearVelocityBlending: 0 1201 | m_WarningMessage: 1202 | m_HasTransformHierarchy: 1 1203 | m_AllowConstantClipSamplingOptimization: 1 1204 | m_KeepAnimatorControllerStateOnDisable: 0 1205 | --- !u!1 &886273609 1206 | GameObject: 1207 | m_ObjectHideFlags: 0 1208 | m_CorrespondingSourceObject: {fileID: 0} 1209 | m_PrefabInstance: {fileID: 0} 1210 | m_PrefabAsset: {fileID: 0} 1211 | serializedVersion: 6 1212 | m_Component: 1213 | - component: {fileID: 886273610} 1214 | m_Layer: 0 1215 | m_Name: Liquids 1216 | m_TagString: Untagged 1217 | m_Icon: {fileID: 0} 1218 | m_NavMeshLayer: 0 1219 | m_StaticEditorFlags: 0 1220 | m_IsActive: 1 1221 | --- !u!4 &886273610 1222 | Transform: 1223 | m_ObjectHideFlags: 0 1224 | m_CorrespondingSourceObject: {fileID: 0} 1225 | m_PrefabInstance: {fileID: 0} 1226 | m_PrefabAsset: {fileID: 0} 1227 | m_GameObject: {fileID: 886273609} 1228 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1229 | m_LocalPosition: {x: 0, y: 0, z: 0} 1230 | m_LocalScale: {x: 1, y: 1, z: 1} 1231 | m_Children: 1232 | - {fileID: 1728454927} 1233 | - {fileID: 494957920} 1234 | m_Father: {fileID: 0} 1235 | m_RootOrder: 2 1236 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1237 | --- !u!4 &1033486901 stripped 1238 | Transform: 1239 | m_CorrespondingSourceObject: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1240 | type: 3} 1241 | m_PrefabInstance: {fileID: 76327050} 1242 | m_PrefabAsset: {fileID: 0} 1243 | --- !u!1 &1042395926 1244 | GameObject: 1245 | m_ObjectHideFlags: 0 1246 | m_CorrespondingSourceObject: {fileID: 0} 1247 | m_PrefabInstance: {fileID: 0} 1248 | m_PrefabAsset: {fileID: 0} 1249 | serializedVersion: 6 1250 | m_Component: 1251 | - component: {fileID: 1042395928} 1252 | - component: {fileID: 1042395927} 1253 | m_Layer: 0 1254 | m_Name: Directional Light 1255 | m_TagString: Untagged 1256 | m_Icon: {fileID: 0} 1257 | m_NavMeshLayer: 0 1258 | m_StaticEditorFlags: 0 1259 | m_IsActive: 1 1260 | --- !u!108 &1042395927 1261 | Light: 1262 | m_ObjectHideFlags: 0 1263 | m_CorrespondingSourceObject: {fileID: 0} 1264 | m_PrefabInstance: {fileID: 0} 1265 | m_PrefabAsset: {fileID: 0} 1266 | m_GameObject: {fileID: 1042395926} 1267 | m_Enabled: 1 1268 | serializedVersion: 9 1269 | m_Type: 1 1270 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 1271 | m_Intensity: 1 1272 | m_Range: 10 1273 | m_SpotAngle: 30 1274 | m_InnerSpotAngle: 21.80208 1275 | m_CookieSize: 10 1276 | m_Shadows: 1277 | m_Type: 2 1278 | m_Resolution: -1 1279 | m_CustomResolution: -1 1280 | m_Strength: 1 1281 | m_Bias: 0.05 1282 | m_NormalBias: 0.4 1283 | m_NearPlane: 0.2 1284 | m_CullingMatrixOverride: 1285 | e00: 1 1286 | e01: 0 1287 | e02: 0 1288 | e03: 0 1289 | e10: 0 1290 | e11: 1 1291 | e12: 0 1292 | e13: 0 1293 | e20: 0 1294 | e21: 0 1295 | e22: 1 1296 | e23: 0 1297 | e30: 0 1298 | e31: 0 1299 | e32: 0 1300 | e33: 1 1301 | m_UseCullingMatrixOverride: 0 1302 | m_Cookie: {fileID: 0} 1303 | m_DrawHalo: 0 1304 | m_Flare: {fileID: 0} 1305 | m_RenderMode: 0 1306 | m_CullingMask: 1307 | serializedVersion: 2 1308 | m_Bits: 4294967295 1309 | m_RenderingLayerMask: 1 1310 | m_Lightmapping: 4 1311 | m_LightShadowCasterMode: 0 1312 | m_AreaSize: {x: 1, y: 1} 1313 | m_BounceIntensity: 1 1314 | m_ColorTemperature: 6570 1315 | m_UseColorTemperature: 0 1316 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 1317 | m_UseBoundingSphereOverride: 0 1318 | m_ShadowRadius: 0 1319 | m_ShadowAngle: 0 1320 | --- !u!4 &1042395928 1321 | Transform: 1322 | m_ObjectHideFlags: 0 1323 | m_CorrespondingSourceObject: {fileID: 0} 1324 | m_PrefabInstance: {fileID: 0} 1325 | m_PrefabAsset: {fileID: 0} 1326 | m_GameObject: {fileID: 1042395926} 1327 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 1328 | m_LocalPosition: {x: 0, y: 3, z: 0} 1329 | m_LocalScale: {x: 1, y: 1, z: 1} 1330 | m_Children: [] 1331 | m_Father: {fileID: 728861136} 1332 | m_RootOrder: 1 1333 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 1334 | --- !u!21 &1315272533 1335 | Material: 1336 | serializedVersion: 6 1337 | m_ObjectHideFlags: 0 1338 | m_CorrespondingSourceObject: {fileID: 0} 1339 | m_PrefabInstance: {fileID: 0} 1340 | m_PrefabAsset: {fileID: 0} 1341 | m_Name: DefaultLiquid 1342 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 1343 | m_ShaderKeywords: 1344 | m_LightmapFlags: 4 1345 | m_EnableInstancingVariants: 0 1346 | m_DoubleSidedGI: 0 1347 | m_CustomRenderQueue: -1 1348 | stringTagMap: {} 1349 | disabledShaderPasses: [] 1350 | m_SavedProperties: 1351 | serializedVersion: 3 1352 | m_TexEnvs: 1353 | - _BumpMap: 1354 | m_Texture: {fileID: 0} 1355 | m_Scale: {x: 1, y: 1} 1356 | m_Offset: {x: 0, y: 0} 1357 | - _DetailAlbedoMap: 1358 | m_Texture: {fileID: 0} 1359 | m_Scale: {x: 1, y: 1} 1360 | m_Offset: {x: 0, y: 0} 1361 | - _DetailMask: 1362 | m_Texture: {fileID: 0} 1363 | m_Scale: {x: 1, y: 1} 1364 | m_Offset: {x: 0, y: 0} 1365 | - _DetailNormalMap: 1366 | m_Texture: {fileID: 0} 1367 | m_Scale: {x: 1, y: 1} 1368 | m_Offset: {x: 0, y: 0} 1369 | - _EmissionMap: 1370 | m_Texture: {fileID: 0} 1371 | m_Scale: {x: 1, y: 1} 1372 | m_Offset: {x: 0, y: 0} 1373 | - _MainTex: 1374 | m_Texture: {fileID: 0} 1375 | m_Scale: {x: 1, y: 1} 1376 | m_Offset: {x: 0, y: 0} 1377 | - _MetallicGlossMap: 1378 | m_Texture: {fileID: 0} 1379 | m_Scale: {x: 1, y: 1} 1380 | m_Offset: {x: 0, y: 0} 1381 | - _OcclusionMap: 1382 | m_Texture: {fileID: 0} 1383 | m_Scale: {x: 1, y: 1} 1384 | m_Offset: {x: 0, y: 0} 1385 | - _ParallaxMap: 1386 | m_Texture: {fileID: 0} 1387 | m_Scale: {x: 1, y: 1} 1388 | m_Offset: {x: 0, y: 0} 1389 | m_Floats: 1390 | - _BumpScale: 1 1391 | - _Cutoff: 0.5 1392 | - _DetailNormalMapScale: 1 1393 | - _DstBlend: 0 1394 | - _GlossMapScale: 1 1395 | - _Glossiness: 0.5 1396 | - _GlossyReflections: 1 1397 | - _Metallic: 0 1398 | - _Mode: 0 1399 | - _OcclusionStrength: 1 1400 | - _Parallax: 0.02 1401 | - _SmoothnessTextureChannel: 0 1402 | - _SpecularHighlights: 1 1403 | - _SrcBlend: 1 1404 | - _UVSec: 0 1405 | - _ZWrite: 1 1406 | m_Colors: 1407 | - _Color: {r: 0.09411765, g: 0.36862746, b: 0.13333334, a: 0.28627452} 1408 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 1409 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 1410 | - _SurfaceLevel: {r: 0.0001052171, g: 1.4068483, b: -0.0054753236, a: 0} 1411 | --- !u!1001 &1316520427 1412 | PrefabInstance: 1413 | m_ObjectHideFlags: 0 1414 | serializedVersion: 2 1415 | m_Modification: 1416 | m_TransformParent: {fileID: 494957920} 1417 | m_Modifications: 1418 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 1419 | type: 3} 1420 | propertyPath: m_Name 1421 | value: Glass (1) 1422 | objectReference: {fileID: 0} 1423 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 1424 | type: 3} 1425 | propertyPath: m_IsActive 1426 | value: 1 1427 | objectReference: {fileID: 0} 1428 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1429 | type: 3} 1430 | propertyPath: m_LocalPosition.x 1431 | value: 0.803 1432 | objectReference: {fileID: 0} 1433 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1434 | type: 3} 1435 | propertyPath: m_LocalPosition.y 1436 | value: 1.071 1437 | objectReference: {fileID: 0} 1438 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1439 | type: 3} 1440 | propertyPath: m_LocalPosition.z 1441 | value: -0.047 1442 | objectReference: {fileID: 0} 1443 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1444 | type: 3} 1445 | propertyPath: m_LocalRotation.x 1446 | value: -0 1447 | objectReference: {fileID: 0} 1448 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1449 | type: 3} 1450 | propertyPath: m_LocalRotation.y 1451 | value: -0 1452 | objectReference: {fileID: 0} 1453 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1454 | type: 3} 1455 | propertyPath: m_LocalRotation.z 1456 | value: -0 1457 | objectReference: {fileID: 0} 1458 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1459 | type: 3} 1460 | propertyPath: m_LocalRotation.w 1461 | value: 1 1462 | objectReference: {fileID: 0} 1463 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1464 | type: 3} 1465 | propertyPath: m_RootOrder 1466 | value: 3 1467 | objectReference: {fileID: 0} 1468 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1469 | type: 3} 1470 | propertyPath: m_LocalEulerAnglesHint.x 1471 | value: 0 1472 | objectReference: {fileID: 0} 1473 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1474 | type: 3} 1475 | propertyPath: m_LocalEulerAnglesHint.y 1476 | value: 0 1477 | objectReference: {fileID: 0} 1478 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1479 | type: 3} 1480 | propertyPath: m_LocalEulerAnglesHint.z 1481 | value: 0 1482 | objectReference: {fileID: 0} 1483 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1484 | type: 3} 1485 | propertyPath: m_LocalScale.x 1486 | value: 0.44647995 1487 | objectReference: {fileID: 0} 1488 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1489 | type: 3} 1490 | propertyPath: m_LocalScale.y 1491 | value: 0.44647995 1492 | objectReference: {fileID: 0} 1493 | - target: {fileID: 765355747951042094, guid: dcd73b51eabfdb64d8180fae92d8e674, 1494 | type: 3} 1495 | propertyPath: m_Materials.Array.data[0] 1496 | value: 1497 | objectReference: {fileID: 1457806986} 1498 | m_RemovedComponents: [] 1499 | m_SourcePrefab: {fileID: 100100000, guid: dcd73b51eabfdb64d8180fae92d8e674, type: 3} 1500 | --- !u!21 &1445805800 1501 | Material: 1502 | serializedVersion: 6 1503 | m_ObjectHideFlags: 0 1504 | m_CorrespondingSourceObject: {fileID: 0} 1505 | m_PrefabInstance: {fileID: 0} 1506 | m_PrefabAsset: {fileID: 0} 1507 | m_Name: DefaultLiquid 1508 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 1509 | m_ShaderKeywords: 1510 | m_LightmapFlags: 4 1511 | m_EnableInstancingVariants: 0 1512 | m_DoubleSidedGI: 0 1513 | m_CustomRenderQueue: -1 1514 | stringTagMap: {} 1515 | disabledShaderPasses: [] 1516 | m_SavedProperties: 1517 | serializedVersion: 3 1518 | m_TexEnvs: 1519 | - _BumpMap: 1520 | m_Texture: {fileID: 0} 1521 | m_Scale: {x: 1, y: 1} 1522 | m_Offset: {x: 0, y: 0} 1523 | - _DetailAlbedoMap: 1524 | m_Texture: {fileID: 0} 1525 | m_Scale: {x: 1, y: 1} 1526 | m_Offset: {x: 0, y: 0} 1527 | - _DetailMask: 1528 | m_Texture: {fileID: 0} 1529 | m_Scale: {x: 1, y: 1} 1530 | m_Offset: {x: 0, y: 0} 1531 | - _DetailNormalMap: 1532 | m_Texture: {fileID: 0} 1533 | m_Scale: {x: 1, y: 1} 1534 | m_Offset: {x: 0, y: 0} 1535 | - _EmissionMap: 1536 | m_Texture: {fileID: 0} 1537 | m_Scale: {x: 1, y: 1} 1538 | m_Offset: {x: 0, y: 0} 1539 | - _MainTex: 1540 | m_Texture: {fileID: 0} 1541 | m_Scale: {x: 1, y: 1} 1542 | m_Offset: {x: 0, y: 0} 1543 | - _MetallicGlossMap: 1544 | m_Texture: {fileID: 0} 1545 | m_Scale: {x: 1, y: 1} 1546 | m_Offset: {x: 0, y: 0} 1547 | - _OcclusionMap: 1548 | m_Texture: {fileID: 0} 1549 | m_Scale: {x: 1, y: 1} 1550 | m_Offset: {x: 0, y: 0} 1551 | - _ParallaxMap: 1552 | m_Texture: {fileID: 0} 1553 | m_Scale: {x: 1, y: 1} 1554 | m_Offset: {x: 0, y: 0} 1555 | m_Floats: 1556 | - _BumpScale: 1 1557 | - _Cutoff: 0.5 1558 | - _DetailNormalMapScale: 1 1559 | - _DstBlend: 0 1560 | - _GlossMapScale: 1 1561 | - _Glossiness: 0.5 1562 | - _GlossyReflections: 1 1563 | - _Metallic: 0 1564 | - _Mode: 0 1565 | - _OcclusionStrength: 1 1566 | - _Parallax: 0.02 1567 | - _SmoothnessTextureChannel: 0 1568 | - _SpecularHighlights: 1 1569 | - _SrcBlend: 1 1570 | - _UVSec: 0 1571 | - _ZWrite: 1 1572 | m_Colors: 1573 | - _Color: {r: 0.09411765, g: 0.36862746, b: 0.13333334, a: 0.28627452} 1574 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 1575 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 1576 | - _SurfaceLevel: {r: 0.8010895, g: 1.6103233, b: -0.042999897, a: 0} 1577 | --- !u!21 &1457806986 1578 | Material: 1579 | serializedVersion: 6 1580 | m_ObjectHideFlags: 0 1581 | m_CorrespondingSourceObject: {fileID: 0} 1582 | m_PrefabInstance: {fileID: 0} 1583 | m_PrefabAsset: {fileID: 0} 1584 | m_Name: DefaultLiquid 1585 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 1586 | m_ShaderKeywords: 1587 | m_LightmapFlags: 4 1588 | m_EnableInstancingVariants: 0 1589 | m_DoubleSidedGI: 0 1590 | m_CustomRenderQueue: -1 1591 | stringTagMap: {} 1592 | disabledShaderPasses: [] 1593 | m_SavedProperties: 1594 | serializedVersion: 3 1595 | m_TexEnvs: 1596 | - _BumpMap: 1597 | m_Texture: {fileID: 0} 1598 | m_Scale: {x: 1, y: 1} 1599 | m_Offset: {x: 0, y: 0} 1600 | - _DetailAlbedoMap: 1601 | m_Texture: {fileID: 0} 1602 | m_Scale: {x: 1, y: 1} 1603 | m_Offset: {x: 0, y: 0} 1604 | - _DetailMask: 1605 | m_Texture: {fileID: 0} 1606 | m_Scale: {x: 1, y: 1} 1607 | m_Offset: {x: 0, y: 0} 1608 | - _DetailNormalMap: 1609 | m_Texture: {fileID: 0} 1610 | m_Scale: {x: 1, y: 1} 1611 | m_Offset: {x: 0, y: 0} 1612 | - _EmissionMap: 1613 | m_Texture: {fileID: 0} 1614 | m_Scale: {x: 1, y: 1} 1615 | m_Offset: {x: 0, y: 0} 1616 | - _MainTex: 1617 | m_Texture: {fileID: 0} 1618 | m_Scale: {x: 1, y: 1} 1619 | m_Offset: {x: 0, y: 0} 1620 | - _MetallicGlossMap: 1621 | m_Texture: {fileID: 0} 1622 | m_Scale: {x: 1, y: 1} 1623 | m_Offset: {x: 0, y: 0} 1624 | - _OcclusionMap: 1625 | m_Texture: {fileID: 0} 1626 | m_Scale: {x: 1, y: 1} 1627 | m_Offset: {x: 0, y: 0} 1628 | - _ParallaxMap: 1629 | m_Texture: {fileID: 0} 1630 | m_Scale: {x: 1, y: 1} 1631 | m_Offset: {x: 0, y: 0} 1632 | m_Floats: 1633 | - _BumpScale: 1 1634 | - _Cutoff: 0.5 1635 | - _DetailNormalMapScale: 1 1636 | - _DstBlend: 0 1637 | - _GlossMapScale: 1 1638 | - _Glossiness: 0.5 1639 | - _GlossyReflections: 1 1640 | - _Metallic: 0 1641 | - _Mode: 0 1642 | - _OcclusionStrength: 1 1643 | - _Parallax: 0.02 1644 | - _SmoothnessTextureChannel: 0 1645 | - _SpecularHighlights: 1 1646 | - _SrcBlend: 1 1647 | - _UVSec: 0 1648 | - _ZWrite: 1 1649 | m_Colors: 1650 | - _Color: {r: 0.09411764, g: 0.36862746, b: 0.13224405, a: 0.4117647} 1651 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 1652 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 1653 | - _SurfaceLevel: {r: 0.80300134, g: 1.0818012, b: -0.047000267, a: 0} 1654 | --- !u!1 &1728454926 1655 | GameObject: 1656 | m_ObjectHideFlags: 0 1657 | m_CorrespondingSourceObject: {fileID: 0} 1658 | m_PrefabInstance: {fileID: 0} 1659 | m_PrefabAsset: {fileID: 0} 1660 | serializedVersion: 6 1661 | m_Component: 1662 | - component: {fileID: 1728454927} 1663 | m_Layer: 0 1664 | m_Name: Basic 1665 | m_TagString: Untagged 1666 | m_Icon: {fileID: 0} 1667 | m_NavMeshLayer: 0 1668 | m_StaticEditorFlags: 0 1669 | m_IsActive: 1 1670 | --- !u!4 &1728454927 1671 | Transform: 1672 | m_ObjectHideFlags: 0 1673 | m_CorrespondingSourceObject: {fileID: 0} 1674 | m_PrefabInstance: {fileID: 0} 1675 | m_PrefabAsset: {fileID: 0} 1676 | m_GameObject: {fileID: 1728454926} 1677 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1678 | m_LocalPosition: {x: 0, y: 0, z: 0} 1679 | m_LocalScale: {x: 1, y: 1, z: 1} 1680 | m_Children: 1681 | - {fileID: 838594973} 1682 | - {fileID: 5006512736633806536} 1683 | - {fileID: 1919697797} 1684 | m_Father: {fileID: 886273610} 1685 | m_RootOrder: 0 1686 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1687 | --- !u!1001 &1919697796 1688 | PrefabInstance: 1689 | m_ObjectHideFlags: 0 1690 | serializedVersion: 2 1691 | m_Modification: 1692 | m_TransformParent: {fileID: 1728454927} 1693 | m_Modifications: 1694 | - target: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 1695 | type: 3} 1696 | propertyPath: m_Name 1697 | value: EndlessBottle 1698 | objectReference: {fileID: 0} 1699 | - target: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 1700 | type: 3} 1701 | propertyPath: m_IsActive 1702 | value: 1 1703 | objectReference: {fileID: 0} 1704 | - target: {fileID: 4290243747654017780, guid: 3803ca82074e8354e84353e64b5d2f29, 1705 | type: 3} 1706 | propertyPath: fillAmountPercent 1707 | value: 1 1708 | objectReference: {fileID: 0} 1709 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1710 | type: 3} 1711 | propertyPath: m_LocalPosition.x 1712 | value: -0.075 1713 | objectReference: {fileID: 0} 1714 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1715 | type: 3} 1716 | propertyPath: m_LocalPosition.y 1717 | value: 1.7615 1718 | objectReference: {fileID: 0} 1719 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1720 | type: 3} 1721 | propertyPath: m_LocalPosition.z 1722 | value: -0.043 1723 | objectReference: {fileID: 0} 1724 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1725 | type: 3} 1726 | propertyPath: m_LocalRotation.x 1727 | value: -0 1728 | objectReference: {fileID: 0} 1729 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1730 | type: 3} 1731 | propertyPath: m_LocalRotation.y 1732 | value: -0 1733 | objectReference: {fileID: 0} 1734 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1735 | type: 3} 1736 | propertyPath: m_LocalRotation.z 1737 | value: -1 1738 | objectReference: {fileID: 0} 1739 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1740 | type: 3} 1741 | propertyPath: m_LocalRotation.w 1742 | value: 0 1743 | objectReference: {fileID: 0} 1744 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1745 | type: 3} 1746 | propertyPath: m_RootOrder 1747 | value: 2 1748 | objectReference: {fileID: 0} 1749 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1750 | type: 3} 1751 | propertyPath: m_LocalEulerAnglesHint.x 1752 | value: 0 1753 | objectReference: {fileID: 0} 1754 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1755 | type: 3} 1756 | propertyPath: m_LocalEulerAnglesHint.y 1757 | value: 0 1758 | objectReference: {fileID: 0} 1759 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1760 | type: 3} 1761 | propertyPath: m_LocalEulerAnglesHint.z 1762 | value: -180 1763 | objectReference: {fileID: 0} 1764 | - target: {fileID: 8479694515570843939, guid: 3803ca82074e8354e84353e64b5d2f29, 1765 | type: 3} 1766 | propertyPath: m_Materials.Array.data[0] 1767 | value: 1768 | objectReference: {fileID: 717763441} 1769 | - target: {fileID: 7634469175278025645, guid: 3803ca82074e8354e84353e64b5d2f29, 1770 | type: 3} 1771 | propertyPath: m_IsActive 1772 | value: 0 1773 | objectReference: {fileID: 0} 1774 | m_RemovedComponents: [] 1775 | m_SourcePrefab: {fileID: 100100000, guid: 3803ca82074e8354e84353e64b5d2f29, type: 3} 1776 | --- !u!4 &1919697797 stripped 1777 | Transform: 1778 | m_CorrespondingSourceObject: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1779 | type: 3} 1780 | m_PrefabInstance: {fileID: 1919697796} 1781 | m_PrefabAsset: {fileID: 0} 1782 | --- !u!1 &1919697798 stripped 1783 | GameObject: 1784 | m_CorrespondingSourceObject: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 1785 | type: 3} 1786 | m_PrefabInstance: {fileID: 1919697796} 1787 | m_PrefabAsset: {fileID: 0} 1788 | --- !u!114 &1919697799 1789 | MonoBehaviour: 1790 | m_ObjectHideFlags: 0 1791 | m_CorrespondingSourceObject: {fileID: 0} 1792 | m_PrefabInstance: {fileID: 0} 1793 | m_PrefabAsset: {fileID: 0} 1794 | m_GameObject: {fileID: 1919697798} 1795 | m_Enabled: 1 1796 | m_EditorHideFlags: 0 1797 | m_Script: {fileID: 11500000, guid: d6f65fb23ad160c459d2598442688217, type: 3} 1798 | m_Name: 1799 | m_EditorClassIdentifier: 1800 | --- !u!1 &2094895849 stripped 1801 | GameObject: 1802 | m_CorrespondingSourceObject: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 1803 | type: 3} 1804 | m_PrefabInstance: {fileID: 537452409} 1805 | m_PrefabAsset: {fileID: 0} 1806 | --- !u!4 &2094895850 stripped 1807 | Transform: 1808 | m_CorrespondingSourceObject: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1809 | type: 3} 1810 | m_PrefabInstance: {fileID: 537452409} 1811 | m_PrefabAsset: {fileID: 0} 1812 | --- !u!114 &2094895851 1813 | MonoBehaviour: 1814 | m_ObjectHideFlags: 0 1815 | m_CorrespondingSourceObject: {fileID: 0} 1816 | m_PrefabInstance: {fileID: 0} 1817 | m_PrefabAsset: {fileID: 0} 1818 | m_GameObject: {fileID: 2094895849} 1819 | m_Enabled: 1 1820 | m_EditorHideFlags: 0 1821 | m_Script: {fileID: 11500000, guid: d6f65fb23ad160c459d2598442688217, type: 3} 1822 | m_Name: 1823 | m_EditorClassIdentifier: 1824 | --- !u!4 &995673946635686112 stripped 1825 | Transform: 1826 | m_CorrespondingSourceObject: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1827 | type: 3} 1828 | m_PrefabInstance: {fileID: 1785558050495742648} 1829 | m_PrefabAsset: {fileID: 0} 1830 | --- !u!1001 &1785558050495742648 1831 | PrefabInstance: 1832 | m_ObjectHideFlags: 0 1833 | serializedVersion: 2 1834 | m_Modification: 1835 | m_TransformParent: {fileID: 838594973} 1836 | m_Modifications: 1837 | - target: {fileID: 2543850318960091211, guid: 3803ca82074e8354e84353e64b5d2f29, 1838 | type: 3} 1839 | propertyPath: m_Name 1840 | value: Bottle 1841 | objectReference: {fileID: 0} 1842 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1843 | type: 3} 1844 | propertyPath: m_LocalPosition.x 1845 | value: 0 1846 | objectReference: {fileID: 0} 1847 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1848 | type: 3} 1849 | propertyPath: m_LocalPosition.y 1850 | value: -0.1818999 1851 | objectReference: {fileID: 0} 1852 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1853 | type: 3} 1854 | propertyPath: m_LocalPosition.z 1855 | value: 0 1856 | objectReference: {fileID: 0} 1857 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1858 | type: 3} 1859 | propertyPath: m_LocalRotation.x 1860 | value: -0 1861 | objectReference: {fileID: 0} 1862 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1863 | type: 3} 1864 | propertyPath: m_LocalRotation.y 1865 | value: -0 1866 | objectReference: {fileID: 0} 1867 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1868 | type: 3} 1869 | propertyPath: m_LocalRotation.z 1870 | value: -0 1871 | objectReference: {fileID: 0} 1872 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1873 | type: 3} 1874 | propertyPath: m_LocalRotation.w 1875 | value: 1 1876 | objectReference: {fileID: 0} 1877 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1878 | type: 3} 1879 | propertyPath: m_RootOrder 1880 | value: 0 1881 | objectReference: {fileID: 0} 1882 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1883 | type: 3} 1884 | propertyPath: m_LocalEulerAnglesHint.x 1885 | value: -50.689003 1886 | objectReference: {fileID: 0} 1887 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1888 | type: 3} 1889 | propertyPath: m_LocalEulerAnglesHint.y 1890 | value: 85.72201 1891 | objectReference: {fileID: 0} 1892 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1893 | type: 3} 1894 | propertyPath: m_LocalEulerAnglesHint.z 1895 | value: -195.01 1896 | objectReference: {fileID: 0} 1897 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1898 | type: 3} 1899 | propertyPath: m_LocalScale.x 1900 | value: 1 1901 | objectReference: {fileID: 0} 1902 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1903 | type: 3} 1904 | propertyPath: m_LocalScale.y 1905 | value: 1 1906 | objectReference: {fileID: 0} 1907 | - target: {fileID: 1519625932346200664, guid: 3803ca82074e8354e84353e64b5d2f29, 1908 | type: 3} 1909 | propertyPath: m_LocalScale.z 1910 | value: 1 1911 | objectReference: {fileID: 0} 1912 | - target: {fileID: 8479694515570843939, guid: 3803ca82074e8354e84353e64b5d2f29, 1913 | type: 3} 1914 | propertyPath: m_Materials.Array.data[0] 1915 | value: 1916 | objectReference: {fileID: 1315272533} 1917 | m_RemovedComponents: [] 1918 | m_SourcePrefab: {fileID: 100100000, guid: 3803ca82074e8354e84353e64b5d2f29, type: 3} 1919 | --- !u!1001 &3807751019994083140 1920 | PrefabInstance: 1921 | m_ObjectHideFlags: 0 1922 | serializedVersion: 2 1923 | m_Modification: 1924 | m_TransformParent: {fileID: 1728454927} 1925 | m_Modifications: 1926 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 1927 | type: 3} 1928 | propertyPath: m_Name 1929 | value: Glass 1930 | objectReference: {fileID: 0} 1931 | - target: {fileID: 5185389706047701919, guid: dcd73b51eabfdb64d8180fae92d8e674, 1932 | type: 3} 1933 | propertyPath: m_IsActive 1934 | value: 1 1935 | objectReference: {fileID: 0} 1936 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1937 | type: 3} 1938 | propertyPath: m_LocalPosition.x 1939 | value: 0.1221 1940 | objectReference: {fileID: 0} 1941 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1942 | type: 3} 1943 | propertyPath: m_LocalPosition.y 1944 | value: 1.174 1945 | objectReference: {fileID: 0} 1946 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1947 | type: 3} 1948 | propertyPath: m_LocalPosition.z 1949 | value: 0 1950 | objectReference: {fileID: 0} 1951 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1952 | type: 3} 1953 | propertyPath: m_LocalRotation.x 1954 | value: 0.22679827 1955 | objectReference: {fileID: 0} 1956 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1957 | type: 3} 1958 | propertyPath: m_LocalRotation.y 1959 | value: -0.03933211 1960 | objectReference: {fileID: 0} 1961 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1962 | type: 3} 1963 | propertyPath: m_LocalRotation.z 1964 | value: 0.15706015 1965 | objectReference: {fileID: 0} 1966 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1967 | type: 3} 1968 | propertyPath: m_LocalRotation.w 1969 | value: 0.9603893 1970 | objectReference: {fileID: 0} 1971 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1972 | type: 3} 1973 | propertyPath: m_RootOrder 1974 | value: 1 1975 | objectReference: {fileID: 0} 1976 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1977 | type: 3} 1978 | propertyPath: m_LocalEulerAnglesHint.x 1979 | value: 26.614 1980 | objectReference: {fileID: 0} 1981 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1982 | type: 3} 1983 | propertyPath: m_LocalEulerAnglesHint.y 1984 | value: 719.724 1985 | objectReference: {fileID: 0} 1986 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1987 | type: 3} 1988 | propertyPath: m_LocalEulerAnglesHint.z 1989 | value: 18.51 1990 | objectReference: {fileID: 0} 1991 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1992 | type: 3} 1993 | propertyPath: m_LocalScale.x 1994 | value: 0.44647622 1995 | objectReference: {fileID: 0} 1996 | - target: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 1997 | type: 3} 1998 | propertyPath: m_LocalScale.z 1999 | value: 0.4464761 2000 | objectReference: {fileID: 0} 2001 | - target: {fileID: 765355747951042094, guid: dcd73b51eabfdb64d8180fae92d8e674, 2002 | type: 3} 2003 | propertyPath: m_Materials.Array.data[0] 2004 | value: 2005 | objectReference: {fileID: 444572669} 2006 | m_RemovedComponents: [] 2007 | m_SourcePrefab: {fileID: 100100000, guid: dcd73b51eabfdb64d8180fae92d8e674, type: 3} 2008 | --- !u!4 &5006512736633806536 stripped 2009 | Transform: 2010 | m_CorrespondingSourceObject: {fileID: 8191323892244427148, guid: dcd73b51eabfdb64d8180fae92d8e674, 2011 | type: 3} 2012 | m_PrefabInstance: {fileID: 3807751019994083140} 2013 | m_PrefabAsset: {fileID: 0} 2014 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a10e965866a61e448ed4b9de6d8a981 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/Assets/Unity Simple Liquid/Example/Scenes/Example Scene/LightingData.asset -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1154d3ed37ef2b34ab5653fa091f3d84 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 112000000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/Assets/Unity Simple Liquid/Example/Scenes/Example Scene/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Example/Scenes/Example Scene/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c7919d5e170190429fb979a05f64eda 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 100 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1ee9021609e0b44fadb1b1d45f17dac 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Materials/DefaultLiquid.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: DefaultLiquid 11 | m_Shader: {fileID: 4800000, guid: fe64efaaefeb7d84197364314f3514b9, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.15410818, g: 0.5943396, b: 0.12615702, a: 0.4} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | - _GravityDirection: {r: 0, g: -1, b: 0, a: 0} 79 | - _SurfaceLevel: {r: 0, g: 1.15, b: 0, a: 0} 80 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Materials/DefaultLiquid.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8dec526bbd84d684da6f40f79c3ab1bd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Materials/Splash.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Splash 11 | m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _ALPHABLEND_ON 13 | m_LightmapFlags: 0 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: 3000 17 | stringTagMap: 18 | RenderType: Transparent 19 | disabledShaderPasses: 20 | - ALWAYS 21 | m_SavedProperties: 22 | serializedVersion: 3 23 | m_TexEnvs: 24 | - _BumpMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailAlbedoMap: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailMask: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailNormalMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _EmissionMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MainTex: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _MetallicGlossMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _OcclusionMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _ParallaxMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | m_Floats: 61 | - _BlendOp: 0 62 | - _BumpScale: 1 63 | - _CameraFadingEnabled: 0 64 | - _CameraFarFadeDistance: 2 65 | - _CameraNearFadeDistance: 1 66 | - _ColorMode: 0 67 | - _Cull: 2 68 | - _Cutoff: 0.5 69 | - _DetailNormalMapScale: 1 70 | - _DistortionBlend: 0.5 71 | - _DistortionEnabled: 0 72 | - _DistortionStrength: 1 73 | - _DistortionStrengthScaled: 0 74 | - _DstBlend: 10 75 | - _EmissionEnabled: 0 76 | - _FlipbookMode: 0 77 | - _GlossMapScale: 1 78 | - _Glossiness: 0.5 79 | - _GlossyReflections: 1 80 | - _LightingEnabled: 0 81 | - _Metallic: 0 82 | - _Mode: 2 83 | - _OcclusionStrength: 1 84 | - _Parallax: 0.02 85 | - _SmoothnessTextureChannel: 0 86 | - _SoftParticlesEnabled: 0 87 | - _SoftParticlesFarFadeDistance: 1 88 | - _SoftParticlesNearFadeDistance: 0 89 | - _SpecularHighlights: 1 90 | - _SrcBlend: 5 91 | - _UVSec: 0 92 | - _ZWrite: 0 93 | m_Colors: 94 | - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} 95 | - _Color: {r: 1, g: 1, b: 1, a: 1} 96 | - _ColorAddSubDiff: {r: -1, g: 1, b: 0, a: 0} 97 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 98 | - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} 99 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Materials/Splash.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25569ddcd95d04c36aecd51373951f99 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49cc1da08ff0aee42ad45853839a3dd2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/EndlessContainer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace UnitySimpleLiquid 6 | { 7 | public class EndlessContainer : MonoBehaviour 8 | { 9 | private LiquidContainer liquidContainer; 10 | 11 | private void Awake() 12 | { 13 | liquidContainer = GetComponent(); 14 | } 15 | 16 | // Update is called once per frame 17 | void Update() 18 | { 19 | liquidContainer.FillAmountPercent = 1f; 20 | } 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/EndlessContainer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6f65fb23ad160c459d2598442688217 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/LiquidContainer.cs: -------------------------------------------------------------------------------- 1 | #pragma warning disable 0649 2 | 3 | using UnityEngine; 4 | 5 | namespace UnitySimpleLiquid 6 | { 7 | /// 8 | /// Container with defined volume and liquid amount 9 | /// Also controls liquid rendering (color, surface level, wobble effect) 10 | /// 11 | [ExecuteInEditMode] 12 | public class LiquidContainer : MonoBehaviour 13 | { 14 | public MeshRenderer liquidRender; 15 | private MeshFilter meshFilter; 16 | 17 | [SerializeField] 18 | [Tooltip("Material prefab (will replace material on mesh renderer)")] 19 | private Material liquidMaterial; 20 | 21 | [Header("Container settings")] 22 | [SerializeField] 23 | private GameObject cap; 24 | [SerializeField] 25 | [Tooltip("Is container open and can split?")] 26 | private bool isOpen = true; 27 | 28 | [Header("Liquid settings")] 29 | [Tooltip("Smaller inertness - less still liquid")] 30 | public float inertness = 50; 31 | 32 | [SerializeField] 33 | private Color liquidColor = Color.green; 34 | 35 | [Range(0f, 1f)] 36 | [SerializeField] 37 | private float fillAmountPercent = 0.5f; 38 | 39 | [Header("Container Volume")] 40 | [SerializeField] 41 | private bool customVolume; 42 | private float volume = 1f; 43 | 44 | private SplitController splitController; 45 | public SplitController GetSplitController 46 | { 47 | get { return splitController; } 48 | } 49 | 50 | private void Start() 51 | { 52 | splitController = GetComponent(); 53 | } 54 | 55 | #region Liquid Amount 56 | // After this values shader might become unstable 57 | private const float minFillAmount = 0.1f; 58 | private const float maxFillAmount = 0.99f; 59 | 60 | public bool IsOpen 61 | { 62 | get 63 | { 64 | return isOpen; 65 | } 66 | set 67 | { 68 | isOpen = value; 69 | if (cap) 70 | cap.SetActive(!value); 71 | } 72 | } 73 | 74 | /// 75 | /// Amount of liquid in percents [0,1] 76 | /// 77 | public float FillAmountPercent 78 | { 79 | get 80 | { 81 | return fillAmountPercent; 82 | } 83 | set 84 | { 85 | if (value > 0f) 86 | fillAmountPercent = value; 87 | else 88 | fillAmountPercent = 0f; 89 | UpdateSurfacePos(); 90 | } 91 | } 92 | 93 | /// 94 | /// Amount of liquid in liters 95 | /// 96 | public float FillAmount 97 | { 98 | get 99 | { 100 | return fillAmountPercent * volume; 101 | } 102 | set 103 | { 104 | var newValuePercent = value / volume; 105 | fillAmountPercent = Mathf.Clamp01(newValuePercent); 106 | } 107 | } 108 | 109 | /// 110 | /// Container volume in liters 111 | /// 112 | public float Volume 113 | { 114 | get 115 | { 116 | return volume; 117 | } 118 | set 119 | { 120 | volume = value; 121 | } 122 | } 123 | 124 | /// 125 | /// Volume is fixed and not calculated automatically 126 | /// 127 | public bool CustomVolume 128 | { 129 | get 130 | { 131 | return customVolume; 132 | } 133 | } 134 | 135 | /// 136 | /// Need to map fill amount for more stable results 137 | /// 138 | private float MappedFillAmount 139 | { 140 | get 141 | { 142 | return FillAmountPercent * (maxFillAmount - minFillAmount) + minFillAmount; 143 | } 144 | } 145 | 146 | /// 147 | /// Calculate container volume based on mesh bounds and transform size 148 | /// 149 | /// Container volume in liters 150 | public float CalculateVolume() 151 | { 152 | var mesh = LiquidMesh; 153 | if (!mesh) 154 | return 0f; 155 | 156 | var boundsSize = LiquidMesh.bounds.size; 157 | var scale = transform.lossyScale; 158 | return boundsSize.x * boundsSize.y * boundsSize.z * 159 | scale.x * scale.y * scale.z * 1000; 160 | } 161 | #endregion 162 | 163 | #region Liquid Surface 164 | private Vector3 surfaceLevel; 165 | /// 166 | /// Surface level of liquid in world-space coordinates 167 | /// 168 | public Vector3 SurfaceLevel 169 | { 170 | get 171 | { 172 | return surfaceLevel; 173 | } 174 | set 175 | { 176 | surfaceLevel = value; 177 | if (MaterialInstance) 178 | MaterialInstance.SetVector(SurfaceLevelID, value); 179 | } 180 | } 181 | 182 | private void UpdateSurfacePos() 183 | { 184 | if (fillAmountPercent > 0f) 185 | { 186 | SurfaceLevel = CalculateWoldSurfaceLevel(); 187 | liquidRender.enabled = true; 188 | } 189 | else 190 | liquidRender.enabled = false; 191 | } 192 | 193 | private Vector3 CalculateWoldSurfaceLevel() 194 | { 195 | var bounds = liquidRender.bounds; 196 | var min = bounds.min.y; 197 | var max = bounds.max.y; 198 | 199 | var howLow = 1f - Mathf.Abs(Vector3.Dot(Vector3.up, transform.up)); 200 | var mapped = howLow * 0.1f; 201 | 202 | var surface = (MappedFillAmount + mapped * (1f - MappedFillAmount)) * (max - min) + min; 203 | var center = bounds.center; 204 | center.y = surface; 205 | 206 | return center; 207 | } 208 | 209 | /// 210 | /// Generate surface plane in world-space coordinates 211 | /// 212 | /// 213 | public Plane GenerateSurfacePlane() 214 | { 215 | return new Plane(-gravityDirection, 216 | surfaceLevel.y - transform.position.y); 217 | } 218 | #endregion 219 | 220 | #region Gravity 221 | 222 | private Vector3 gravityDirection = Vector3.down; 223 | /// 224 | /// Direction which liquid trying to align to 225 | /// 226 | public Vector3 GravityDirection 227 | { 228 | get 229 | { 230 | return gravityDirection; 231 | } 232 | set 233 | { 234 | gravityDirection = value; 235 | if (MaterialInstance) 236 | MaterialInstance.SetVector(GravityDirectionID, value); 237 | } 238 | } 239 | 240 | #endregion 241 | 242 | #region Material Settings 243 | private static int GravityDirectionID = Shader.PropertyToID("_GravityDirection"); 244 | private static int SurfaceLevelID = Shader.PropertyToID("_SurfaceLevel"); 245 | 246 | private Material materialInstance; 247 | 248 | /// 249 | /// Unique instance of liqud material bounded with mesh render 250 | /// 251 | public Material MaterialInstance 252 | { 253 | get 254 | { 255 | if (liquidRender == null) 256 | return null; 257 | 258 | // Check if there is valid material instance 259 | if (materialInstance == null || liquidRender.sharedMaterial != materialInstance) 260 | { 261 | if (liquidMaterial != null) 262 | materialInstance = new Material(liquidMaterial); 263 | else 264 | { 265 | var shader = Shader.Find("Liquid/SimpleLiquidShader"); 266 | materialInstance = new Material(shader); 267 | } 268 | liquidRender.sharedMaterial = materialInstance; 269 | } 270 | 271 | return materialInstance; 272 | } 273 | } 274 | 275 | /// 276 | /// Shared mesh that represent liquids 277 | /// 278 | public Mesh LiquidMesh 279 | { 280 | get 281 | { 282 | if (meshFilter == null) 283 | meshFilter = liquidRender?.GetComponent(); 284 | return meshFilter?.sharedMesh; 285 | } 286 | } 287 | 288 | /// 289 | /// Transparent color of the liquid 290 | /// 291 | public Color LiquidColor 292 | { 293 | get 294 | { 295 | return liquidColor; 296 | } 297 | set 298 | { 299 | liquidColor = value; 300 | if (MaterialInstance) 301 | MaterialInstance.color = liquidColor; 302 | } 303 | } 304 | #endregion 305 | 306 | #region Wobble Effect 307 | private const float rotCoef = 0.2f; 308 | 309 | private Vector3 lastPos, lastUp; 310 | private Vector3 wobbleAcm; 311 | 312 | private void UpdateWoble() 313 | { 314 | var velocity = (transform.position - lastPos) / Time.fixedDeltaTime; 315 | var rotVelocity = (transform.up - lastUp) / Time.fixedDeltaTime; 316 | wobbleAcm += velocity + rotVelocity * rotCoef; 317 | wobbleAcm = Vector3.Lerp(wobbleAcm, Vector3.zero, Time.fixedDeltaTime); 318 | 319 | var sin = Mathf.Sin(2 * Mathf.PI * Time.time) / inertness; 320 | var wobble = wobbleAcm * sin; 321 | //wobble = wobbleToAdd * (Mathf.Sin((1f + wobbleToAdd.magnitude) * 2 *Mathf.PI) * inertness); 322 | 323 | Vector3 gravity; 324 | if (fillAmountPercent > maxFillAmount && !isOpen) 325 | gravity = Vector3.down; 326 | else 327 | gravity = (Vector3.down + wobble).normalized; 328 | 329 | gravity.y = -1; 330 | 331 | GravityDirection = gravity; 332 | 333 | lastPos = transform.position; 334 | lastUp = transform.up; 335 | } 336 | #endregion 337 | 338 | #region Gizmos 339 | private void OnDrawGizmosSelected() 340 | { 341 | // Draws liquid surface 342 | UpdateSurfacePos(); 343 | var surfacePlane = GenerateSurfacePlane(); 344 | Gizmos.color = Color.green; 345 | GizmosHelper.DrawPlaneGizmos(surfacePlane, transform); 346 | 347 | } 348 | #endregion 349 | 350 | private void OnEnable() 351 | { 352 | // reset values for voble effect 353 | lastPos = transform.position; 354 | lastUp = transform.up; 355 | } 356 | 357 | private void Update() 358 | { 359 | if (liquidRender == null) 360 | return; 361 | 362 | // Update surface volume 363 | UpdateSurfacePos(); 364 | 365 | // In case transform scale is changed - update volume 366 | if (!customVolume) 367 | volume = CalculateVolume(); 368 | 369 | if (Application.isPlaying) 370 | UpdateWoble(); 371 | } 372 | 373 | private void OnValidate() 374 | { 375 | if (liquidRender == null) 376 | return; 377 | 378 | LiquidColor = liquidColor; 379 | FillAmountPercent = fillAmountPercent; 380 | IsOpen = isOpen; 381 | } 382 | 383 | } 384 | } 385 | 386 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/LiquidContainer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f97c0cadc5f88b46b59a38d17fac88e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: 7 | - render: {instanceID: 0} 8 | - liquidMaterial: {fileID: 2100000, guid: 8dec526bbd84d684da6f40f79c3ab1bd, type: 2} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/SplitController.cs: -------------------------------------------------------------------------------- 1 | #pragma warning disable 0649 2 | 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using UnityEngine; 7 | 8 | namespace UnitySimpleLiquid 9 | { 10 | /// 11 | /// Calculates liquids splitting effect and transfer to other liquid containers 12 | /// 13 | public class SplitController : MonoBehaviour 14 | { 15 | public LiquidContainer liquidContainer; 16 | [SerializeField] 17 | private float bottleneckRadius = 0.1f; 18 | public float BottleneckRadiusWorld { get; private set; } 19 | 20 | [Tooltip("How fast liquid split from container")] 21 | public float splitSpeed = 2f; 22 | [Tooltip("Number number of objects the liquid will hit off and continue flowing")] 23 | public int maxEdgeDrops = 4; 24 | private int currentDrop; 25 | 26 | public ParticleSystem particlesPrefab; 27 | 28 | #region Particles 29 | private ParticleSystem particles; 30 | public ParticleSystem Particles 31 | { 32 | get 33 | { 34 | if (!particlesPrefab) 35 | return null; 36 | 37 | if (!particles) 38 | particles = Instantiate(particlesPrefab, transform); 39 | return particles; 40 | } 41 | } 42 | 43 | private void StartEffect(Vector3 splitPos, float scale) 44 | { 45 | var particlesInst = Particles; 46 | if (!particlesInst) 47 | return; 48 | 49 | var mainModule = particlesInst.main; 50 | mainModule.startColor = liquidContainer.LiquidColor; 51 | 52 | particlesInst.transform.localScale = Vector3.one * BottleneckRadiusWorld * scale; 53 | particlesInst.transform.position = splitPos; 54 | particlesInst.Play(); 55 | } 56 | #endregion 57 | 58 | #region Bottleneck 59 | public Plane bottleneckPlane { get; private set; } 60 | public Plane surfacePlane { get; private set; } 61 | public Vector3 BottleneckPos { get; private set; } 62 | 63 | private Plane GenerateBottleneckPlane() 64 | { 65 | if (!liquidContainer) 66 | return new Plane(); 67 | 68 | var mesh = liquidContainer.LiquidMesh; 69 | if (!mesh) 70 | return new Plane(); 71 | 72 | var max = mesh.bounds.max.y; 73 | return new Plane(liquidContainer.transform.up, 74 | max * liquidContainer.transform.lossyScale.y); 75 | } 76 | 77 | private Vector3 GenerateBottleneckPos() 78 | { 79 | if (!liquidContainer) 80 | return Vector3.zero; 81 | 82 | var tr = liquidContainer.transform; 83 | var pos = bottleneckPlane.normal * bottleneckPlane.distance + tr.position; 84 | return pos; 85 | } 86 | 87 | private Vector3 GenerateBottleneckLowesPoint() 88 | { 89 | if (!liquidContainer) 90 | return Vector3.zero; 91 | 92 | // Calculate the direction vector of the bottlenecks slope 93 | 94 | Vector3 bottleneckSlope = GetSlopeDirection(Vector3.up, bottleneckPlane.normal); 95 | 96 | // Find a position along the slope the side of the bottleneck radius 97 | Vector3 min = BottleneckPos + bottleneckSlope * BottleneckRadiusWorld; 98 | 99 | return min; 100 | 101 | } 102 | #endregion 103 | 104 | #region Gizmos 105 | private void OnDrawGizmosSelected() 106 | { 107 | // Draws bottleneck direction and radius 108 | var bottleneckPlane = GenerateBottleneckPlane(); 109 | BottleneckRadiusWorld = bottleneckRadius * transform.lossyScale.magnitude; 110 | 111 | Gizmos.color = Color.red; 112 | GizmosHelper.DrawPlaneGizmos(bottleneckPlane, transform); 113 | 114 | // And bottleneck position 115 | GizmosHelper.DrawSphereOnPlane(bottleneckPlane, BottleneckRadiusWorld, transform); 116 | } 117 | private void OnDrawGizmos() 118 | { 119 | // Draw a yellow sphere at the transform's position 120 | if (raycasthit != Vector3.zero) 121 | { 122 | Gizmos.color = Color.yellow; 123 | Gizmos.DrawSphere(raycasthit, 0.01f); 124 | Gizmos.DrawSphere(raycastStart, 0.01f); 125 | } 126 | } 127 | #endregion 128 | 129 | #region Split Logic 130 | private const float splashSize = 0.025f; 131 | 132 | public bool IsSpliting { get; private set; } 133 | 134 | private void CheckSpliting() 135 | { 136 | IsSpliting = false; 137 | 138 | if (liquidContainer == null) 139 | return; 140 | 141 | // Do we have something to split? 142 | if (liquidContainer.FillAmountPercent <= 0f) 143 | return; 144 | if (!liquidContainer.IsOpen) 145 | return; 146 | 147 | // Check if liquid is overflows 148 | Vector3 overflowsPoint, lineVec; 149 | var overflows = GeomUtils.PlanePlaneIntersection(out overflowsPoint, out lineVec, 150 | bottleneckPlane, surfacePlane); 151 | 152 | // Translate to contrainers world position 153 | overflowsPoint += liquidContainer.transform.position; 154 | 155 | if (overflows) 156 | { 157 | // Let's check if overflow point is inside bottleneck radius 158 | var insideBottleneck = Vector3.Distance(overflowsPoint, BottleneckPos) < BottleneckRadiusWorld; 159 | 160 | if (insideBottleneck) 161 | { 162 | // We are inside bottleneck - just start spliting from lowest bottleneck point 163 | var minPoint = GenerateBottleneckLowesPoint(); 164 | SplitLogic(minPoint); 165 | return; 166 | } 167 | } 168 | 169 | if (BottleneckPos.y < overflowsPoint.y) 170 | { 171 | // Oh, looks like container is upside down - let's check it 172 | var dot = Vector3.Dot(bottleneckPlane.normal, surfacePlane.normal); 173 | if (dot < 0f) 174 | { 175 | // Yep, let's split from the bottleneck center 176 | SplitLogic(BottleneckPos); 177 | } 178 | else 179 | { 180 | // Well, this weird, let's check if spliting point is even inside our liquid 181 | var dist = liquidContainer.liquidRender.bounds.SqrDistance(overflowsPoint); 182 | var inBounding = dist < 0.0001f; 183 | 184 | if (inBounding) 185 | { 186 | // Yeah, we are inside liquid container 187 | var minPoint = GenerateBottleneckLowesPoint(); 188 | SplitLogic(minPoint); 189 | } 190 | } 191 | } 192 | } 193 | 194 | private void SplitLogic(Vector3 splitPos) 195 | { 196 | IsSpliting = true; 197 | 198 | // Check rotation of liquid container 199 | // It conttolls how many liquid we lost and particles size 200 | var howLow = Vector3.Dot(Vector3.up, liquidContainer.transform.up); 201 | var flowScale = 1f - (howLow + 1) * 0.5f + 0.2f; 202 | 203 | var liquidStep = BottleneckRadiusWorld * splitSpeed * Time.deltaTime * flowScale; 204 | var newLiquidAmmount = liquidContainer.FillAmountPercent - liquidStep; 205 | 206 | // Check if amount is negative and change it to zero 207 | if (newLiquidAmmount < 0f) 208 | { 209 | liquidStep = liquidContainer.FillAmountPercent; 210 | newLiquidAmmount = 0f; 211 | } 212 | 213 | // Transfer liquid to other container (if possible) 214 | liquidContainer.FillAmountPercent = newLiquidAmmount; 215 | 216 | RaycastHit containerHit = FindLiquidContainer(splitPos, this.gameObject); 217 | 218 | //RaycastHit is a struct which gives us everything we need 219 | if (containerHit.collider != null) 220 | { 221 | TransferLiquid(containerHit, liquidStep, flowScale); 222 | 223 | } 224 | // Start particles effect 225 | StartEffect(splitPos, flowScale); 226 | } 227 | 228 | 229 | //Used for Gizmo only 230 | private Vector3 raycasthit; 231 | private Vector3 raycastStart; 232 | 233 | private void TransferLiquid(RaycastHit hit, float lostPercentAmount, float scale) 234 | { 235 | var liquid = hit.collider.GetComponent(); 236 | 237 | var otherBottleneck = liquid.GenerateBottleneckPos(); 238 | var radius = liquid.BottleneckRadiusWorld; 239 | 240 | var hitPoint = hit.point; 241 | 242 | // Does we touched bottleneck? 243 | var insideRadius = Vector3.Distance(hitPoint, otherBottleneck) < radius + splashSize * scale; 244 | if (insideRadius) 245 | { 246 | var lostAmount = liquidContainer.Volume * lostPercentAmount; 247 | liquid.liquidContainer.FillAmount += lostAmount; 248 | 249 | //color change in capacity 250 | SendLiquidContainer(liquid.liquidContainer); 251 | } 252 | 253 | 254 | } 255 | 256 | private RaycastHit FindLiquidContainer(Vector3 splitPos, GameObject ignoreCollision) 257 | { 258 | 259 | var ray = new Ray(splitPos, Vector3.down); 260 | 261 | // Check all colliders under ours 262 | var hits = Physics.SphereCastAll(ray, splashSize); 263 | hits = hits.OrderBy((h) => h.distance).ToArray(); 264 | 265 | foreach (var hit in hits) 266 | { 267 | //Ignore ourself 268 | if (!GameObject.ReferenceEquals(hit.collider.gameObject, ignoreCollision) && !hit.collider.isTrigger) 269 | { 270 | 271 | // does it even a split controller 272 | var liquid = hit.collider.GetComponent(); 273 | if (liquid && liquid != this) 274 | { 275 | 276 | 277 | return hit; 278 | } 279 | 280 | 281 | //Something other than a liquid splitter is in the way 282 | if (!liquid) 283 | { 284 | //If we have already dropped down off too many objects, break 285 | 286 | if (currentDrop >= maxEdgeDrops) 287 | { 288 | //if we have rolled down too many objects, return empty hit 289 | //This assumes at this point the liquid has "dried up" rather than pouring from the last valid point 290 | return new RaycastHit(); 291 | } 292 | //Simulate the liquid running off an object it hits and continuing down from the edge of the liquid 293 | //Does not take velocity into account 294 | 295 | //First get the slope direction 296 | Vector3 slope = GetSlopeDirection(Vector3.up, hit.normal); 297 | 298 | //Next we try to find the edge of the object the liquid would roll off 299 | //This really only works for primitive objects, it would look weird on other stuff 300 | Vector3 edgePosition = TryGetSlopeEdge(slope, hit); 301 | if (edgePosition != Vector3.zero) 302 | { 303 | //edge position found, surface must be tilted 304 | //Now we can try to transfer the liquid from this position 305 | currentDrop++; 306 | return FindLiquidContainer(edgePosition, hit.collider.gameObject); 307 | 308 | } 309 | return new RaycastHit(); 310 | } 311 | } 312 | } 313 | return new RaycastHit(); 314 | } 315 | 316 | #endregion 317 | 318 | #region ChangeColor 319 | //playerMultiply for faster color change 320 | [Range(0, 2)] 321 | [Tooltip("Mixing speed ratio of different colors")] 322 | public float mixingSpeed = 1; 323 | 324 | private void SendLiquidContainer(LiquidContainer lc) 325 | { 326 | //find the color and split speed 327 | Color newColor = liquidContainer.LiquidColor; 328 | float ss = liquidContainer.GetSplitController.splitSpeed; 329 | 330 | //we find the coefficient of the volume of the tank and the volume of the incoming fluid 331 | float volume = lc.Volume; 332 | float koof = ss / (volume * 1000); 333 | lc.LiquidColor = Color.Lerp(lc.LiquidColor, newColor, koof * mixingSpeed); 334 | } 335 | #endregion 336 | 337 | #region Slope Logic 338 | private float GetIdealRayCastDist(Bounds boundBox, Vector3 point, Vector3 slope) 339 | { 340 | Vector3 final = boundBox.min; 341 | 342 | // X axis 343 | if (slope.x > 0) 344 | final.x = boundBox.max.x; 345 | // Y axis 346 | if (slope.y > 0) 347 | final.y = boundBox.max.y; 348 | // Z axis 349 | if (slope.z > 0) 350 | final.z = boundBox.max.z; 351 | 352 | return Vector3.Distance(point, final); 353 | } 354 | 355 | private Vector3 GetSlopeDirection(Vector3 up, Vector3 normal) 356 | { 357 | //https://forum.unity.com/threads/making-a-player-slide-down-a-slope.469988/#post-3062204 358 | return Vector3.Cross(Vector3.Cross(up, normal), normal).normalized; 359 | } 360 | 361 | private Vector3 TryGetSlopeEdge(Vector3 slope, RaycastHit hit) 362 | { 363 | Vector3 edgePosition = Vector3.zero; 364 | 365 | // We need to pick a position outside of the object to raycast back towards it to find an edge. 366 | // We need a position slightly down so it will hit the edge of the object 367 | Vector3 moveDown = new Vector3(0f, -0.0001f, 0f); 368 | // We also need to move the position outside of the objects bounding box, so we actually hit it 369 | float dist = GetIdealRayCastDist(hit.collider.bounds, hit.point, slope); 370 | 371 | Vector3 reverseRayPos = hit.point + moveDown + (slope * dist); 372 | raycastStart = reverseRayPos; 373 | Ray backwardsRay = new Ray(reverseRayPos, -slope); 374 | RaycastHit[] revHits = Physics.RaycastAll(backwardsRay); 375 | 376 | foreach (var revHit in revHits) 377 | { 378 | // https://answers.unity.com/questions/752382/how-to-compare-if-two-gameobjects-are-the-same-1.html 379 | //We only want to get this position on the original object we hit off of 380 | if (GameObject.ReferenceEquals(revHit.collider.gameObject, hit.collider.gameObject)) 381 | { 382 | //We hit the object the liquid is running down! 383 | raycasthit = edgePosition = revHit.point; 384 | break; 385 | } 386 | } 387 | return edgePosition; 388 | } 389 | #endregion 390 | 391 | private void Update() 392 | { 393 | // Update bottleneck and surface from last update 394 | bottleneckPlane = GenerateBottleneckPlane(); 395 | BottleneckPos = GenerateBottleneckPos(); 396 | surfacePlane = liquidContainer.GenerateSurfacePlane(); 397 | BottleneckRadiusWorld = bottleneckRadius * transform.lossyScale.magnitude; 398 | 399 | // Now check spliting, starting from the top 400 | currentDrop = 0; 401 | CheckSpliting(); 402 | } 403 | } 404 | } -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/SplitController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acb562255fca9b544b4583d4e7147e92 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08d83ae5458faf64fba10453c049dcc9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/Utils/GeomUtils.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace UnitySimpleLiquid 6 | { 7 | public static class GeomUtils 8 | { 9 | /// 10 | /// Checks interesection of two planes 11 | /// 12 | /// Point on the intersection line 13 | /// Intersection direction 14 | /// 15 | /// 16 | /// 17 | public static bool PlanePlaneIntersection(out Vector3 linePoint, out Vector3 lineVec, Plane plane1, Plane plane2) 18 | { 19 | // https://forum.unity.com/threads/how-to-find-line-of-intersecting-planes.109458/#post-725977 20 | 21 | linePoint = Vector3.zero; 22 | lineVec = Vector3.zero; 23 | 24 | //Get the normals of the planes. 25 | Vector3 plane1Normal = plane1.normal; 26 | Vector3 plane2Normal = plane2.normal; 27 | 28 | lineVec = Vector3.Cross(plane1Normal, plane2Normal); 29 | 30 | Vector3 ldir = Vector3.Cross(plane2Normal, lineVec); 31 | float numerator = Vector3.Dot(plane1Normal, ldir); 32 | 33 | if (Mathf.Abs(numerator) > 0.000001f) 34 | { 35 | var pos1 = plane1.normal * plane1.distance; 36 | var pos2 = plane2.normal * plane2.distance; 37 | 38 | Vector3 plane1ToPlane2 = pos1 - pos2; 39 | float t = Vector3.Dot(plane1Normal, plane1ToPlane2) / numerator; 40 | linePoint = pos2 + t * ldir; 41 | return true; 42 | } 43 | 44 | return false; 45 | } 46 | 47 | /// 48 | /// Map function to other scale 49 | /// 50 | /// 51 | /// 52 | /// 53 | /// 54 | /// 55 | /// 56 | public static float Map(float x, float in_min, float in_max, float out_min, float out_max) 57 | { 58 | // https://forum.unity.com/threads/mapping-or-scaling-values-to-a-new-range.180090/#post-2241099 59 | return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/Utils/GeomUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f3e1456914e48bc8616bc2b14cf7a6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/Utils/GizmosHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace UnitySimpleLiquid 6 | { 7 | public static class GizmosHelper 8 | { 9 | public static void DrawPlaneGizmos(Plane plane, Transform relativeTransform) 10 | { 11 | var pos = plane.normal * plane.distance + relativeTransform.position; 12 | Gizmos.DrawLine(pos, pos + plane.normal * 0.1f); 13 | } 14 | 15 | public static void DrawSphereOnPlane(Plane plane, float radius, Transform relativeTransform) 16 | { 17 | var pos = plane.normal * plane.distance + relativeTransform.position; 18 | Gizmos.DrawWireSphere(pos, radius); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Scripts/Utils/GizmosHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eff0dac1009f9e4fb0ecf35c7d1a2cf 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1d1ccc833a7ccf49aa310ac0aeb2613 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Shaders/SimpleLiquidShader.shader: -------------------------------------------------------------------------------- 1 | Shader "Liquid/SimpleLiquidShader" 2 | { 3 | Properties 4 | { 5 | _Color("Color", Color) = (1,1,1,1) 6 | _SurfaceLevel("Liquid Surface Level", Vector) = (0,1,0,0) 7 | _GravityDirection("Gravity direction",Vector) = (0,-1,0,0) 8 | } 9 | 10 | SubShader 11 | { 12 | Tags{ "Queue" = "Transparent+1" "RenderType" = "Transparent" } 13 | 14 | Zwrite Off 15 | Cull Off 16 | Blend SrcAlpha OneMinusSrcAlpha 17 | 18 | Pass 19 | { 20 | CGPROGRAM 21 | #pragma vertex vert 22 | #pragma fragment frag 23 | 24 | 25 | #include "UnityCG.cginc" 26 | 27 | struct appdata 28 | { 29 | float4 vertex : POSITION; 30 | }; 31 | 32 | struct v2f 33 | { 34 | float4 vertex : SV_POSITION; 35 | float4 worldPos : POSITION1; 36 | }; 37 | 38 | float4 _GravityDirection; 39 | float4 _SurfaceLevel; 40 | fixed4 _Color; 41 | 42 | v2f vert(appdata v) 43 | { 44 | v2f o; 45 | o.worldPos = mul(unity_ObjectToWorld, v.vertex); 46 | o.vertex = UnityObjectToClipPos(v.vertex); 47 | return o; 48 | } 49 | 50 | fixed4 frag(v2f i, fixed facing : VFACE) : SV_Target 51 | { 52 | float dotProd1 = dot(_SurfaceLevel - i.worldPos, _GravityDirection); 53 | if (dotProd1 > 0) discard; 54 | 55 | return _Color; 56 | } 57 | ENDCG 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /Assets/Unity Simple Liquid/Shaders/SimpleLiquidShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe64efaaefeb7d84197364314f3514b9 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Imgs/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/Imgs/demo.gif -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Macoron 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Wed Oct 2 20:41:48 2019 3 | 4 | Packages were changed. 5 | Update Mode: mergeDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.package-manager-ui@2.2.0 9 | com.unity.ext.nunit@1.0.0 10 | com.unity.test-framework@1.0.13 11 | com.unity.ide.vscode@1.0.7 12 | com.unity.ide.rider@1.0.8 13 | com.unity.ugui@1.0.0 14 | com.unity.modules.androidjni@1.0.0 15 | The following packages were updated: 16 | com.unity.collab-proxy from version 1.2.9 to 1.2.16 17 | com.unity.textmeshpro from version 2.0.0 to 2.0.1 18 | com.unity.timeline from version 0.0.0-builtin to 1.1.0 19 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": "1.2.16", 4 | "com.unity.ext.nunit": "1.0.0", 5 | "com.unity.ide.rider": "1.0.8", 6 | "com.unity.ide.vscode": "1.0.7", 7 | "com.unity.package-manager-ui": "2.2.0", 8 | "com.unity.test-framework": "1.0.13", 9 | "com.unity.textmeshpro": "2.0.1", 10 | "com.unity.timeline": "1.1.0", 11 | "com.unity.ugui": "1.0.0", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/GraphicsSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/NavMeshAreas.asset -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/PresetManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 18 7 | productGUID: c4644deed0a6acb45aec82fb7a293541 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: Macoron 16 | productName: Unity Simple Liquid 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | displayResolutionDialog: 0 56 | iosUseCustomAppBackgroundBehavior: 0 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 1 68 | androidUseSwappy: 0 69 | androidBlitType: 0 70 | defaultIsNativeResolution: 1 71 | macRetinaSupport: 1 72 | runInBackground: 1 73 | captureSingleScreen: 0 74 | muteOtherAudioSources: 0 75 | Prepare IOS For Recording: 0 76 | Force IOS Speakers When Recording: 0 77 | deferSystemGesturesMode: 0 78 | hideHomeButton: 0 79 | submitAnalytics: 1 80 | usePlayerLog: 1 81 | bakeCollisionMeshes: 0 82 | forceSingleInstance: 0 83 | useFlipModelSwapchain: 1 84 | resizableWindow: 0 85 | useMacAppStoreValidation: 0 86 | macAppStoreCategory: public.app-category.games 87 | gpuSkinning: 1 88 | graphicsJobs: 0 89 | xboxPIXTextureCapture: 0 90 | xboxEnableAvatar: 0 91 | xboxEnableKinect: 0 92 | xboxEnableKinectAutoTracking: 0 93 | xboxEnableFitness: 0 94 | visibleInBackground: 1 95 | allowFullscreenSwitch: 1 96 | graphicsJobMode: 0 97 | fullscreenMode: 1 98 | xboxSpeechDB: 0 99 | xboxEnableHeadOrientation: 0 100 | xboxEnableGuest: 0 101 | xboxEnablePIXSampling: 0 102 | metalFramebufferOnly: 0 103 | xboxOneResolution: 0 104 | xboxOneSResolution: 0 105 | xboxOneXResolution: 3 106 | xboxOneMonoLoggingLevel: 0 107 | xboxOneLoggingLevel: 1 108 | xboxOneDisableEsram: 0 109 | xboxOnePresentImmediateThreshold: 0 110 | switchQueueCommandMemory: 0 111 | switchQueueControlMemory: 16384 112 | switchQueueComputeMemory: 262144 113 | switchNVNShaderPoolsGranularity: 33554432 114 | switchNVNDefaultPoolsGranularity: 16777216 115 | switchNVNOtherPoolsGranularity: 16777216 116 | vulkanEnableSetSRGBWrite: 0 117 | m_SupportedAspectRatios: 118 | 4:3: 1 119 | 5:4: 1 120 | 16:10: 1 121 | 16:9: 1 122 | Others: 1 123 | bundleVersion: 0.1 124 | preloadedAssets: [] 125 | metroInputSource: 0 126 | wsaTransparentSwapchain: 0 127 | m_HolographicPauseOnTrackingLoss: 1 128 | xboxOneDisableKinectGpuReservation: 1 129 | xboxOneEnable7thCore: 1 130 | vrSettings: 131 | cardboard: 132 | depthFormat: 0 133 | enableTransitionView: 0 134 | daydream: 135 | depthFormat: 0 136 | useSustainedPerformanceMode: 0 137 | enableVideoLayer: 0 138 | useProtectedVideoMemory: 0 139 | minimumSupportedHeadTracking: 0 140 | maximumSupportedHeadTracking: 1 141 | hololens: 142 | depthFormat: 1 143 | depthBufferSharingEnabled: 1 144 | lumin: 145 | depthFormat: 0 146 | frameTiming: 2 147 | enableGLCache: 0 148 | glCacheMaxBlobSize: 524288 149 | glCacheMaxFileSize: 8388608 150 | oculus: 151 | sharedDepthBuffer: 1 152 | dashSupport: 1 153 | lowOverheadMode: 0 154 | enable360StereoCapture: 0 155 | isWsaHolographicRemotingEnabled: 0 156 | protectGraphicsMemory: 0 157 | enableFrameTimingStats: 0 158 | useHDRDisplay: 0 159 | m_ColorGamuts: 00000000 160 | targetPixelDensity: 30 161 | resolutionScalingMode: 0 162 | androidSupportedAspectRatio: 1 163 | androidMaxAspectRatio: 2.1 164 | applicationIdentifier: {} 165 | buildNumber: {} 166 | AndroidBundleVersionCode: 1 167 | AndroidMinSdkVersion: 16 168 | AndroidTargetSdkVersion: 0 169 | AndroidPreferredInstallLocation: 1 170 | aotOptions: 171 | stripEngineCode: 1 172 | iPhoneStrippingLevel: 0 173 | iPhoneScriptCallOptimization: 0 174 | ForceInternetPermission: 0 175 | ForceSDCardPermission: 0 176 | CreateWallpaper: 0 177 | APKExpansionFiles: 0 178 | keepLoadedShadersAlive: 0 179 | StripUnusedMeshComponents: 1 180 | VertexChannelCompressionMask: 4054 181 | iPhoneSdkVersion: 988 182 | iOSTargetOSVersionString: 9.0 183 | tvOSSdkVersion: 0 184 | tvOSRequireExtendedGameController: 0 185 | tvOSTargetOSVersionString: 9.0 186 | uIPrerenderedIcon: 0 187 | uIRequiresPersistentWiFi: 0 188 | uIRequiresFullScreen: 1 189 | uIStatusBarHidden: 1 190 | uIExitOnSuspend: 0 191 | uIStatusBarStyle: 0 192 | iPhoneSplashScreen: {fileID: 0} 193 | iPhoneHighResSplashScreen: {fileID: 0} 194 | iPhoneTallHighResSplashScreen: {fileID: 0} 195 | iPhone47inSplashScreen: {fileID: 0} 196 | iPhone55inPortraitSplashScreen: {fileID: 0} 197 | iPhone55inLandscapeSplashScreen: {fileID: 0} 198 | iPhone58inPortraitSplashScreen: {fileID: 0} 199 | iPhone58inLandscapeSplashScreen: {fileID: 0} 200 | iPadPortraitSplashScreen: {fileID: 0} 201 | iPadHighResPortraitSplashScreen: {fileID: 0} 202 | iPadLandscapeSplashScreen: {fileID: 0} 203 | iPadHighResLandscapeSplashScreen: {fileID: 0} 204 | iPhone65inPortraitSplashScreen: {fileID: 0} 205 | iPhone65inLandscapeSplashScreen: {fileID: 0} 206 | iPhone61inPortraitSplashScreen: {fileID: 0} 207 | iPhone61inLandscapeSplashScreen: {fileID: 0} 208 | appleTVSplashScreen: {fileID: 0} 209 | appleTVSplashScreen2x: {fileID: 0} 210 | tvOSSmallIconLayers: [] 211 | tvOSSmallIconLayers2x: [] 212 | tvOSLargeIconLayers: [] 213 | tvOSLargeIconLayers2x: [] 214 | tvOSTopShelfImageLayers: [] 215 | tvOSTopShelfImageLayers2x: [] 216 | tvOSTopShelfImageWideLayers: [] 217 | tvOSTopShelfImageWideLayers2x: [] 218 | iOSLaunchScreenType: 0 219 | iOSLaunchScreenPortrait: {fileID: 0} 220 | iOSLaunchScreenLandscape: {fileID: 0} 221 | iOSLaunchScreenBackgroundColor: 222 | serializedVersion: 2 223 | rgba: 0 224 | iOSLaunchScreenFillPct: 100 225 | iOSLaunchScreenSize: 100 226 | iOSLaunchScreenCustomXibPath: 227 | iOSLaunchScreeniPadType: 0 228 | iOSLaunchScreeniPadImage: {fileID: 0} 229 | iOSLaunchScreeniPadBackgroundColor: 230 | serializedVersion: 2 231 | rgba: 0 232 | iOSLaunchScreeniPadFillPct: 100 233 | iOSLaunchScreeniPadSize: 100 234 | iOSLaunchScreeniPadCustomXibPath: 235 | iOSUseLaunchScreenStoryboard: 0 236 | iOSLaunchScreenCustomStoryboardPath: 237 | iOSDeviceRequirements: [] 238 | iOSURLSchemes: [] 239 | iOSBackgroundModes: 0 240 | iOSMetalForceHardShadows: 0 241 | metalEditorSupport: 1 242 | metalAPIValidation: 1 243 | iOSRenderExtraFrameOnPause: 0 244 | appleDeveloperTeamID: 245 | iOSManualSigningProvisioningProfileID: 246 | tvOSManualSigningProvisioningProfileID: 247 | iOSManualSigningProvisioningProfileType: 0 248 | tvOSManualSigningProvisioningProfileType: 0 249 | appleEnableAutomaticSigning: 0 250 | iOSRequireARKit: 0 251 | iOSAutomaticallyDetectAndAddCapabilities: 1 252 | appleEnableProMotion: 0 253 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 254 | templatePackageId: com.unity.template.3d@3.1.0 255 | templateDefaultScene: Assets/Scenes/SampleScene.unity 256 | AndroidTargetArchitectures: 1 257 | AndroidSplashScreenScale: 0 258 | androidSplashScreen: {fileID: 0} 259 | AndroidKeystoreName: '{inproject}: ' 260 | AndroidKeyaliasName: 261 | AndroidBuildApkPerCpuArchitecture: 0 262 | AndroidTVCompatibility: 0 263 | AndroidIsGame: 1 264 | AndroidEnableTango: 0 265 | androidEnableBanner: 1 266 | androidUseLowAccuracyLocation: 0 267 | androidUseCustomKeystore: 0 268 | m_AndroidBanners: 269 | - width: 320 270 | height: 180 271 | banner: {fileID: 0} 272 | androidGamepadSupportLevel: 0 273 | AndroidValidateAppBundleSize: 1 274 | AndroidAppBundleSizeToValidate: 150 275 | resolutionDialogBanner: {fileID: 0} 276 | m_BuildTargetIcons: [] 277 | m_BuildTargetPlatformIcons: [] 278 | m_BuildTargetBatching: 279 | - m_BuildTarget: Standalone 280 | m_StaticBatching: 1 281 | m_DynamicBatching: 0 282 | - m_BuildTarget: tvOS 283 | m_StaticBatching: 1 284 | m_DynamicBatching: 0 285 | - m_BuildTarget: Android 286 | m_StaticBatching: 1 287 | m_DynamicBatching: 0 288 | - m_BuildTarget: iPhone 289 | m_StaticBatching: 1 290 | m_DynamicBatching: 0 291 | - m_BuildTarget: WebGL 292 | m_StaticBatching: 0 293 | m_DynamicBatching: 0 294 | m_BuildTargetGraphicsAPIs: 295 | - m_BuildTarget: AndroidPlayer 296 | m_APIs: 150000000b000000 297 | m_Automatic: 0 298 | - m_BuildTarget: iOSSupport 299 | m_APIs: 10000000 300 | m_Automatic: 1 301 | - m_BuildTarget: AppleTVSupport 302 | m_APIs: 10000000 303 | m_Automatic: 0 304 | - m_BuildTarget: WebGLSupport 305 | m_APIs: 0b000000 306 | m_Automatic: 1 307 | m_BuildTargetVRSettings: 308 | - m_BuildTarget: Standalone 309 | m_Enabled: 0 310 | m_Devices: 311 | - Oculus 312 | - OpenVR 313 | openGLRequireES31: 0 314 | openGLRequireES31AEP: 0 315 | openGLRequireES32: 0 316 | vuforiaEnabled: 0 317 | m_TemplateCustomTags: {} 318 | mobileMTRendering: 319 | Android: 1 320 | iPhone: 1 321 | tvOS: 1 322 | m_BuildTargetGroupLightmapEncodingQuality: [] 323 | m_BuildTargetGroupLightmapSettings: [] 324 | playModeTestRunnerEnabled: 0 325 | runPlayModeTestAsEditModeTest: 0 326 | actionOnDotNetUnhandledException: 1 327 | enableInternalProfiler: 0 328 | logObjCUncaughtExceptions: 1 329 | enableCrashReportAPI: 0 330 | cameraUsageDescription: 331 | locationUsageDescription: 332 | microphoneUsageDescription: 333 | switchNetLibKey: 334 | switchSocketMemoryPoolSize: 6144 335 | switchSocketAllocatorPoolSize: 128 336 | switchSocketConcurrencyLimit: 14 337 | switchScreenResolutionBehavior: 2 338 | switchUseCPUProfiler: 0 339 | switchApplicationID: 0x01004b9000490000 340 | switchNSODependencies: 341 | switchTitleNames_0: 342 | switchTitleNames_1: 343 | switchTitleNames_2: 344 | switchTitleNames_3: 345 | switchTitleNames_4: 346 | switchTitleNames_5: 347 | switchTitleNames_6: 348 | switchTitleNames_7: 349 | switchTitleNames_8: 350 | switchTitleNames_9: 351 | switchTitleNames_10: 352 | switchTitleNames_11: 353 | switchTitleNames_12: 354 | switchTitleNames_13: 355 | switchTitleNames_14: 356 | switchPublisherNames_0: 357 | switchPublisherNames_1: 358 | switchPublisherNames_2: 359 | switchPublisherNames_3: 360 | switchPublisherNames_4: 361 | switchPublisherNames_5: 362 | switchPublisherNames_6: 363 | switchPublisherNames_7: 364 | switchPublisherNames_8: 365 | switchPublisherNames_9: 366 | switchPublisherNames_10: 367 | switchPublisherNames_11: 368 | switchPublisherNames_12: 369 | switchPublisherNames_13: 370 | switchPublisherNames_14: 371 | switchIcons_0: {fileID: 0} 372 | switchIcons_1: {fileID: 0} 373 | switchIcons_2: {fileID: 0} 374 | switchIcons_3: {fileID: 0} 375 | switchIcons_4: {fileID: 0} 376 | switchIcons_5: {fileID: 0} 377 | switchIcons_6: {fileID: 0} 378 | switchIcons_7: {fileID: 0} 379 | switchIcons_8: {fileID: 0} 380 | switchIcons_9: {fileID: 0} 381 | switchIcons_10: {fileID: 0} 382 | switchIcons_11: {fileID: 0} 383 | switchIcons_12: {fileID: 0} 384 | switchIcons_13: {fileID: 0} 385 | switchIcons_14: {fileID: 0} 386 | switchSmallIcons_0: {fileID: 0} 387 | switchSmallIcons_1: {fileID: 0} 388 | switchSmallIcons_2: {fileID: 0} 389 | switchSmallIcons_3: {fileID: 0} 390 | switchSmallIcons_4: {fileID: 0} 391 | switchSmallIcons_5: {fileID: 0} 392 | switchSmallIcons_6: {fileID: 0} 393 | switchSmallIcons_7: {fileID: 0} 394 | switchSmallIcons_8: {fileID: 0} 395 | switchSmallIcons_9: {fileID: 0} 396 | switchSmallIcons_10: {fileID: 0} 397 | switchSmallIcons_11: {fileID: 0} 398 | switchSmallIcons_12: {fileID: 0} 399 | switchSmallIcons_13: {fileID: 0} 400 | switchSmallIcons_14: {fileID: 0} 401 | switchManualHTML: 402 | switchAccessibleURLs: 403 | switchLegalInformation: 404 | switchMainThreadStackSize: 1048576 405 | switchPresenceGroupId: 406 | switchLogoHandling: 0 407 | switchReleaseVersion: 0 408 | switchDisplayVersion: 1.0.0 409 | switchStartupUserAccount: 0 410 | switchTouchScreenUsage: 0 411 | switchSupportedLanguagesMask: 0 412 | switchLogoType: 0 413 | switchApplicationErrorCodeCategory: 414 | switchUserAccountSaveDataSize: 0 415 | switchUserAccountSaveDataJournalSize: 0 416 | switchApplicationAttribute: 0 417 | switchCardSpecSize: -1 418 | switchCardSpecClock: -1 419 | switchRatingsMask: 0 420 | switchRatingsInt_0: 0 421 | switchRatingsInt_1: 0 422 | switchRatingsInt_2: 0 423 | switchRatingsInt_3: 0 424 | switchRatingsInt_4: 0 425 | switchRatingsInt_5: 0 426 | switchRatingsInt_6: 0 427 | switchRatingsInt_7: 0 428 | switchRatingsInt_8: 0 429 | switchRatingsInt_9: 0 430 | switchRatingsInt_10: 0 431 | switchRatingsInt_11: 0 432 | switchLocalCommunicationIds_0: 433 | switchLocalCommunicationIds_1: 434 | switchLocalCommunicationIds_2: 435 | switchLocalCommunicationIds_3: 436 | switchLocalCommunicationIds_4: 437 | switchLocalCommunicationIds_5: 438 | switchLocalCommunicationIds_6: 439 | switchLocalCommunicationIds_7: 440 | switchParentalControl: 0 441 | switchAllowsScreenshot: 1 442 | switchAllowsVideoCapturing: 1 443 | switchAllowsRuntimeAddOnContentInstall: 0 444 | switchDataLossConfirmation: 0 445 | switchUserAccountLockEnabled: 0 446 | switchSystemResourceMemory: 16777216 447 | switchSupportedNpadStyles: 3 448 | switchNativeFsCacheSize: 32 449 | switchIsHoldTypeHorizontal: 0 450 | switchSupportedNpadCount: 8 451 | switchSocketConfigEnabled: 0 452 | switchTcpInitialSendBufferSize: 32 453 | switchTcpInitialReceiveBufferSize: 64 454 | switchTcpAutoSendBufferSizeMax: 256 455 | switchTcpAutoReceiveBufferSizeMax: 256 456 | switchUdpSendBufferSize: 9 457 | switchUdpReceiveBufferSize: 42 458 | switchSocketBufferEfficiency: 4 459 | switchSocketInitializeEnabled: 1 460 | switchNetworkInterfaceManagerInitializeEnabled: 1 461 | switchPlayerConnectionEnabled: 1 462 | ps4NPAgeRating: 12 463 | ps4NPTitleSecret: 464 | ps4NPTrophyPackPath: 465 | ps4ParentalLevel: 11 466 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 467 | ps4Category: 0 468 | ps4MasterVersion: 01.00 469 | ps4AppVersion: 01.00 470 | ps4AppType: 0 471 | ps4ParamSfxPath: 472 | ps4VideoOutPixelFormat: 0 473 | ps4VideoOutInitialWidth: 1920 474 | ps4VideoOutBaseModeInitialWidth: 1920 475 | ps4VideoOutReprojectionRate: 60 476 | ps4PronunciationXMLPath: 477 | ps4PronunciationSIGPath: 478 | ps4BackgroundImagePath: 479 | ps4StartupImagePath: 480 | ps4StartupImagesFolder: 481 | ps4IconImagesFolder: 482 | ps4SaveDataImagePath: 483 | ps4SdkOverride: 484 | ps4BGMPath: 485 | ps4ShareFilePath: 486 | ps4ShareOverlayImagePath: 487 | ps4PrivacyGuardImagePath: 488 | ps4NPtitleDatPath: 489 | ps4RemotePlayKeyAssignment: -1 490 | ps4RemotePlayKeyMappingDir: 491 | ps4PlayTogetherPlayerCount: 0 492 | ps4EnterButtonAssignment: 1 493 | ps4ApplicationParam1: 0 494 | ps4ApplicationParam2: 0 495 | ps4ApplicationParam3: 0 496 | ps4ApplicationParam4: 0 497 | ps4DownloadDataSize: 0 498 | ps4GarlicHeapSize: 2048 499 | ps4ProGarlicHeapSize: 2560 500 | playerPrefsMaxSize: 32768 501 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 502 | ps4pnSessions: 1 503 | ps4pnPresence: 1 504 | ps4pnFriends: 1 505 | ps4pnGameCustomData: 1 506 | playerPrefsSupport: 0 507 | enableApplicationExit: 0 508 | resetTempFolder: 1 509 | restrictedAudioUsageRights: 0 510 | ps4UseResolutionFallback: 0 511 | ps4ReprojectionSupport: 0 512 | ps4UseAudio3dBackend: 0 513 | ps4SocialScreenEnabled: 0 514 | ps4ScriptOptimizationLevel: 0 515 | ps4Audio3dVirtualSpeakerCount: 14 516 | ps4attribCpuUsage: 0 517 | ps4PatchPkgPath: 518 | ps4PatchLatestPkgPath: 519 | ps4PatchChangeinfoPath: 520 | ps4PatchDayOne: 0 521 | ps4attribUserManagement: 0 522 | ps4attribMoveSupport: 0 523 | ps4attrib3DSupport: 0 524 | ps4attribShareSupport: 0 525 | ps4attribExclusiveVR: 0 526 | ps4disableAutoHideSplash: 0 527 | ps4videoRecordingFeaturesUsed: 0 528 | ps4contentSearchFeaturesUsed: 0 529 | ps4attribEyeToEyeDistanceSettingVR: 0 530 | ps4IncludedModules: [] 531 | monoEnv: 532 | splashScreenBackgroundSourceLandscape: {fileID: 0} 533 | splashScreenBackgroundSourcePortrait: {fileID: 0} 534 | blurSplashScreenBackground: 1 535 | spritePackerPolicy: 536 | webGLMemorySize: 16 537 | webGLExceptionSupport: 1 538 | webGLNameFilesAsHashes: 0 539 | webGLDataCaching: 1 540 | webGLDebugSymbols: 0 541 | webGLEmscriptenArgs: 542 | webGLModulesDirectory: 543 | webGLTemplate: APPLICATION:Default 544 | webGLAnalyzeBuildSize: 0 545 | webGLUseEmbeddedResources: 0 546 | webGLCompressionFormat: 1 547 | webGLLinkerTarget: 1 548 | webGLThreadsSupport: 0 549 | webGLWasmStreaming: 0 550 | scriptingDefineSymbols: {} 551 | platformArchitecture: {} 552 | scriptingBackend: {} 553 | il2cppCompilerConfiguration: {} 554 | managedStrippingLevel: {} 555 | incrementalIl2cppBuild: {} 556 | allowUnsafeCode: 0 557 | additionalIl2CppArgs: 558 | scriptingRuntimeVersion: 1 559 | gcIncremental: 0 560 | gcWBarrierValidation: 0 561 | apiCompatibilityLevelPerPlatform: {} 562 | m_RenderingPath: 1 563 | m_MobileRenderingPath: 1 564 | metroPackageName: Template_3D 565 | metroPackageVersion: 566 | metroCertificatePath: 567 | metroCertificatePassword: 568 | metroCertificateSubject: 569 | metroCertificateIssuer: 570 | metroCertificateNotAfter: 0000000000000000 571 | metroApplicationDescription: Template_3D 572 | wsaImages: {} 573 | metroTileShortName: 574 | metroTileShowName: 0 575 | metroMediumTileShowName: 0 576 | metroLargeTileShowName: 0 577 | metroWideTileShowName: 0 578 | metroSupportStreamingInstall: 0 579 | metroLastRequiredScene: 0 580 | metroDefaultTileSize: 1 581 | metroTileForegroundText: 2 582 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 583 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 584 | a: 1} 585 | metroSplashScreenUseBackgroundColor: 0 586 | platformCapabilities: {} 587 | metroTargetDeviceFamilies: {} 588 | metroFTAName: 589 | metroFTAFileTypes: [] 590 | metroProtocolName: 591 | XboxOneProductId: 592 | XboxOneUpdateKey: 593 | XboxOneSandboxId: 594 | XboxOneContentId: 595 | XboxOneTitleId: 596 | XboxOneSCId: 597 | XboxOneGameOsOverridePath: 598 | XboxOnePackagingOverridePath: 599 | XboxOneAppManifestOverridePath: 600 | XboxOneVersion: 1.0.0.0 601 | XboxOnePackageEncryption: 0 602 | XboxOnePackageUpdateGranularity: 2 603 | XboxOneDescription: 604 | XboxOneLanguage: 605 | - enus 606 | XboxOneCapability: [] 607 | XboxOneGameRating: {} 608 | XboxOneIsContentPackage: 0 609 | XboxOneEnableGPUVariability: 1 610 | XboxOneSockets: {} 611 | XboxOneSplashScreen: {fileID: 0} 612 | XboxOneAllowedProductIds: [] 613 | XboxOnePersistentLocalStorageSize: 0 614 | XboxOneXTitleMemory: 8 615 | xboxOneScriptCompiler: 1 616 | XboxOneOverrideIdentityName: 617 | vrEditorSettings: 618 | daydream: 619 | daydreamIconForeground: {fileID: 0} 620 | daydreamIconBackground: {fileID: 0} 621 | cloudServicesEnabled: 622 | UNet: 1 623 | luminIcon: 624 | m_Name: 625 | m_ModelFolderPath: 626 | m_PortalFolderPath: 627 | luminCert: 628 | m_CertPath: 629 | m_SignPackage: 1 630 | luminIsChannelApp: 0 631 | luminVersion: 632 | m_VersionCode: 1 633 | m_VersionName: 634 | facebookSdkVersion: 7.9.4 635 | facebookAppId: 636 | facebookCookies: 1 637 | facebookLogging: 1 638 | facebookStatus: 1 639 | facebookXfbml: 0 640 | facebookFrictionlessRequests: 1 641 | apiCompatibilityLevel: 6 642 | cloudProjectId: 643 | framebufferDepthMemorylessMode: 0 644 | projectName: 645 | organizationId: 646 | cloudEnabled: 0 647 | enableNativePlatformBackendsForNewInputSystem: 0 648 | disableOldInputManagerSupport: 0 649 | legacyClampBlendShapeWeights: 1 650 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.2.0f1 2 | m_EditorVersionWithRevision: 2019.2.0f1 (20c1667945cf) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | excludedTargetPlatforms: [] 44 | - serializedVersion: 2 45 | name: Low 46 | pixelLightCount: 0 47 | shadows: 0 48 | shadowResolution: 0 49 | shadowProjection: 1 50 | shadowCascades: 1 51 | shadowDistance: 20 52 | shadowNearPlaneOffset: 3 53 | shadowCascade2Split: 0.33333334 54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 55 | shadowmaskMode: 0 56 | blendWeights: 2 57 | textureQuality: 0 58 | anisotropicTextures: 0 59 | antiAliasing: 0 60 | softParticles: 0 61 | softVegetation: 0 62 | realtimeReflectionProbes: 0 63 | billboardsFaceCameraPosition: 0 64 | vSyncCount: 0 65 | lodBias: 0.4 66 | maximumLODLevel: 0 67 | streamingMipmapsActive: 0 68 | streamingMipmapsAddAllCameras: 1 69 | streamingMipmapsMemoryBudget: 512 70 | streamingMipmapsRenderersPerFrame: 512 71 | streamingMipmapsMaxLevelReduction: 2 72 | streamingMipmapsMaxFileIORequests: 1024 73 | particleRaycastBudget: 16 74 | asyncUploadTimeSlice: 2 75 | asyncUploadBufferSize: 16 76 | asyncUploadPersistentBuffer: 1 77 | resolutionScalingFixedDPIFactor: 1 78 | excludedTargetPlatforms: [] 79 | - serializedVersion: 2 80 | name: Medium 81 | pixelLightCount: 1 82 | shadows: 1 83 | shadowResolution: 0 84 | shadowProjection: 1 85 | shadowCascades: 1 86 | shadowDistance: 20 87 | shadowNearPlaneOffset: 3 88 | shadowCascade2Split: 0.33333334 89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 90 | shadowmaskMode: 0 91 | blendWeights: 2 92 | textureQuality: 0 93 | anisotropicTextures: 1 94 | antiAliasing: 0 95 | softParticles: 0 96 | softVegetation: 0 97 | realtimeReflectionProbes: 0 98 | billboardsFaceCameraPosition: 0 99 | vSyncCount: 1 100 | lodBias: 0.7 101 | maximumLODLevel: 0 102 | streamingMipmapsActive: 0 103 | streamingMipmapsAddAllCameras: 1 104 | streamingMipmapsMemoryBudget: 512 105 | streamingMipmapsRenderersPerFrame: 512 106 | streamingMipmapsMaxLevelReduction: 2 107 | streamingMipmapsMaxFileIORequests: 1024 108 | particleRaycastBudget: 64 109 | asyncUploadTimeSlice: 2 110 | asyncUploadBufferSize: 16 111 | asyncUploadPersistentBuffer: 1 112 | resolutionScalingFixedDPIFactor: 1 113 | excludedTargetPlatforms: [] 114 | - serializedVersion: 2 115 | name: High 116 | pixelLightCount: 2 117 | shadows: 2 118 | shadowResolution: 1 119 | shadowProjection: 1 120 | shadowCascades: 2 121 | shadowDistance: 40 122 | shadowNearPlaneOffset: 3 123 | shadowCascade2Split: 0.33333334 124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 125 | shadowmaskMode: 1 126 | blendWeights: 2 127 | textureQuality: 0 128 | anisotropicTextures: 1 129 | antiAliasing: 0 130 | softParticles: 0 131 | softVegetation: 1 132 | realtimeReflectionProbes: 1 133 | billboardsFaceCameraPosition: 1 134 | vSyncCount: 1 135 | lodBias: 1 136 | maximumLODLevel: 0 137 | streamingMipmapsActive: 0 138 | streamingMipmapsAddAllCameras: 1 139 | streamingMipmapsMemoryBudget: 512 140 | streamingMipmapsRenderersPerFrame: 512 141 | streamingMipmapsMaxLevelReduction: 2 142 | streamingMipmapsMaxFileIORequests: 1024 143 | particleRaycastBudget: 256 144 | asyncUploadTimeSlice: 2 145 | asyncUploadBufferSize: 16 146 | asyncUploadPersistentBuffer: 1 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Very High 151 | pixelLightCount: 3 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 2 156 | shadowDistance: 70 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 1.5 171 | maximumLODLevel: 0 172 | streamingMipmapsActive: 0 173 | streamingMipmapsAddAllCameras: 1 174 | streamingMipmapsMemoryBudget: 512 175 | streamingMipmapsRenderersPerFrame: 512 176 | streamingMipmapsMaxLevelReduction: 2 177 | streamingMipmapsMaxFileIORequests: 1024 178 | particleRaycastBudget: 1024 179 | asyncUploadTimeSlice: 2 180 | asyncUploadBufferSize: 16 181 | asyncUploadPersistentBuffer: 1 182 | resolutionScalingFixedDPIFactor: 1 183 | excludedTargetPlatforms: [] 184 | - serializedVersion: 2 185 | name: Ultra 186 | pixelLightCount: 4 187 | shadows: 2 188 | shadowResolution: 2 189 | shadowProjection: 1 190 | shadowCascades: 4 191 | shadowDistance: 150 192 | shadowNearPlaneOffset: 3 193 | shadowCascade2Split: 0.33333334 194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 195 | shadowmaskMode: 1 196 | blendWeights: 4 197 | textureQuality: 0 198 | anisotropicTextures: 2 199 | antiAliasing: 2 200 | softParticles: 1 201 | softVegetation: 1 202 | realtimeReflectionProbes: 1 203 | billboardsFaceCameraPosition: 1 204 | vSyncCount: 1 205 | lodBias: 2 206 | maximumLODLevel: 0 207 | streamingMipmapsActive: 0 208 | streamingMipmapsAddAllCameras: 1 209 | streamingMipmapsMemoryBudget: 512 210 | streamingMipmapsRenderersPerFrame: 512 211 | streamingMipmapsMaxLevelReduction: 2 212 | streamingMipmapsMaxFileIORequests: 1024 213 | particleRaycastBudget: 4096 214 | asyncUploadTimeSlice: 2 215 | asyncUploadBufferSize: 16 216 | asyncUploadPersistentBuffer: 1 217 | resolutionScalingFixedDPIFactor: 1 218 | excludedTargetPlatforms: [] 219 | m_PerPlatformDefaultQuality: 220 | Android: 2 221 | Lumin: 5 222 | Nintendo 3DS: 5 223 | Nintendo Switch: 5 224 | PS4: 5 225 | PSP2: 2 226 | Standalone: 5 227 | WebGL: 3 228 | Windows Store Apps: 5 229 | XboxOne: 5 230 | iPhone: 2 231 | tvOS: 2 232 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macoron/Unity-Simple-Liquid/ade8a957b5c4c8a2026c9e2b4ee55ec70686e5bb/ProjectSettings/VFXManager.asset -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](Imgs/demo.gif) 2 | # Unity Simple Liquid 3 | This is simple Liquid Simulation framework for Unity3D. 4 | ## Main features 5 | - Calculates liquid surface based on inertia and rotation 6 | - Liquid volume is in liters and changes based on bottle physical size 7 | - Working liquid transfer between liquid containers 8 | 9 | ## Instalation 10 | Download latest realease [here](https://github.com/Macoron/Unity-Simple-Liquid/releases) 11 | 12 | Tested with Unity 2019.2.0f1 13 | 14 | ## License 15 | This project is licensed under the MIT License 16 | --------------------------------------------------------------------------------