比较提交

...
此合并请求有变更与目标分支冲突。
/Packages/com.verasl.water-system/Shaders/WaterInput.hlsl
/Packages/com.verasl.water-system/Shaders/GerstnerWaves.hlsl
/Packages/com.verasl.water-system/Shaders/WaterCommon.hlsl
/Packages/com.verasl.water-system/Shaders/WaterLighting.hlsl
/Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs.meta
/Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs
/Packages/com.verasl.water-system/Scripts/Water.cs
/Packages/manifest.json
/Assets/Data/WaterSurfaceData.asset
/Assets/Shaders/CheckpointShader.shadergraph
/Assets/Shaders/Clouds/CloudShader.shadergraph
/Assets/Shaders/Skybox-Procedural-Universal.shader
/Assets/scenes/main_menu.unity
/Assets/AddressableAssetsData/AddressableAssetSettings.asset
/Assets/AddressableAssetsData/AssetGroups/Boats.asset
/Assets/AddressableAssetsData/AssetGroups/Utility.asset
/Assets/Scripts/GameSystem/RaceManager.cs
/Assets/Scripts/GameSystem/AppSettings.cs
/Assets/Scripts/GameSystem/InputControls.cs
/ProjectSettings/ProjectVersion.txt
/ProjectSettings/ProjectSettings.asset
/Assets/AddressableAssetsData/OSX/addressables_content_state.bin
/Assets/Scripts/GameSystem/DefaultVolume.cs

1 次代码提交

作者 SHA1 备注 提交日期
GitHub 8860837a Change Vulkan swapchain image count to 3 (#94) 4 年前
共有 46 个文件被更改,包括 7804 次插入3253 次删除
  1. 2
      Assets/Data/DiscoverAsset.asset
  2. 22
      Assets/Data/WaterSurfaceData.asset
  3. 60
      Assets/Objects/Levels/Island/Lighting.prefab
  4. 9
      Assets/Objects/Levels/main_menu/MainMenuLevel.prefab
  5. 6
      Assets/Objects/environment/Clouds/Clouds.fbx.meta
  6. 66
      Assets/Shaders/CheckpointShader.shadergraph
  7. 172
      Assets/Shaders/Clouds/CloudShader.shadergraph
  8. 8
      Assets/Shaders/Skybox-Procedural-Universal.shader
  9. 316
      Assets/scenes/_levels/level_Island/LightingData.asset
  10. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-0.exr
  11. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-2.exr
  12. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-3.exr
  13. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-4.exr
  14. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-5.exr
  15. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-6.exr
  16. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-7.exr
  17. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-8.exr
  18. 1001
      Assets/scenes/_levels/level_Island/ReflectionProbe-9.exr
  19. 16
      Assets/scenes/main_menu.unity
  20. 50
      Assets/scenes/main_menu/LightingData.asset
  21. 1001
      Assets/scenes/main_menu/ReflectionProbe-0.exr
  22. 2
      Assets/AddressableAssetsData/AddressableAssetSettings.asset
  23. 5
      Assets/AddressableAssetsData/AssetGroups/Boats.asset
  24. 13
      Assets/AddressableAssetsData/AssetGroups/UI.asset
  25. 7
      Assets/AddressableAssetsData/AssetGroups/Utility.asset
  26. 20
      Assets/AddressableAssetsData/OSX/addressables_content_state.bin
  27. 3
      Assets/Scripts/GameSystem/AppSettings.cs
  28. 2
      Assets/Scripts/GameSystem/InputControls.cs
  29. 4
      Assets/Scripts/GameSystem/RaceManager.cs
  30. 29
      Assets/Scripts/GameSystem/DefaultVolume.cs
  31. 2
      Packages/com.verasl.water-system/Shaders/WaterInput.hlsl
  32. 2
      Packages/com.verasl.water-system/Shaders/GerstnerWaves.hlsl
  33. 4
      Packages/com.verasl.water-system/Shaders/WaterLighting.hlsl
  34. 29
      Packages/com.verasl.water-system/Shaders/WaterCommon.hlsl
  35. 13
      Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs
  36. 2
      Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs.meta
  37. 58
      Packages/com.verasl.water-system/Scripts/Water.cs
  38. 19
      Packages/manifest.json
  39. 4
      ProjectSettings/ProjectVersion.txt
  40. 2
      ProjectSettings/ProjectSettings.asset
  41. 8
      Assets/AddressableAssetsData/AnalyzeData.meta
  42. 23
      Assets/AddressableAssetsData/AnalyzeData/AnalyzeRuleData.asset
  43. 8
      Assets/AddressableAssetsData/AnalyzeData/AnalyzeRuleData.asset.meta
  44. 50
      Assets/Scripts/GameSystem/VolumeHolder.cs
  45. 11
      Assets/Scripts/GameSystem/VolumeHolder.cs.meta

2
Assets/Data/DiscoverAsset.asset


EnableShowAtStartup: 1
PreferenceName: Discover
Title: Welcome to the Boat Attack demo project!
Description: 'This demo makes use of the Universal Render Pipeline and is deisgned
Description: 'This demo makes use of the Universal Render Pipeline and is designed
to showcase and display examples of how to use some of the features included
with Universal RP and other exciting features available in Unity.

22
Assets/Data/WaterSurfaceData.asset


_waterMaxVisibility: 20
_absorptionRamp:
serializedVersion: 2
key0: {r: 0.8117647, g: 1, b: 1, a: 1}
key1: {r: 0.13510147, g: 0.8679245, b: 0.8679245, a: 1}
key2: {r: 0.021626905, g: 0.49048996, b: 0.509434, a: 0}
key3: {r: 0, g: 0.275, b: 0.44, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 0.8117647, g: 1, b: 1, a: 1}
key2: {r: 0.13510147, g: 0.8679245, b: 0.8679245, a: 0}
key3: {r: 0.021626905, g: 0.49048996, b: 0.509434, a: 0}
key4: {r: 0, g: 0.275, b: 0.44, a: 0}
ctime1: 2338
ctime2: 16925
ctime3: 34547
ctime4: 65535
ctime5: 0
ctime1: 488
ctime2: 2338
ctime3: 16925
ctime4: 34547
ctime5: 65535
ctime6: 0
ctime7: 0
atime0: 0

atime6: 0
atime7: 0
m_Mode: 0
m_NumColorKeys: 5
m_NumColorKeys: 6
m_NumAlphaKeys: 2
_scatterRamp:
serializedVersion: 2

60
Assets/Objects/Levels/Island/Lighting.prefab


m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 0
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_FarClip: 200
m_FarClip: 1800
m_ShadowDistance: 0
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}

9
Assets/Objects/Levels/main_menu/MainMenuLevel.prefab


m_Name:
m_EditorClassIdentifier:
computeOverride: 1
_bakedDepthTex: {fileID: 2800000, guid: 93bf4e51726633144823e135b668c836, type: 3}
_depthTex: {fileID: 0}
bakedDepthTex: {fileID: 0}
_waves:
- amplitude: 0.22704089
direction: -88.46054

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_Mode: 0
m_Resolution: 64
m_Resolution: 128
m_UpdateFrequency: 0
m_BoxSize: {x: 66.135086, y: 100, z: 48.24503}
m_BoxOffset: {x: -10.163631, y: 0, z: -2.0956554}

m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.9269918, b: 0.7688679, a: 1}
m_Intensity: 3
m_Intensity: 4
m_Range: 39.903427
m_SpotAngle: 59.46183
m_InnerSpotAngle: 44.63453

6
Assets/Objects/environment/Clouds/Clouds.fbx.meta


useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 2
tangentImportMode: 2
normalImportMode: 1
tangentImportMode: 3
blendShapeNormalImportMode: 2
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 0

66
Assets/Shaders/CheckpointShader.shadergraph
文件差异内容过多而无法显示
查看文件

172
Assets/Shaders/Clouds/CloudShader.shadergraph
文件差异内容过多而无法显示
查看文件

8
Assets/Shaders/Skybox-Procedural-Universal.shader


v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
VertexPositionInputs vertexPositions = GetVertexPositionInputs(v.vertex.xyz);
OUT.pos = vertexPositions.positionCS;

float far = 0.0;
half3 cIn, cOut;
Light mainLight = GetMainLight();
if(eyeRay.y >= 0.0)

half4 frag (v2f IN) : SV_Target
{
half3 col = half3(0.0, 0.0, 0.0);
Light mainLight = GetMainLight();
// if y > 1 [eyeRay.y < -SKY_GROUND_THRESHOLD] - ground

col = LINEAR_2_OUTPUT(col);
#endif
return half4(clamp(col, 0, 100),1.0);
return half4(clamp(col, 0, 25),1.0);
}
ENDHLSL

316
Assets/scenes/_levels/level_Island/LightingData.asset
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-0.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-2.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-3.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-4.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-5.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-6.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-7.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-8.exr
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/_levels/level_Island/ReflectionProbe-9.exr
文件差异内容过多而无法显示
查看文件

16
Assets/scenes/main_menu.unity


- target: {fileID: 1297213354555609066, guid: 56de8e58d1a974ab880e61b104d7ef98,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -19.999939
value: -20
objectReference: {fileID: 0}
- target: {fileID: 2396697376959644701, guid: 56de8e58d1a974ab880e61b104d7ef98,
type: 3}

- target: {fileID: 5222232652279626277, guid: 56de8e58d1a974ab880e61b104d7ef98,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -19.999939
value: -20
value: -19.999939
value: -20
objectReference: {fileID: 0}
- target: {fileID: 6677724032156829380, guid: 56de8e58d1a974ab880e61b104d7ef98,
type: 3}

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 434892290919181806, guid: 705cc40ed7b2348689ba68fd4bc915b3,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.8951791
objectReference: {fileID: 0}
- target: {fileID: 434892290919181806, guid: 705cc40ed7b2348689ba68fd4bc915b3,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.44570655
objectReference: {fileID: 0}
- target: {fileID: 1390411985989647940, guid: 705cc40ed7b2348689ba68fd4bc915b3,
type: 3}
propertyPath: m_Enabled

50
Assets/scenes/main_menu/LightingData.asset
文件差异内容过多而无法显示
查看文件

1001
Assets/scenes/main_menu/ReflectionProbe-0.exr
文件差异内容过多而无法显示
查看文件

2
Assets/AddressableAssetsData/AddressableAssetSettings.asset


m_EditorClassIdentifier:
m_DefaultGroup: ae971df5c2b654af9a3670c7d1a6fc27
m_BuildRemoteCatalog: 0
m_DisableCatalogUpdateOnStart: 0
m_UniqueBundleIds: 0
m_RemoteCatalogBuildPath:
m_Id:
m_RemoteCatalogLoadPath:

5
Assets/AddressableAssetsData/AssetGroups/Boats.asset


m_Address: boat_interceptor
m_ReadOnly: 0
m_SerializedLabels: []
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
- {fileID: 11400000, guid: bc2167b1f2e9b4211a429e5d529f1ad2, type: 2}
- {fileID: 11400000, guid: f90379dea328142bf93afc91e8ebcd50, type: 2}

13
Assets/AddressableAssetsData/AssetGroups/UI.asset


m_Address: ui_race
m_ReadOnly: 0
m_SerializedLabels: []
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
- {fileID: 11400000, guid: 549ce4310d854418694c99a18134d909, type: 2}

7
Assets/AddressableAssetsData/AssetGroups/Utility.asset


m_Address: camera
m_ReadOnly: 0
m_SerializedLabels: []
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_mainAssetType: UnityEngine.GameObject, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
- {fileID: 11400000, guid: 7e2d3ae3439284aa8aa7e2de2000ac0d, type: 2}

20
Assets/AddressableAssetsData/OSX/addressables_content_state.bin


���� PUnity.Addressables.Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null<UnityEditor.AddressableAssets.Build.AddressablesContentState playerVersion editorVersion cachedInfosremoteCatalogLoadPath6UnityEditor.AddressableAssets.Build.CachedAssetState[]2020.01.21.20.35.11
2019.3.0f5 4UnityEditor.AddressableAssets.Build.CachedAssetState  
       4UnityEditor.AddressableAssets.Build.CachedAssetStateasset dependencies.UnityEditor.AddressableAssets.Build.AssetState0UnityEditor.AddressableAssets.Build.AssetState[] BUnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null MUnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null����.UnityEditor.AddressableAssets.Build.AssetStateguidhashUnityEditor.GUIDUnityEngine.Hash128����UnityEditor.GUIDm_Value0m_Value1m_Value2m_Value35����I$��]�{�R�����UnityEngine.Hash128m_u32_0m_u32_1m_u32_2m_u32_3#�Qn-*�ɓ���h� �����������������9�jyK�����0P2��������� {_)Si�o����,֨  ����������������ME�0dD-�C������������ 7�������O�S #
����������������Ŵ\�H���Q�� ����������р
���c1�hx�<8 ' ����������������}(
%�G���A �����������������m����,* + ����������������@(��{�N}�4zG����������������H\���͟�� / ����������������q�2g�DC��@��1aĸ��������0��q·M(ˏ���f�� 3����������������C[L�LC��,�}re�������������T���.���,� 7�����������������2[L�FW��eZ=�'g��������1F �B�,9��o��" ;���������������� ��(wM>��i���������������4 _m�r_߾�5 ?����������������m����M0��@�h/�����������6��\�Ơk�R C����������������� �bmL"�S�pw}����������u�":�K;ߑ)Sz_�` G�����������������o9�LD��+���{�?��������E\x��r�������hp� K����������������L�� I���l�z��`���������������O�)R� ��� O�������������������:C����Իw�������� ����Wp��Ъ S.UnityEditor.AddressableAssets.Build.AssetState����������������zI?���G���Om������������� ��eIBB�!hN�����������������xG�vE��>� %5�q���������i����"!�-�"j0����������������'�^��~D�k�:�ն����������KC>�;�ͧ�D'�no�.UnityEditor.AddressableAssets.Build.AssetState�������������������/u�J��Gy�E�6����������yxWK�i��T|���������������������ZJ-�FK�E��"���������ed~p�o��V~wئ������������������~�1M�����G������������3%�@f]�FHQ�Ye�����������������p�̐�M�)P`��U��������+u��i�Y��<G�� $D# .UnityEditor.AddressableAssets.Build.AssetState����������������qRQ�&�G��u��Z����������og��V����A�%�����������������ҋtE������+���������o�r�(���Z-�����������������p7��xB����![F��������/ɯL��E�s�S�G4@������������������o9�LD��+���{�?��������E\x��r�������hp�����������������YH���@�9J��������������/���x�Q ��h?������������������}�I��sC��ng�X���������ޮ߭О�0DZ����T�������������������U��M�>�]���������������#r<�v; �$�����������������y,��!́L�A@s^ӓ��������$���_k�X��������������~������� q�b֖A��{�/�}������� X�����D��nƺ�|�������{����������:C����Իwz������� ����Wp��Ъy�������x��������*�A3L�&�����w�������Q������!�T��ΗZ�v�������u���������E���7C��a�:�~bt�������eBނ�p��.��?�[�'.UnityEditor.AddressableAssets.Build.AssetStates�������r�������:&��%G�o?-��oqq��������oT]P �Ƒ��#1p�������o�������L�"��@ ���;g�n��������2��A7x�$���p�1m�������l��������l�B&Mџ��ee�>k�������p��Ͷw���t[�3j�������i�������JM@D��C������-5
h�������2�u[z~�)Jk]/r�]g�������f��������A�Q��G-����r��je�������s�DQ��Pb�G q�6d�������c���������h��~H�7~X�M-(b����������Y�h�?� ��-��a�������`�������O@tq�D��۔�i�_����������R�6oT��S���&^�������]�������rCt$I���>� �|\�������t@֬0 ���h-)�|�[�������Z���������&uheG,��ŽT�!Y�������8�kRZ᚟d�?*���X�������W�������ʰ�~XgB�Aw�s��V��������g����S���m�7��U�������T��������G�� �E�M�Ӈd/�S�������g-���KS�>M��/T�R�������Q�������ӥ����MH�QN%�%j-P���������A���u�(Qr��&O�������N��������U�{C�z�d��M�������y/��8�*����kML�������K������� �R��ݾB�r�3_�g�J��������r��l/Hz ej��I�������H�������Tn5�{�N��*��F��G���������BF��8��>E��;tF�������E�������~�y�q�I���W�D��������`�؟����詣'Ǹ�C�������B�������ز{��ًM�b�b~$�A����������gь�<��[ĶG�@@�������?�������n��c��M��L����>�������A�"��~%���o��'=�������<��������Ty�}�J���WϔB];�������X�/�p�Pכ���$d�:�������9�������y���MvNלO~��srx8�������ӥ�c,���R(�7�������6��������N�� fK²^C��r��5�������sc1An-'%T���}���4�������3��������i6�o/J��� �2���������r\r��t�ױ��1�������0������������L�nr+�A �/�������3y4�>����ʁ$ax�.�������-��������p�̐�M�)P`��U,�������+u��i�Y��<G�� $D+�������*�������;���|MO��\ :���)�������e�6��E]�C��f(�������'���������(��F_���C�4��&���������׬U�x9\DQ5� +.UnityEditor.AddressableAssets.Build.AssetState%�������$��������<Y<�J��0p�#�������b=�IF*�{k�-����"�������!�������L�"��@ ���;g� ��������2��A7x�$���p�1���������������l�B&Mџ��ee�>�������p��Ͷw���t[�3���������������l�B���O�l���V�@���������� D){c<[�"�j��������������JM@D��C������-5
�������2�u[z~�)Jk]/r�]���������������A�Q��G-����r��j�������s�DQ��Pb�G q�6����������������h��~H�7~X�M-(����������Y�h�?� ��-����������������O@tq�D��۔�i�����������R�6oT��S���& ������� ���������&uheG,��ŽT�! �������8�kRZ᚟d�?*���
������� �������ʰ�~XgB�Aw�s����������g����S���m�7����������������ӥ����MH�QN%�%j-���������A���u�(Qr��&���������������U�{C�z�d���������y/��8�*����kM�������������� �R��ݾB�r�3_�g����������r��l/Hz ej������������������Tn5�{�N��*��F������������BF��8��>E��;t����������������~�y�q�I���W����������`�؟����詣'Ǹ�����������������ز{��ًM�b�b~$������������gь�<��[ĶG�@����������������n��c��M��L������������A�"��~%���o��'�����������������Ty�}�J���WϔB]��������X�/�p�Pכ���$d�����������������y�0�$��J��R�8���������
���@_�h�;S,�Ap��������������������- K��-J�����������������yn�d������������������y���MvNלO~��srx��������ӥ�c,���R(�����������������4����iI��B���!���������JʃL�@C��';�e�����������������i6�o/J��� �����������r\r��t�ױ�������������������p�̐�M�)P`��U��������+u��i�Y��<G�� $D����������������;���|MO��\ :�����������e�6��E]�C��f������������������(��F_���C�4������������׬U�x9\DQ5� /.UnityEditor.AddressableAssets.Build.AssetState�����������������M��I�kc@��g��������ր��ɰ3"Z������������������� $� o�K���ϋ������������`�W%��xD������������������x ��M�=;�?�����������h�C���~�姰�9�����������������#T�)g�LA�L�G0́��������p�:�D6���]��i�����������������dF�E֢��$A����������Yui��� �[gބ: ����������������>b�K�Ԃ�5Wag��W���������ոx�z%����J������������������g<)N��L�X��欪��������x��ː�S���H�d' ����������������1�&R1G��~;|�a��������L�'����@v:�u������������������~��o.��~{^��� ��������v �2��:� _�S*�������������������&�Zu��Hr����ز����������?��HQHw�.��F����������������)|�~D�O��tk�a�q���������TB�$�� ���4���������������������6�KD�X��C�{�����������vc���Y!��>�A��\��������������������۴D��sa~�p���������T�Wm�g hF�����������������������A����B��}'c{uW��������cY�=K\�|�yB.��������������������Әy*c��j.�� ����������������a;� zh/������������������������K��jQ�� ���������� ��
�{B�y���������������������F٣���L��f��/
���������{���lf%�\�i��+������������������-���¾��@�@��������5��BdG4%b�7O���A�����������������QQ�g^�`��"pI��#���������ވ�=��б�Oգ�����������������O����Ds�K��c�\����������!���Lu��Dh0y��������������������I@����g8`J�����������{As��{���â �����������������$��t L��0��a�����������;a�W�&��d�h��������������������S4W��Aܻ,�N��������؜5-f�ߗrђL��3 .UnityEditor.AddressableAssets.Build.AssetState�����������������M��I�kc@��g��������ր��ɰ3"Z��������������������x ��M�=;�?�����������h�C���~�姰�9�����������������>b�K�Ԃ�5Wag��W���������ոx�z%����J��������������������W��I櫀�h�������������� -��\
��Ɵ7�����������������SX��A���m��"]���������*�;�4g|�kW�~�����������������~��o.��~{^��� ��������v �2��:� _�S*��������������������6�KD�X��C�{��~��������vc���Y!��>�A��\}�������|���������-���¾��@�@{�������5��BdG4%b�7O���Az�������y�������O����Ds�K��c�\x���������!���Lu��Dh0yw�������v�����������I@����g8`Ju����������{As��{���â t�������s���������S4W��Aܻ,�Nr�������؜5-f�ߗrђL��q�������p�������-��(�N���) ajo�������n�%V�%._��>���7.UnityEditor.AddressableAssets.Build.AssetStaten�������m��������x ��M�=;�?��l��������h�C���~�姰�9�k�������j�������>b�K�Ԃ�5Wag��Wi��������ոx�z%����J��h�������g���������6�KD�X��C�{��f��������vc���Y!��>�A��\e�������d���������-���¾��@�@c�������5��BdG4%b�7O���Ab�������a�������O����Ds�K��c�\`���������!���Lu��Dh0y_�������^�����������I@����g8`J]����������{As��{���â \�������[�������h��m F��v!���Z�������j��sԺ5 }��TY(�FY�������X���������S4W��Aܻ,�NW�������؜5-f�ߗrђL��;
.UnityEditor.AddressableAssets.Build.AssetStateV�������U��������x ��M�=;�?��T��������h�C���~�姰�9�S�������R�������>b�K�Ԃ�5Wag��WQ��������ոx�z%����J��P�������O�������)|�~D�O��tk�a�q�N�������TB�$�� ���4���M�������L���������6�KD�X��C�{��K��������vc���Y!��>�A��\J�������I����������UQIS�)��\E�mH��������Ҋ�D�CrD�k��7�aG�������F�������F٣���L��f��/
E��������{���lf%�\�i��+D�������C���������-���¾��@�@B�������5��BdG4%b�7O���AA�������@�������O����Ds�K��c�\?���������!���Lu��Dh0y>�������=�����������I@����g8`J<����������{As��{���â ;�������:���������S4W��Aܻ,�N9�������؜5-f�ߗrђL��?.UnityEditor.AddressableAssets.Build.AssetState8�������7��������M��I�kc@��g6�������ր��ɰ3"Z���5�������4������� $� o�K���ϋ��3���������`�W%��xD�2�������1�������uCFI�����ƶ�r0������������ � �Dpwؘ/�������.��������x ��M�=;�?��-��������h�C���~�姰�9�,�������+��������mw�QG�QLc�l�*�������.���ܦ���v�,IX�`)�������(�������#T�)g�LA�L�G0́'�������p�:�D6���]��i�&�������%�������dF�E֢��$A��$�������Yui��� �[gބ: #�������"�������>b�K�Ԃ�5Wag��W!��������ոx�z%����J�� ��������������g<)N��L�X��欪�������x��ː�S���H�d' ��������������1�&R1G��~;|�a�������L�'����@v:�u����������������~��o.��~{^��� �������v �2��:� _�S*�����������������&�Zu��Hr����ز���������?��HQHw�.��F��������������)|�~D�O��tk�a�q��������TB�$�� ���4�������������������6�KD�X��C�{����������vc���Y!��>�A��\������� �����������۴D��sa~�p� �������T�Wm�g hF����� �������
��������E5�w�I��ңzZ}� ����������nh�����Doi� ����������������A����B��}'c{uW�������cY�=K\�|�yB.������������������Әy*c��j.�� ���������������a;� zh/����������������������K��jQ�� ��������� ��
�{B�y���������������������F٣���L��f��/
���������{���lf%�\�i��+������������������-���¾��@�@��������5��BdG4%b�7O���A�����������������QQ�g^�`��"pI��#���������ވ�=��б�Oգ�����������������O����Ds�K��c�\����������!���Lu��Dh0y��������������������I@����g8`J�����������{As��{���â �����������������$��t L��0��a�����������;a�W�&��d�h��������������������S4W��Aܻ,�N��������؜5-f�ߗrђL��C.UnityEditor.AddressableAssets.Build.AssetState�����������������x ��M�=;�?�����������h�C���~�姰�9�����������������)|�~D�O��tk�a�q���������TB�$�� ���4�������������������f|´��K��[9ˡj���������u���F�]K�~֒��G.UnityEditor.AddressableAssets.Build.AssetState�����������������ҋtE������+���������o�r�(���Z-����������������}�I��sC��ng�X���������ޮ߭О�0DZ����T�������������������U��M�>�]���������������#r<�v; �$�K.UnityEditor.AddressableAssets.Build.AssetState�����������������ҋtE������+���������o�r�(���Z-����������������}�I��sC��ng�X���������ޮ߭О�0DZ����T�������������������U��M�>�]���������������#r<�v; �$�����������������y,��!́L�A@s^ӓ��������$���_k�X�����������������������EXY�A��J���� �]��������@G\~�o5����@�I������������������E���7C��a�:�~b��������eBނ�p��.��?�[�O.UnityEditor.AddressableAssets.Build.AssetState����������������}�I��sC��ng�X���������ޮ߭О�0DZ����T����������������f?S���hH��m5��WF��������Ҵ����T�F������������������� q�b֖A��{�/��������� X�����D��nƺ�S.UnityEditor.AddressableAssets.Build.AssetState�����������������ҋtE������+���������o�r�(���Z-�����������������p7��xB����![F��������/ɯL��E�s�S�G4@�����������������}�I��sC��ng�X���������ޮ߭О�0DZ����T�������������������U��M�>�]���������������#r<�v; �$����������������� q�b֖A��{�/��������� X�����D��nƺ������������������*�A3L�&�������������Q������!�T��ΗZ�
���� PUnity.Addressables.Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null<UnityEditor.AddressableAssets.Build.AddressablesContentState playerVersion editorVersion cachedInfosremoteCatalogLoadPath6UnityEditor.AddressableAssets.Build.CachedAssetState[]2020.02.06.10.30.18
2019.3.0f6 4UnityEditor.AddressableAssets.Build.CachedAssetState

3
Assets/Scripts/GameSystem/AppSettings.cs


Instance = this;
Application.targetFrameRate = 300;
MainCamera = Camera.main;
StartCoroutine(LoadPrefab<GameObject>(volumeManager, new AsyncOperationHandle()));
if(DefaultVolume.Instance == null)
StartCoroutine(LoadPrefab<GameObject>(volumeManager, new AsyncOperationHandle()));
}
private void Start()

2
Assets/Scripts/GameSystem/InputControls.cs


public class @InputControls : IInputActionCollection, IDisposable
{
private InputActionAsset asset;
public InputActionAsset asset { get; }
public @InputControls()
{
asset = InputActionAsset.FromJson(@"{

4
Assets/Scripts/GameSystem/RaceManager.cs


private static IEnumerator CreatePlayerUi(int player)
{
var touch = Input.touchSupported && Input.multiTouchEnabled;
var touch = Input.touchSupported && Input.multiTouchEnabled &&
(Application.platform == RuntimePlatform.Android ||
Application.platform == RuntimePlatform.IPhonePlayer);
var uiAsset = touch ? Instance.raceUiTouchPrefab : Instance.raceUiPrefab;
var uiLoading = uiAsset.InstantiateAsync();
yield return uiLoading;

29
Assets/Scripts/GameSystem/DefaultVolume.cs


public AssetReference[] qualityVolumes;
private int _currentQualityLevel;
private void OnEnable()
private void Start()
{
if (!Instance)
{

}
else if(Instance != this)
{
Debug.Log($"Extra Volume Manager cleaned up. GUID:{gameObject.GetInstanceID()}");
if(UniversalRenderPipeline.asset.debugLevel != PipelineDebugLevel.Disabled)
Debug.Log($"Extra Volume Manager cleaned up. GUID:{gameObject.GetInstanceID()}");
#if UNITY_EDITOR
DestroyImmediate(gameObject);
return;

}
if (UniversalRenderPipeline.asset.debugLevel == PipelineDebugLevel.Disabled) return;
if (volBaseComponent.sharedProfile != null && volQualityComponent.sharedProfile != null)
if (volBaseComponent.sharedProfile && volQualityComponent.sharedProfile)
Debug.Log(message: $"Updated volumes:\n" +
Debug.Log(message: "Updated volumes:\n" +
$"Total Volume Stack is now:\n");
"Total Volume Stack is now:\n");
}
}

Debug.Log("Loading volumes in editor.");
if(UniversalRenderPipeline.asset.debugLevel != PipelineDebugLevel.Disabled)
Debug.Log("Loading volumes in editor.");
var assetRef = qualityVolumes[index];
var obj = assetRef.editorAsset;
volQualityComponent.sharedProfile = obj as VolumeProfile;

[InitializeOnLoad]
public class StartupVolume
{
private static GameObject vol;
private static GameObject _vol;
var thing = AssetDatabase.LoadAssetAtPath("Assets/Objects/misc/DefaultVolume.prefab", typeof(GameObject)) as GameObject;
Debug.Log($"Creating Volume Manager");
vol = Object.Instantiate(thing);
vol.hideFlags = HideFlags.HideAndDontSave;
EditorApplication.delayCall += () =>
{
var obj = AssetDatabase.LoadAssetAtPath("Assets/objects/misc/DefaultVolume.prefab", typeof(GameObject)) as GameObject;
if (obj == null) return;
if(UniversalRenderPipeline.asset.debugLevel != PipelineDebugLevel.Disabled)
Debug.Log($"Creating Volume Manager");
_vol = Object.Instantiate(obj);
_vol.hideFlags = HideFlags.HideAndDontSave;
};
}
}
#endif

2
Packages/com.verasl.water-system/Shaders/WaterInput.hlsl


half _MaxDepth;
half _MaxWaveHeight;
int _DebugPass;
half4 _depthCamZParams;
half4 _VeraslWater_DepthCamParams;
float4x4 _InvViewProjection;
// Screen Effects textures

2
Packages/com.verasl.water-system/Shaders/GerstnerWaves.hlsl


half3 wave = 0; // wave vector
half w = 6.28318 / wavelength; // 2pi over wavelength(hardcoded)
half wSpeed = sqrt(9.8 * w); // frequency of the wave based off wavelength
half peak = 1; // peak value, 1 is the sharpest peaks
half peak = 1.2; // peak value, 1 is the sharpest peaks
half qi = peak / (amplitude * w * _WaveCount);
direction = radians(direction); // convert the incoming degrees to radians, for directional waves

4
Packages/com.verasl.water-system/Shaders/WaterLighting.hlsl


half CalculateFresnelTerm(half3 normalWS, half3 viewDirectionWS)
{
return pow(1.0 - saturate(dot(normalWS, viewDirectionWS)), 5);//fresnel TODO - find a better place
return pow(1.0 - saturate(dot(normalWS, viewDirectionWS)), 10);//fresnel TODO - find a better place
}
///////////////////////////////////////////////////////////////////////////////

half3 viewNormal = mul(normalWS, (float3x3)GetWorldToViewMatrix()).xyz;
half3 reflectVector = reflect(-viewDir, viewNormal);
half2 reflectionUV = screenUV + normalWS.zx * half2(0.02, 0.15);
reflection += SAMPLE_TEXTURE2D_LOD(_PlanarReflectionTexture, sampler_ScreenTextures_linear_clamp, reflectionUV, 6 * roughness).rgb;//planar reflection
#endif

29
Packages/com.verasl.water-system/Shaders/WaterCommon.hlsl


return float2(d * additionalData.x - additionalData.y, (rawD * -_ProjectionParams.x) + (1-UNITY_REVERSED_Z));
}
float3 WaterDepth(float3 posWS, half2 texcoords, half4 additionalData, half2 screenUVs)// x = seafloor depth, y = water depth
float WaterTextureDepth(float3 posWS)
{
return (1 - SAMPLE_TEXTURE2D_LOD(_WaterDepthMap, sampler_WaterDepthMap_linear_clamp, posWS.xz * 0.002 + 0.5, 1).r) * (_MaxDepth + _VeraslWater_DepthCamParams.x) - _VeraslWater_DepthCamParams.x;
}
float3 WaterDepth(float3 posWS, half4 additionalData, half2 screenUVs)// x = seafloor depth, y = water depth
float wd = (1 - SAMPLE_TEXTURE2D_LOD(_WaterDepthMap, sampler_WaterDepthMap_linear_clamp, texcoords, 1).r) * 19.1;
outDepth.y = (wd - 3.5) + posWS.y;
float wd = WaterTextureDepth(posWS);
outDepth.y = wd + posWS.y;
return outDepth;
}

screenUV.xyz /= screenUV.w;
// shallows mask
half waterDepth = (1 - SAMPLE_TEXTURE2D_LOD(_WaterDepthMap, sampler_WaterDepthMap_linear_clamp, (input.posWS.xz * 0.002) + 0.5, 1).r) * 19.1;
waterDepth = waterDepth - 4.1;
input.posWS.y += saturate((1-waterDepth) * 0.6 - 0.5);
half waterDepth = WaterTextureDepth(input.posWS);
input.posWS.y += pow(saturate((-waterDepth + 1.5) * 0.4), 2);
SampleWaves(input.posWS, saturate((waterDepth * 0.25)) + 0.05, wave);
SampleWaves(input.posWS, saturate((waterDepth * 0.1 + 0.05)), wave);
input.normal = wave.normal.xzy;
input.posWS += wave.position;

half4 waterFX = SAMPLE_TEXTURE2D(_WaterFXMap, sampler_ScreenTextures_linear_clamp, IN.preWaveSP.xy);
// Depth
float3 depth = WaterDepth(IN.posWS, (IN.posWS.xz * 0.002) + 0.5, IN.additionalData, screenUV.xy);// TODO - hardcoded shore depth UVs
float3 depth = WaterDepth(IN.posWS, IN.additionalData, screenUV.xy);// TODO - hardcoded shore depth UVs
half depthEdge = saturate(depth.y * 20 + 1);
//return half4(0, frac(ceil(depth.y) / _MaxDepth), frac(IN.posWS.y), 1);
half depthMulti = 1 / _MaxDepth;
// Lighting

// Foam
half3 foamMap = SAMPLE_TEXTURE2D(_FoamMap, sampler_FoamMap, IN.uv.zw).rgb; //r=thick, g=medium, b=light
half waveFoam = saturate(IN.posWS.y + 0.5);
half edgeFoam = saturate(1 - depth.x * 0.5 - 0.25);
half waveFoam = 0;// saturate(IN.posWS.y + 0.5);
half edgeFoam = saturate(1 - depth.x * 0.5 - 0.25) * depthEdge;
half foamBlendMask = max(max(waveFoam, edgeFoam), waterFX.r * 2);// + IN.fogFactorNoise.y * 0.1; //max(max((foamMask + shoreMask) - IN.fogFactorNoise.y * 0.25, waterFX.r * 2), shoreWave);
half3 foamBlend = SAMPLE_TEXTURE2D(_AbsorptionScatteringRamp, sampler_AbsorptionScatteringRamp, half2(foamBlendMask, 0.66)).rgb;
half foamMask = saturate(length(foamMap * foamBlend) * 1.5 - 0.1 + saturate(1 - depth.x * 4) * 0.5);

// Fresnel
half fresnelTerm = CalculateFresnelTerm(IN.normal, IN.viewDir.xyz);
//return fresnelTerm.xxxx;
BRDFData brdfData;
InitializeBRDFData(half3(0, 0, 0), 0, half3(1, 1, 1), 0.9, 1, brdfData);

// Reflections
half3 reflection = SampleReflections(IN.normal, IN.viewDir.xyz, screenUV.xy, fresnelTerm, 0.0);
reflection = clamp(reflection + spec, 0, 1024);
reflection = clamp(reflection + spec, 0, 1024) * depthEdge;
// Refraction
half3 refraction = Refraction(distortion, depth.x, depthMulti);

13
Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs


class WaterFxPass : ScriptableRenderPass
{
private const string k_RenderWaterFXTag = "Render Water FX";
private ProfilingSampler m_WaterFX_Profile = new ProfilingSampler(k_RenderWaterFXTag);
private readonly ShaderTagId m_WaterFXShaderTag = new ShaderTagId("WaterFX");
private readonly Color m_ClearColor = new Color(0.0f, 0.5f, 0.5f, 0.5f); //r = foam mask, g = normal.x, b = normal.z, a = displacement
private FilteringSettings m_FilteringSettings;

public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
{
CommandBuffer cmd = CommandBufferPool.Get(k_RenderWaterFXTag);
using (new ProfilingSample(cmd, k_RenderWaterFXTag)) // makes sure we have profiling ability
using (new ProfilingScope(cmd, m_WaterFX_Profile)) // makes sure we have profiling ability
{
context.ExecuteCommandBuffer(cmd);
cmd.Clear();

class WaterCausticsPass : ScriptableRenderPass
{
private const string k_RenderWaterCausticsTag = "Render Water Caustics";
private ProfilingSampler m_WaterCaustics_Profile = new ProfilingSampler(k_RenderWaterCausticsTag);
public Material WaterCausticMaterial;
private static Mesh m_mesh;

return;
CommandBuffer cmd = CommandBufferPool.Get(k_RenderWaterCausticsTag);
using (new ProfilingSample(cmd, k_RenderWaterCausticsTag))
using (new ProfilingScope(cmd, m_WaterCaustics_Profile))
{
// Create mesh if needed
if (!m_mesh)

WaterCausticsPass m_CausticsPass;
public WaterSystemSettings settings = new WaterSystemSettings();
[SerializeField]
private Shader causticShader;
[SerializeField] private Shader causticShader;
private Material _causticMaterial;

m_CausticsPass = new WaterCausticsPass();
causticShader = causticShader ? causticShader : Shader.Find("Hidden/BoatAttack/Caustics");
if (causticShader == null) return;
_causticMaterial = _causticMaterial ? _causticMaterial : new Material(causticShader);
switch (settings.debug)

public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
renderer.EnqueuePass(m_WaterFxPass);
renderer.EnqueuePass(m_CausticsPass);
if(_causticMaterial == null)
renderer.EnqueuePass(m_CausticsPass);
}
/// <summary>

2
Packages/com.verasl.water-system/Scripts/Rendering/WaterSystemFeature.cs.meta


externalObjects: {}
serializedVersion: 2
defaultReferences:
- causticsMaterial: {fileID: 2100000, guid: 7e6ea000873112847bd146ddb78ac67d, type: 2}
- causticShader: {fileID: 4800000, guid: 90939d2e4b62841d29c136c866715501, type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:

58
Packages/com.verasl.water-system/Scripts/Water.cs


private static readonly int WaveDataBuffer = Shader.PropertyToID("_WaveDataBuffer");
private static readonly int WaveData = Shader.PropertyToID("waveData");
private static readonly int AbsorptionScatteringRamp = Shader.PropertyToID("_AbsorptionScatteringRamp");
private static readonly int DepthCamZParams = Shader.PropertyToID("_depthCamZParams");
private void OnValidate() { Init(); }
private static readonly int DepthCamZParams = Shader.PropertyToID("_VeraslWater_DepthCamParams");
private void OnEnable()
{

const float quantizeValue = 6.25f;
const float forwards = 10f;
const float yOffset = -0.25f;
gameObject.layer,
cam,
0,
null,
ShadowCastingMode.Off,
true,
gameObject.layer,
cam,
0,
null,
ShadowCastingMode.Off,
true,
null,
LightProbeUsage.Off,
null);

{
resources = Resources.Load("WaterResources") as WaterResources;
}
//CaptureDepthMap();
Invoke(nameof(CaptureDepthMap), 1.0f);
}
private void LateUpdate()

//Generate the camera
if(_depthCam == null)
{
GameObject go =
var go =
if (!_depthCam.TryGetComponent<UniversalAdditionalCameraData>(out var additionalCamData))
{
additionalCamData = _depthCam.gameObject.AddComponent(typeof(UniversalAdditionalCameraData)) as UniversalAdditionalCameraData;
}
var additionalCamData = _depthCam.GetUniversalAdditionalCameraData();
t.position = Vector3.up * 4f;//center the camera on this water plane
t.up = Vector3.forward;//face teh camera down
var depthExtra = 4.0f;
t.position = Vector3.up * (transform.position.y + depthExtra);//center the camera on this water plane height
t.up = Vector3.forward;//face the camera down
//_depthCam.depthTextureMode = DepthTextureMode.Depth;
_depthCam.nearClipPlane =0.1f;
_depthCam.farClipPlane = surfaceData._waterMaxVisibility;
_depthCam.nearClipPlane =0.01f;
_depthCam.farClipPlane = surfaceData._waterMaxVisibility + depthExtra;
_depthCam.allowHDR = false;
_depthCam.allowMSAA = false;
_depthCam.cullingMask = (1 << 10);

if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES2 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.OpenGLES3)
{
_depthTex.filterMode = FilterMode.Point;
_depthTex.wrapMode = TextureWrapMode.Clamp;
_depthTex.wrapMode = TextureWrapMode.Clamp;
_depthTex.name = "WaterDepthMap";
//do depth capture
_depthCam.targetTexture = _depthTex;

var n = _depthCam.nearClipPlane;
var f = _depthCam.farClipPlane;
var zParams = new Vector4(n, f, f / (f-n), f * n / (n-f));
var _params = new Vector4(t.position.y, 250, 0, 0);
Shader.SetGlobalVector(DepthCamZParams, zParams);
Shader.SetGlobalVector(DepthCamZParams, _params);
/* #if UNITY_EDITOR
Texture2D tex2D = new Texture2D(1024, 1024, TextureFormat.Alpha8, false);
Graphics.CopyTexture(_depthTex, tex2D);

_depthCam.enabled = false;
_depthCam.targetTexture = null;
}

19
Packages/manifest.json


{
"dependencies": {
"com.unity.2d.sprite": "1.0.0",
"com.unity.addressables": "1.1.10",
"com.unity.addressables": "1.6.0",
"com.unity.ide.rider": "1.1.4",
"com.unity.ide.vscode": "1.1.3",
"com.unity.inputsystem": "1.0.0-preview.3",
"com.unity.ide.rider": "1.2.1",
"com.unity.ide.visualstudio": "2.0.0",
"com.unity.ide.vscode": "1.1.4",
"com.unity.inputsystem": "1.0.0-preview.4",
"com.unity.memoryprofiler": "0.2.0-preview.1",
"com.unity.memoryprofiler": "0.2.1-preview.1",
"com.unity.render-pipelines.universal": "7.1.7",
"com.unity.terrain-tools": "2.0.2-preview",
"com.unity.textmeshpro": "2.1.0-preview.3",
"com.unity.timeline": "1.2.10",
"com.unity.render-pipelines.universal": "7.2.1",
"com.unity.terrain-tools": "3.0.1-preview",
"com.unity.textmeshpro": "2.1.0-preview.4",
"com.unity.timeline": "1.2.11",
"com.unity.ugui": "1.0.0",
"net.peeweek.gameplay-ingredients": "https://github.com/peeweek/net.peeweek.gameplay-ingredients.git#2019.3.0",
"com.unity.modules.ai": "1.0.0",

4
ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2019.3.0f5
m_EditorVersionWithRevision: 2019.3.0f5 (44796c9d3c2c)
m_EditorVersion: 2019.3.0f6
m_EditorVersionWithRevision: 2019.3.0f6 (27ab2135bccf)

2
ProjectSettings/ProjectSettings.asset


switchNVNShaderPoolsGranularity: 33554432
switchNVNDefaultPoolsGranularity: 16777216
switchNVNOtherPoolsGranularity: 16777216
vulkanNumSwapchainBuffers: 2
vulkanNumSwapchainBuffers: 3
vulkanEnableSetSRGBWrite: 0
m_SupportedAspectRatios:
4:3: 1

8
Assets/AddressableAssetsData/AnalyzeData.meta


fileFormatVersion: 2
guid: 81ea11251344448cb90ec0e47f127de8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

23
Assets/AddressableAssetsData/AnalyzeData/AnalyzeRuleData.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: abc77607c2a62ef48b8f7dec55cc6d91, type: 3}
m_Name: AnalyzeRuleData
m_EditorClassIdentifier:
m_RuleToResults:
- RuleName: Check Duplicate Bundle Dependencies
Results: []
- RuleName: Check Resources to Addressable Duplicate Dependencies
Results: []
- RuleName: Check Scene to Addressable Duplicate Dependencies
Results: []
- RuleName: Build Bundle Layout
Results: []

8
Assets/AddressableAssetsData/AnalyzeData/AnalyzeRuleData.asset.meta


fileFormatVersion: 2
guid: 497db4c173a744a768214e8ac93c2d40
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

50
Assets/Scripts/GameSystem/VolumeHolder.cs


using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Rendering;
using UnityEngine.Serialization;
[CreateAssetMenu(fileName = "VolumeHolder", menuName = "Volume Holder", order = 0)]
public class VolumeHolder : ScriptableObject
{
[SerializeField]
public AssetReference[] _Volumes;
[FormerlySerializedAs("qualityIndicies")] [SerializeField]
public List<int> qualityIndices = new List<int>();
[FormerlySerializedAs("qualityVolumeIndicies")] [SerializeField]
public List<int> qualityVolumeIndices = new List<int>();
public bool ContainsKey(int key)
{
return qualityIndices.Contains(key);
}
public void Add(int key, int value)
{
qualityIndices.Add(key);
qualityVolumeIndices.Add(value);
}
public void SetKey(int key, int value)
{
if (qualityIndices.Contains(key))
{
qualityVolumeIndices[qualityIndices.IndexOf(key)] = value;
}
else
{
Add(key, value);
}
}
public int GetValue(int key)
{
if (qualityIndices.Contains(key))
{
return qualityVolumeIndices[qualityIndices.IndexOf(key)];
}
throw new Exception(message: $"{qualityIndices} does not contain key {key}");
}
}

11
Assets/Scripts/GameSystem/VolumeHolder.cs.meta


fileFormatVersion: 2
guid: bea894b80a78a4f9a9d5210e78f59e3b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存