├── .editorconfig ├── .github └── FUNDING.yml ├── .gitignore ├── .vsconfig ├── Assets ├── Presets.meta ├── Presets │ ├── AudioCompressedInMemory.preset │ ├── AudioCompressedInMemory.preset.meta │ ├── AudioStreaming.preset │ ├── AudioStreaming.preset.meta │ ├── Defaults.meta │ ├── Defaults │ │ ├── AlbedoTexture_Default.preset │ │ ├── AlbedoTexture_Default.preset.meta │ │ ├── AudioDecompressOnLoad.preset │ │ ├── AudioDecompressOnLoad.preset.meta │ │ ├── DirectionalLight_Default.preset │ │ └── DirectionalLight_Default.preset.meta │ ├── NormalTexture.preset │ ├── NormalTexture.preset.meta │ ├── UtilityTexture.preset │ └── UtilityTexture.preset.meta ├── RiptideSteamTransport.meta ├── RiptideSteamTransport │ ├── Demos.meta │ ├── Demos │ │ ├── PlayerHosted.meta │ │ ├── PlayerHosted │ │ │ ├── PlayerHostedDemo.unity │ │ │ ├── PlayerHostedDemo.unity.meta │ │ │ ├── Prefabs.meta │ │ │ ├── Prefabs │ │ │ │ ├── LocalPlayer.prefab │ │ │ │ ├── LocalPlayer.prefab.meta │ │ │ │ ├── Player.prefab │ │ │ │ ├── Player.prefab.meta │ │ │ │ ├── ServerPlayer.prefab │ │ │ │ └── ServerPlayer.prefab.meta │ │ │ ├── Scripts.meta │ │ │ └── Scripts │ │ │ │ ├── LobbyManager.cs │ │ │ │ ├── LobbyManager.cs.meta │ │ │ │ ├── NetworkManager.cs │ │ │ │ ├── NetworkManager.cs.meta │ │ │ │ ├── Player.meta │ │ │ │ ├── Player │ │ │ │ ├── CameraController.cs │ │ │ │ ├── CameraController.cs.meta │ │ │ │ ├── ClientPlayer.cs │ │ │ │ ├── ClientPlayer.cs.meta │ │ │ │ ├── PlayerInput.cs │ │ │ │ ├── PlayerInput.cs.meta │ │ │ │ ├── PlayerMovement.cs │ │ │ │ ├── PlayerMovement.cs.meta │ │ │ │ ├── PlayerUIManager.cs │ │ │ │ ├── PlayerUIManager.cs.meta │ │ │ │ ├── ServerPlayer.cs │ │ │ │ └── ServerPlayer.cs.meta │ │ │ │ ├── UIManager.cs │ │ │ │ └── UIManager.cs.meta │ │ ├── SteamManager.cs │ │ └── SteamManager.cs.meta │ ├── Transport.meta │ └── Transport │ │ ├── .editorconfig │ │ ├── SteamClient.cs │ │ ├── SteamClient.cs.meta │ │ ├── SteamConnection.cs │ │ ├── SteamConnection.cs.meta │ │ ├── SteamPeer.cs │ │ ├── SteamPeer.cs.meta │ │ ├── SteamServer.cs │ │ └── SteamServer.cs.meta ├── Settings.meta └── Settings │ ├── ForwardRenderer.asset │ ├── ForwardRenderer.asset.meta │ ├── SampleSceneProfile.asset │ ├── SampleSceneProfile.asset.meta │ ├── UniversalRP-HighQuality.asset │ ├── UniversalRP-HighQuality.asset.meta │ ├── UniversalRP-LowQuality.asset │ ├── UniversalRP-LowQuality.asset.meta │ ├── UniversalRP-MediumQuality.asset │ └── UniversalRP-MediumQuality.asset.meta ├── LICENSE.md ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md └── steam_appid.txt /.editorconfig: -------------------------------------------------------------------------------- 1 | # You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference 2 | 3 | ############################### 4 | # Core EditorConfig Options # 5 | ############################### 6 | 7 | # Top-most EditorConfig file 8 | root = true 9 | 10 | # All files 11 | [*] 12 | indent_style = space 13 | 14 | # XML project files 15 | [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] 16 | indent_size = 2 17 | 18 | # XML config files 19 | [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] 20 | indent_size = 2 21 | 22 | # JSON files 23 | [*.json] 24 | indent_size = 4 25 | 26 | # C# code files 27 | [*.{cs,csx,vb,vbx}] 28 | indent_size = 4 29 | insert_final_newline = true 30 | charset = utf-8-bom 31 | 32 | ############################### 33 | # .NET Coding Conventions # 34 | ############################### 35 | [*.{cs,vb}] 36 | 37 | # Organize usings 38 | dotnet_sort_system_directives_first = false 39 | dotnet_separate_import_directive_groups = false 40 | 41 | # this. preferences 42 | dotnet_style_qualification_for_event = false:suggestion 43 | dotnet_style_qualification_for_property = false:suggestion 44 | dotnet_style_qualification_for_field = false:suggestion 45 | dotnet_style_qualification_for_method = false:suggestion 46 | 47 | # Prefer the language keyword instead of the type name for types that have a keyword to represent them 48 | dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion 49 | dotnet_style_predefined_type_for_member_access = true:suggestion 50 | 51 | # Modifier preferences 52 | dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion 53 | dotnet_style_readonly_field = true:suggestion 54 | 55 | # Expression-level preferences 56 | dotnet_style_object_initializer = true:suggestion 57 | dotnet_style_collection_initializer = true:suggestion 58 | dotnet_style_explicit_tuple_names = true:suggestion 59 | dotnet_style_null_propagation = true:suggestion 60 | dotnet_style_coalesce_expression = true:suggestion 61 | dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent 62 | dotnet_style_prefer_inferred_tuple_names = true:suggestion 63 | dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion 64 | dotnet_style_prefer_auto_properties = true:suggestion 65 | dotnet_style_prefer_conditional_expression_over_assignment = true:silent 66 | dotnet_style_prefer_conditional_expression_over_return = true:silent 67 | 68 | ############################### 69 | # Naming Conventions # 70 | ############################### 71 | 72 | # Style definitions 73 | dotnet_naming_style.pascal_case_style.capitalization = pascal_case 74 | dotnet_naming_style.camel_case_style.capitalization = camel_case 75 | 76 | # Constant fields should be PascalCase 77 | dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion 78 | dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields 79 | dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style 80 | dotnet_naming_symbols.constant_fields.applicable_kinds = field 81 | dotnet_naming_symbols.constant_fields.applicable_accessibilities = * 82 | dotnet_naming_symbols.constant_fields.required_modifiers = const 83 | 84 | # Non-private static fields should be PascalCase 85 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = suggestion 86 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields 87 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = pascal_case_style 88 | dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field 89 | dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, internal, protected_internal 90 | dotnet_naming_symbols.non_private_static_fields.required_modifiers = static 91 | 92 | # Non-private fields should be PascalCase 93 | dotnet_naming_rule.non_private_fields_should_be_pascal_case.severity = suggestion 94 | dotnet_naming_rule.non_private_fields_should_be_pascal_case.symbols = non_private_fields 95 | dotnet_naming_rule.non_private_fields_should_be_pascal_case.style = pascal_case_style 96 | dotnet_naming_symbols.non_private_fields.applicable_kinds = field 97 | dotnet_naming_symbols.non_private_fields.applicable_accessibilities = public, internal, protected_internal 98 | 99 | # Static fields should be camelCase 100 | dotnet_naming_rule.static_fields_should_be_camel_case.severity = suggestion 101 | dotnet_naming_rule.static_fields_should_be_camel_case.symbols = static_fields 102 | dotnet_naming_rule.static_fields_should_be_camel_case.style = camel_case_style 103 | dotnet_naming_symbols.static_fields.applicable_kinds = field 104 | dotnet_naming_symbols.static_fields.required_modifiers = static 105 | 106 | # Instance fields should be camelCase 107 | dotnet_naming_rule.instance_fields_should_be_camel_case.severity = none 108 | dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields 109 | dotnet_naming_rule.instance_fields_should_be_camel_case.style = camel_case_style 110 | dotnet_naming_symbols.instance_fields.applicable_kinds = field 111 | 112 | # Locals and parameters should be camelCase 113 | dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion 114 | dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters 115 | dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style 116 | dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local 117 | 118 | # Use PascalCase for everything else 119 | dotnet_naming_rule.default_should_be_pascal_case.severity = suggestion 120 | dotnet_naming_rule.default_should_be_pascal_case.symbols = default_for_everything_else 121 | dotnet_naming_rule.default_should_be_pascal_case.style = pascal_case_style 122 | dotnet_naming_symbols.default_for_everything_else.applicable_kinds = * 123 | 124 | ############################### 125 | # C# Coding Conventions # 126 | ############################### 127 | [*.cs] 128 | 129 | # var preferences 130 | csharp_style_var_for_built_in_types = false:silent 131 | csharp_style_var_when_type_is_apparent = false:silent 132 | csharp_style_var_elsewhere = false:silent 133 | 134 | # Expression-bodied members 135 | csharp_style_expression_bodied_methods = false:silent 136 | csharp_style_expression_bodied_constructors = false:silent 137 | csharp_style_expression_bodied_properties = true:suggestion 138 | csharp_style_expression_bodied_indexers = true:suggestion 139 | csharp_style_expression_bodied_accessors = true:suggestion 140 | 141 | # Pattern matching preferences 142 | csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion 143 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 144 | 145 | # Null-checking preferences 146 | csharp_style_throw_expression = true:suggestion 147 | csharp_style_conditional_delegate_call = true:suggestion 148 | 149 | # Modifier preferences 150 | csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion 151 | 152 | # Expression-level preferences 153 | csharp_prefer_braces = false:suggestion 154 | csharp_style_deconstructed_variable_declaration = true:suggestion 155 | csharp_prefer_simple_default_expression = true:suggestion 156 | csharp_style_pattern_local_over_anonymous_function = true:suggestion 157 | csharp_style_inlined_variable_declaration = true:suggestion 158 | 159 | ############################### 160 | # C# Formatting Rules # 161 | ############################### 162 | 163 | # New line preferences 164 | csharp_new_line_before_open_brace = all 165 | csharp_new_line_before_else = true 166 | csharp_new_line_before_catch = true 167 | csharp_new_line_before_finally = true 168 | csharp_new_line_before_members_in_object_initializers = false 169 | csharp_new_line_before_members_in_anonymous_types = false 170 | csharp_new_line_between_query_expression_clauses = true 171 | 172 | # Indentation preferences 173 | csharp_indent_block_contents = true 174 | csharp_indent_braces = false 175 | csharp_indent_case_contents = true 176 | csharp_indent_case_contents_when_block = true 177 | csharp_indent_switch_labels = true 178 | csharp_indent_labels = flush_left 179 | 180 | # Spacing preferences 181 | csharp_space_after_cast = false 182 | csharp_space_after_comma = true 183 | csharp_space_after_dot = false 184 | csharp_space_after_keywords_in_control_flow_statements = true 185 | csharp_space_after_semicolon_in_for_statement = true 186 | csharp_space_after_colon_in_inheritance_clause = true 187 | csharp_space_around_binary_operators = before_and_after 188 | csharp_space_around_declaration_statements = do_not_ignore 189 | csharp_space_before_colon_in_inheritance_clause = true 190 | csharp_space_before_comma = false 191 | csharp_space_before_dot = false 192 | csharp_space_before_open_square_brackets = false 193 | csharp_space_before_semicolon_in_for_statement = false 194 | csharp_space_between_method_call_empty_parameter_list_parentheses = false 195 | csharp_space_between_method_call_name_and_opening_parenthesis = false 196 | csharp_space_between_method_call_parameter_list_parentheses = false 197 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false 198 | csharp_space_between_method_declaration_name_and_open_parenthesis = false 199 | csharp_space_between_method_declaration_parameter_list_parentheses = false 200 | csharp_space_between_parentheses = false 201 | csharp_space_between_square_brackets = false 202 | 203 | # Wrapping preferences 204 | csharp_preserve_single_line_blocks = true 205 | csharp_preserve_single_line_statements = false -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: tom-weiland # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | 63 | # Crashlytics generated file 64 | crashlytics-build.properties 65 | 66 | # Packed Addressables 67 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 68 | 69 | # Temporary auto-generated Android Assets 70 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 71 | /[Aa]ssets/[Ss]treamingAssets/aa/* -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Assets/Presets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 558255460b74ec04fa70b5570e9327bd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioCompressedInMemory.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: AudioCompressedInMemory 9 | m_TargetType: 10 | m_NativeTypeID: 1020 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_ExternalObjects.Array.size 16 | value: 0 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_DefaultSettings.loadType 20 | value: 1 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_DefaultSettings.sampleRateSetting 24 | value: 0 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_DefaultSettings.sampleRateOverride 28 | value: 44100 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_DefaultSettings.compressionFormat 32 | value: 2 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_DefaultSettings.quality 36 | value: 0.7 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_DefaultSettings.conversionMode 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_PlatformSettingOverrides.Array.size 44 | value: 2 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_PlatformSettingOverrides.Array.data[0].first 48 | value: 4 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.loadType 52 | value: 1 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateSetting 56 | value: 0 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateOverride 60 | value: 44100 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.compressionFormat 64 | value: 3 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.quality 68 | value: 0.7 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.conversionMode 72 | value: 0 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_PlatformSettingOverrides.Array.data[1].first 76 | value: 7 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.loadType 80 | value: 1 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateSetting 84 | value: 0 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateOverride 88 | value: 44100 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.compressionFormat 92 | value: 1 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.quality 96 | value: 0.7 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.conversionMode 100 | value: 0 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_ForceToMono 104 | value: 0 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_Normalize 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_PreloadAudioData 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_LoadInBackground 116 | value: 0 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_Ambisonic 120 | value: 0 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_3D 124 | value: 1 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_UserData 128 | value: 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_AssetBundleName 132 | value: 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_AssetBundleVariant 136 | value: 137 | objectReference: {fileID: 0} 138 | -------------------------------------------------------------------------------- /Assets/Presets/AudioCompressedInMemory.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2dd802e4d37c65149922028d3e973832 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/AudioStreaming.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: AudioStreaming 9 | m_TargetType: 10 | m_NativeTypeID: 1020 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_ExternalObjects.Array.size 16 | value: 0 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_DefaultSettings.loadType 20 | value: 2 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_DefaultSettings.sampleRateSetting 24 | value: 0 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_DefaultSettings.sampleRateOverride 28 | value: 44100 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_DefaultSettings.compressionFormat 32 | value: 1 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_DefaultSettings.quality 36 | value: 0.7 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_DefaultSettings.conversionMode 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_PlatformSettingOverrides.Array.size 44 | value: 2 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_PlatformSettingOverrides.Array.data[0].first 48 | value: 4 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.loadType 52 | value: 2 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateSetting 56 | value: 0 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateOverride 60 | value: 44100 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.compressionFormat 64 | value: 3 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.quality 68 | value: 0.7 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.conversionMode 72 | value: 0 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_PlatformSettingOverrides.Array.data[1].first 76 | value: 7 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.loadType 80 | value: 2 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateSetting 84 | value: 0 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateOverride 88 | value: 44100 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.compressionFormat 92 | value: 1 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.quality 96 | value: 0.7 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.conversionMode 100 | value: 0 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_ForceToMono 104 | value: 0 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_Normalize 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_PreloadAudioData 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_LoadInBackground 116 | value: 0 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_Ambisonic 120 | value: 0 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_3D 124 | value: 1 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_UserData 128 | value: 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_AssetBundleName 132 | value: 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_AssetBundleVariant 136 | value: 137 | objectReference: {fileID: 0} 138 | -------------------------------------------------------------------------------- /Assets/Presets/AudioStreaming.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86bcce7f5575b54408aa0f3a7d321039 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71ea82b02df99c2439e0dc8e4e1ebc24 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AlbedoTexture_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8537455c6c08bd4e8bf0be3707da685 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AudioDecompressOnLoad.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: AudioDecompressOnLoad 9 | m_TargetType: 10 | m_NativeTypeID: 1020 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_ExternalObjects.Array.size 16 | value: 0 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_DefaultSettings.loadType 20 | value: 0 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_DefaultSettings.sampleRateSetting 24 | value: 0 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_DefaultSettings.sampleRateOverride 28 | value: 44100 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_DefaultSettings.compressionFormat 32 | value: 0 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_DefaultSettings.quality 36 | value: 1 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_DefaultSettings.conversionMode 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_PlatformSettingOverrides.Array.size 44 | value: 2 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_PlatformSettingOverrides.Array.data[0].first 48 | value: 4 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.loadType 52 | value: 0 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateSetting 56 | value: 0 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.sampleRateOverride 60 | value: 44100 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.compressionFormat 64 | value: 3 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.quality 68 | value: 1 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_PlatformSettingOverrides.Array.data[0].second.conversionMode 72 | value: 0 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_PlatformSettingOverrides.Array.data[1].first 76 | value: 7 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.loadType 80 | value: 0 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateSetting 84 | value: 0 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.sampleRateOverride 88 | value: 44100 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.compressionFormat 92 | value: 1 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.quality 96 | value: 1 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_PlatformSettingOverrides.Array.data[1].second.conversionMode 100 | value: 0 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_ForceToMono 104 | value: 0 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_Normalize 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_PreloadAudioData 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_LoadInBackground 116 | value: 0 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_Ambisonic 120 | value: 0 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_3D 124 | value: 1 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_UserData 128 | value: 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_AssetBundleName 132 | value: 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_AssetBundleVariant 136 | value: 137 | objectReference: {fileID: 0} 138 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/AudioDecompressOnLoad.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7689051185d12f4298e1ebb2693a29f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: DirectionalLight_Default 9 | m_TargetType: 10 | m_NativeTypeID: 108 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_Enabled 16 | value: 1 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_Type 20 | value: 1 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_Color.r 24 | value: 1 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_Color.g 28 | value: 0.95686275 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_Color.b 32 | value: 0.8392157 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_Color.a 36 | value: 1 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_Intensity 40 | value: 2 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_Range 44 | value: 10 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_SpotAngle 48 | value: 30 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_CookieSize 52 | value: 10 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_Shadows.m_Type 56 | value: 2 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_Shadows.m_Resolution 60 | value: -1 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_Shadows.m_CustomResolution 64 | value: -1 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_Shadows.m_Strength 68 | value: 1 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_Shadows.m_Bias 72 | value: 0.02 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_Shadows.m_NormalBias 76 | value: 0.1 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_Shadows.m_NearPlane 80 | value: 0.1 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_Cookie 84 | value: 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_DrawHalo 88 | value: 0 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_Flare 92 | value: 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_RenderMode 96 | value: 0 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_CullingMask.m_Bits 100 | value: 4294967295 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_Lightmapping 104 | value: 4 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_LightShadowCasterMode 108 | value: 0 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_AreaSize.x 112 | value: 1 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_AreaSize.y 116 | value: 1 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_BounceIntensity 120 | value: 1 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_ColorTemperature 124 | value: 6570 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_UseColorTemperature 128 | value: 0 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_ShadowRadius 132 | value: 0 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_ShadowAngle 136 | value: 0 137 | objectReference: {fileID: 0} 138 | -------------------------------------------------------------------------------- /Assets/Presets/Defaults/DirectionalLight_Default.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 463065d4f17d1d94d848aa127b94dd43 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/NormalTexture.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: NormalTexture 9 | m_TargetType: 10 | m_NativeTypeID: 1006 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_FileIDToRecycleName.Array.size 16 | value: 0 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_ExternalObjects.Array.size 20 | value: 0 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_MipMapMode 24 | value: 0 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_EnableMipMap 28 | value: 1 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_sRGBTexture 32 | value: 0 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_LinearTexture 36 | value: 0 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_FadeOut 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_BorderMipMap 44 | value: 0 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_MipMapsPreserveCoverage 48 | value: 0 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_AlphaTestReferenceValue 52 | value: 0.5 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_MipMapFadeDistanceStart 56 | value: 1 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_MipMapFadeDistanceEnd 60 | value: 3 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_ConvertToNormalMap 64 | value: 0 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_ExternalNormalMap 68 | value: 0 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_HeightScale 72 | value: 0.25 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_NormalMapFilter 76 | value: 0 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_IsReadable 80 | value: 0 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_StreamingMipmaps 84 | value: 0 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_StreamingMipmapsPriority 88 | value: 0 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_GrayScaleToAlpha 92 | value: 0 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_GenerateCubemap 96 | value: 6 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_CubemapConvolution 100 | value: 0 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_SeamlessCubemap 104 | value: 0 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_TextureFormat 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_MaxTextureSize 112 | value: 2048 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_TextureSettings.m_FilterMode 116 | value: 2 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_TextureSettings.m_Aniso 120 | value: 2 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_TextureSettings.m_MipBias 124 | value: -100 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_TextureSettings.m_WrapU 128 | value: -1 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_TextureSettings.m_WrapV 132 | value: -1 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_TextureSettings.m_WrapW 136 | value: -1 137 | objectReference: {fileID: 0} 138 | - target: {fileID: 0} 139 | propertyPath: m_NPOTScale 140 | value: 1 141 | objectReference: {fileID: 0} 142 | - target: {fileID: 0} 143 | propertyPath: m_Lightmap 144 | value: 0 145 | objectReference: {fileID: 0} 146 | - target: {fileID: 0} 147 | propertyPath: m_CompressionQuality 148 | value: 50 149 | objectReference: {fileID: 0} 150 | - target: {fileID: 0} 151 | propertyPath: m_SpriteMode 152 | value: 0 153 | objectReference: {fileID: 0} 154 | - target: {fileID: 0} 155 | propertyPath: m_SpriteExtrude 156 | value: 1 157 | objectReference: {fileID: 0} 158 | - target: {fileID: 0} 159 | propertyPath: m_SpriteMeshType 160 | value: 1 161 | objectReference: {fileID: 0} 162 | - target: {fileID: 0} 163 | propertyPath: m_Alignment 164 | value: 0 165 | objectReference: {fileID: 0} 166 | - target: {fileID: 0} 167 | propertyPath: m_SpritePivot.x 168 | value: 0.5 169 | objectReference: {fileID: 0} 170 | - target: {fileID: 0} 171 | propertyPath: m_SpritePivot.y 172 | value: 0.5 173 | objectReference: {fileID: 0} 174 | - target: {fileID: 0} 175 | propertyPath: m_SpritePixelsToUnits 176 | value: 100 177 | objectReference: {fileID: 0} 178 | - target: {fileID: 0} 179 | propertyPath: m_SpriteBorder.x 180 | value: 0 181 | objectReference: {fileID: 0} 182 | - target: {fileID: 0} 183 | propertyPath: m_SpriteBorder.y 184 | value: 0 185 | objectReference: {fileID: 0} 186 | - target: {fileID: 0} 187 | propertyPath: m_SpriteBorder.z 188 | value: 0 189 | objectReference: {fileID: 0} 190 | - target: {fileID: 0} 191 | propertyPath: m_SpriteBorder.w 192 | value: 0 193 | objectReference: {fileID: 0} 194 | - target: {fileID: 0} 195 | propertyPath: m_SpriteGenerateFallbackPhysicsShape 196 | value: 1 197 | objectReference: {fileID: 0} 198 | - target: {fileID: 0} 199 | propertyPath: m_AlphaUsage 200 | value: 1 201 | objectReference: {fileID: 0} 202 | - target: {fileID: 0} 203 | propertyPath: m_AlphaIsTransparency 204 | value: 0 205 | objectReference: {fileID: 0} 206 | - target: {fileID: 0} 207 | propertyPath: m_SpriteTessellationDetail 208 | value: -1 209 | objectReference: {fileID: 0} 210 | - target: {fileID: 0} 211 | propertyPath: m_TextureType 212 | value: 1 213 | objectReference: {fileID: 0} 214 | - target: {fileID: 0} 215 | propertyPath: m_TextureShape 216 | value: 1 217 | objectReference: {fileID: 0} 218 | - target: {fileID: 0} 219 | propertyPath: m_SingleChannelComponent 220 | value: 0 221 | objectReference: {fileID: 0} 222 | - target: {fileID: 0} 223 | propertyPath: m_MaxTextureSizeSet 224 | value: 0 225 | objectReference: {fileID: 0} 226 | - target: {fileID: 0} 227 | propertyPath: m_CompressionQualitySet 228 | value: 0 229 | objectReference: {fileID: 0} 230 | - target: {fileID: 0} 231 | propertyPath: m_TextureFormatSet 232 | value: 0 233 | objectReference: {fileID: 0} 234 | - target: {fileID: 0} 235 | propertyPath: m_PlatformSettings.Array.size 236 | value: 5 237 | objectReference: {fileID: 0} 238 | - target: {fileID: 0} 239 | propertyPath: m_PlatformSettings.Array.data[0].m_BuildTarget 240 | value: DefaultTexturePlatform 241 | objectReference: {fileID: 0} 242 | - target: {fileID: 0} 243 | propertyPath: m_PlatformSettings.Array.data[0].m_MaxTextureSize 244 | value: 8192 245 | objectReference: {fileID: 0} 246 | - target: {fileID: 0} 247 | propertyPath: m_PlatformSettings.Array.data[0].m_ResizeAlgorithm 248 | value: 0 249 | objectReference: {fileID: 0} 250 | - target: {fileID: 0} 251 | propertyPath: m_PlatformSettings.Array.data[0].m_TextureFormat 252 | value: -1 253 | objectReference: {fileID: 0} 254 | - target: {fileID: 0} 255 | propertyPath: m_PlatformSettings.Array.data[0].m_TextureCompression 256 | value: 1 257 | objectReference: {fileID: 0} 258 | - target: {fileID: 0} 259 | propertyPath: m_PlatformSettings.Array.data[0].m_CompressionQuality 260 | value: 50 261 | objectReference: {fileID: 0} 262 | - target: {fileID: 0} 263 | propertyPath: m_PlatformSettings.Array.data[0].m_CrunchedCompression 264 | value: 0 265 | objectReference: {fileID: 0} 266 | - target: {fileID: 0} 267 | propertyPath: m_PlatformSettings.Array.data[0].m_AllowsAlphaSplitting 268 | value: 0 269 | objectReference: {fileID: 0} 270 | - target: {fileID: 0} 271 | propertyPath: m_PlatformSettings.Array.data[0].m_Overridden 272 | value: 0 273 | objectReference: {fileID: 0} 274 | - target: {fileID: 0} 275 | propertyPath: m_PlatformSettings.Array.data[0].m_AndroidETC2FallbackOverride 276 | value: 0 277 | objectReference: {fileID: 0} 278 | - target: {fileID: 0} 279 | propertyPath: m_PlatformSettings.Array.data[1].m_BuildTarget 280 | value: Standalone 281 | objectReference: {fileID: 0} 282 | - target: {fileID: 0} 283 | propertyPath: m_PlatformSettings.Array.data[1].m_MaxTextureSize 284 | value: 8192 285 | objectReference: {fileID: 0} 286 | - target: {fileID: 0} 287 | propertyPath: m_PlatformSettings.Array.data[1].m_ResizeAlgorithm 288 | value: 0 289 | objectReference: {fileID: 0} 290 | - target: {fileID: 0} 291 | propertyPath: m_PlatformSettings.Array.data[1].m_TextureFormat 292 | value: -1 293 | objectReference: {fileID: 0} 294 | - target: {fileID: 0} 295 | propertyPath: m_PlatformSettings.Array.data[1].m_TextureCompression 296 | value: 1 297 | objectReference: {fileID: 0} 298 | - target: {fileID: 0} 299 | propertyPath: m_PlatformSettings.Array.data[1].m_CompressionQuality 300 | value: 50 301 | objectReference: {fileID: 0} 302 | - target: {fileID: 0} 303 | propertyPath: m_PlatformSettings.Array.data[1].m_CrunchedCompression 304 | value: 0 305 | objectReference: {fileID: 0} 306 | - target: {fileID: 0} 307 | propertyPath: m_PlatformSettings.Array.data[1].m_AllowsAlphaSplitting 308 | value: 0 309 | objectReference: {fileID: 0} 310 | - target: {fileID: 0} 311 | propertyPath: m_PlatformSettings.Array.data[1].m_Overridden 312 | value: 0 313 | objectReference: {fileID: 0} 314 | - target: {fileID: 0} 315 | propertyPath: m_PlatformSettings.Array.data[1].m_AndroidETC2FallbackOverride 316 | value: 0 317 | objectReference: {fileID: 0} 318 | - target: {fileID: 0} 319 | propertyPath: m_PlatformSettings.Array.data[2].m_BuildTarget 320 | value: iPhone 321 | objectReference: {fileID: 0} 322 | - target: {fileID: 0} 323 | propertyPath: m_PlatformSettings.Array.data[2].m_MaxTextureSize 324 | value: 8192 325 | objectReference: {fileID: 0} 326 | - target: {fileID: 0} 327 | propertyPath: m_PlatformSettings.Array.data[2].m_ResizeAlgorithm 328 | value: 0 329 | objectReference: {fileID: 0} 330 | - target: {fileID: 0} 331 | propertyPath: m_PlatformSettings.Array.data[2].m_TextureFormat 332 | value: -1 333 | objectReference: {fileID: 0} 334 | - target: {fileID: 0} 335 | propertyPath: m_PlatformSettings.Array.data[2].m_TextureCompression 336 | value: 1 337 | objectReference: {fileID: 0} 338 | - target: {fileID: 0} 339 | propertyPath: m_PlatformSettings.Array.data[2].m_CompressionQuality 340 | value: 50 341 | objectReference: {fileID: 0} 342 | - target: {fileID: 0} 343 | propertyPath: m_PlatformSettings.Array.data[2].m_CrunchedCompression 344 | value: 0 345 | objectReference: {fileID: 0} 346 | - target: {fileID: 0} 347 | propertyPath: m_PlatformSettings.Array.data[2].m_AllowsAlphaSplitting 348 | value: 0 349 | objectReference: {fileID: 0} 350 | - target: {fileID: 0} 351 | propertyPath: m_PlatformSettings.Array.data[2].m_Overridden 352 | value: 0 353 | objectReference: {fileID: 0} 354 | - target: {fileID: 0} 355 | propertyPath: m_PlatformSettings.Array.data[2].m_AndroidETC2FallbackOverride 356 | value: 0 357 | objectReference: {fileID: 0} 358 | - target: {fileID: 0} 359 | propertyPath: m_PlatformSettings.Array.data[3].m_BuildTarget 360 | value: Android 361 | objectReference: {fileID: 0} 362 | - target: {fileID: 0} 363 | propertyPath: m_PlatformSettings.Array.data[3].m_MaxTextureSize 364 | value: 8192 365 | objectReference: {fileID: 0} 366 | - target: {fileID: 0} 367 | propertyPath: m_PlatformSettings.Array.data[3].m_ResizeAlgorithm 368 | value: 0 369 | objectReference: {fileID: 0} 370 | - target: {fileID: 0} 371 | propertyPath: m_PlatformSettings.Array.data[3].m_TextureFormat 372 | value: -1 373 | objectReference: {fileID: 0} 374 | - target: {fileID: 0} 375 | propertyPath: m_PlatformSettings.Array.data[3].m_TextureCompression 376 | value: 1 377 | objectReference: {fileID: 0} 378 | - target: {fileID: 0} 379 | propertyPath: m_PlatformSettings.Array.data[3].m_CompressionQuality 380 | value: 50 381 | objectReference: {fileID: 0} 382 | - target: {fileID: 0} 383 | propertyPath: m_PlatformSettings.Array.data[3].m_CrunchedCompression 384 | value: 0 385 | objectReference: {fileID: 0} 386 | - target: {fileID: 0} 387 | propertyPath: m_PlatformSettings.Array.data[3].m_AllowsAlphaSplitting 388 | value: 0 389 | objectReference: {fileID: 0} 390 | - target: {fileID: 0} 391 | propertyPath: m_PlatformSettings.Array.data[3].m_Overridden 392 | value: 0 393 | objectReference: {fileID: 0} 394 | - target: {fileID: 0} 395 | propertyPath: m_PlatformSettings.Array.data[3].m_AndroidETC2FallbackOverride 396 | value: 0 397 | objectReference: {fileID: 0} 398 | - target: {fileID: 0} 399 | propertyPath: m_PlatformSettings.Array.data[4].m_BuildTarget 400 | value: Windows Store Apps 401 | objectReference: {fileID: 0} 402 | - target: {fileID: 0} 403 | propertyPath: m_PlatformSettings.Array.data[4].m_MaxTextureSize 404 | value: 8192 405 | objectReference: {fileID: 0} 406 | - target: {fileID: 0} 407 | propertyPath: m_PlatformSettings.Array.data[4].m_ResizeAlgorithm 408 | value: 0 409 | objectReference: {fileID: 0} 410 | - target: {fileID: 0} 411 | propertyPath: m_PlatformSettings.Array.data[4].m_TextureFormat 412 | value: -1 413 | objectReference: {fileID: 0} 414 | - target: {fileID: 0} 415 | propertyPath: m_PlatformSettings.Array.data[4].m_TextureCompression 416 | value: 1 417 | objectReference: {fileID: 0} 418 | - target: {fileID: 0} 419 | propertyPath: m_PlatformSettings.Array.data[4].m_CompressionQuality 420 | value: 50 421 | objectReference: {fileID: 0} 422 | - target: {fileID: 0} 423 | propertyPath: m_PlatformSettings.Array.data[4].m_CrunchedCompression 424 | value: 0 425 | objectReference: {fileID: 0} 426 | - target: {fileID: 0} 427 | propertyPath: m_PlatformSettings.Array.data[4].m_AllowsAlphaSplitting 428 | value: 0 429 | objectReference: {fileID: 0} 430 | - target: {fileID: 0} 431 | propertyPath: m_PlatformSettings.Array.data[4].m_Overridden 432 | value: 0 433 | objectReference: {fileID: 0} 434 | - target: {fileID: 0} 435 | propertyPath: m_PlatformSettings.Array.data[4].m_AndroidETC2FallbackOverride 436 | value: 0 437 | objectReference: {fileID: 0} 438 | - target: {fileID: 0} 439 | propertyPath: m_SpriteSheet.m_Sprites.Array.size 440 | value: 0 441 | objectReference: {fileID: 0} 442 | - target: {fileID: 0} 443 | propertyPath: m_SpriteSheet.m_Outline.Array.size 444 | value: 0 445 | objectReference: {fileID: 0} 446 | - target: {fileID: 0} 447 | propertyPath: m_SpriteSheet.m_PhysicsShape.Array.size 448 | value: 0 449 | objectReference: {fileID: 0} 450 | - target: {fileID: 0} 451 | propertyPath: m_SpriteSheet.m_Bones.Array.size 452 | value: 0 453 | objectReference: {fileID: 0} 454 | - target: {fileID: 0} 455 | propertyPath: m_SpriteSheet.m_SpriteID 456 | value: 457 | objectReference: {fileID: 0} 458 | - target: {fileID: 0} 459 | propertyPath: m_SpriteSheet.m_Vertices.Array.size 460 | value: 0 461 | objectReference: {fileID: 0} 462 | - target: {fileID: 0} 463 | propertyPath: m_SpriteSheet.m_Indices.Array.size 464 | value: 0 465 | objectReference: {fileID: 0} 466 | - target: {fileID: 0} 467 | propertyPath: m_SpriteSheet.m_Edges.Array.size 468 | value: 0 469 | objectReference: {fileID: 0} 470 | - target: {fileID: 0} 471 | propertyPath: m_SpriteSheet.m_Weights.Array.size 472 | value: 0 473 | objectReference: {fileID: 0} 474 | - target: {fileID: 0} 475 | propertyPath: m_SpritePackingTag 476 | value: 477 | objectReference: {fileID: 0} 478 | - target: {fileID: 0} 479 | propertyPath: m_PSDRemoveMatte 480 | value: 0 481 | objectReference: {fileID: 0} 482 | - target: {fileID: 0} 483 | propertyPath: m_PSDShowRemoveMatteOption 484 | value: 0 485 | objectReference: {fileID: 0} 486 | - target: {fileID: 0} 487 | propertyPath: m_UserData 488 | value: 489 | objectReference: {fileID: 0} 490 | - target: {fileID: 0} 491 | propertyPath: m_AssetBundleName 492 | value: 493 | objectReference: {fileID: 0} 494 | - target: {fileID: 0} 495 | propertyPath: m_AssetBundleVariant 496 | value: 497 | objectReference: {fileID: 0} 498 | -------------------------------------------------------------------------------- /Assets/Presets/NormalTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14a57cf3b9fa1c74b884aa7e0dcf1faa 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Presets/UtilityTexture.preset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!181963792 &2655988077585873504 4 | Preset: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: UtilityTexture 9 | m_TargetType: 10 | m_NativeTypeID: 1006 11 | m_ManagedTypePPtr: {fileID: 0} 12 | m_ManagedTypeFallback: 13 | m_Properties: 14 | - target: {fileID: 0} 15 | propertyPath: m_FileIDToRecycleName.Array.size 16 | value: 0 17 | objectReference: {fileID: 0} 18 | - target: {fileID: 0} 19 | propertyPath: m_ExternalObjects.Array.size 20 | value: 0 21 | objectReference: {fileID: 0} 22 | - target: {fileID: 0} 23 | propertyPath: m_MipMapMode 24 | value: 0 25 | objectReference: {fileID: 0} 26 | - target: {fileID: 0} 27 | propertyPath: m_EnableMipMap 28 | value: 0 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 0} 31 | propertyPath: m_sRGBTexture 32 | value: 0 33 | objectReference: {fileID: 0} 34 | - target: {fileID: 0} 35 | propertyPath: m_LinearTexture 36 | value: 0 37 | objectReference: {fileID: 0} 38 | - target: {fileID: 0} 39 | propertyPath: m_FadeOut 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 0} 43 | propertyPath: m_BorderMipMap 44 | value: 0 45 | objectReference: {fileID: 0} 46 | - target: {fileID: 0} 47 | propertyPath: m_MipMapsPreserveCoverage 48 | value: 0 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 0} 51 | propertyPath: m_AlphaTestReferenceValue 52 | value: 0.5 53 | objectReference: {fileID: 0} 54 | - target: {fileID: 0} 55 | propertyPath: m_MipMapFadeDistanceStart 56 | value: 1 57 | objectReference: {fileID: 0} 58 | - target: {fileID: 0} 59 | propertyPath: m_MipMapFadeDistanceEnd 60 | value: 3 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 0} 63 | propertyPath: m_ConvertToNormalMap 64 | value: 0 65 | objectReference: {fileID: 0} 66 | - target: {fileID: 0} 67 | propertyPath: m_ExternalNormalMap 68 | value: 0 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 0} 71 | propertyPath: m_HeightScale 72 | value: 0.25 73 | objectReference: {fileID: 0} 74 | - target: {fileID: 0} 75 | propertyPath: m_NormalMapFilter 76 | value: 0 77 | objectReference: {fileID: 0} 78 | - target: {fileID: 0} 79 | propertyPath: m_IsReadable 80 | value: 1 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 0} 83 | propertyPath: m_StreamingMipmaps 84 | value: 0 85 | objectReference: {fileID: 0} 86 | - target: {fileID: 0} 87 | propertyPath: m_StreamingMipmapsPriority 88 | value: 0 89 | objectReference: {fileID: 0} 90 | - target: {fileID: 0} 91 | propertyPath: m_GrayScaleToAlpha 92 | value: 0 93 | objectReference: {fileID: 0} 94 | - target: {fileID: 0} 95 | propertyPath: m_GenerateCubemap 96 | value: 6 97 | objectReference: {fileID: 0} 98 | - target: {fileID: 0} 99 | propertyPath: m_CubemapConvolution 100 | value: 0 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 0} 103 | propertyPath: m_SeamlessCubemap 104 | value: 0 105 | objectReference: {fileID: 0} 106 | - target: {fileID: 0} 107 | propertyPath: m_TextureFormat 108 | value: 1 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 0} 111 | propertyPath: m_MaxTextureSize 112 | value: 2048 113 | objectReference: {fileID: 0} 114 | - target: {fileID: 0} 115 | propertyPath: m_TextureSettings.m_FilterMode 116 | value: 1 117 | objectReference: {fileID: 0} 118 | - target: {fileID: 0} 119 | propertyPath: m_TextureSettings.m_Aniso 120 | value: -1 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 0} 123 | propertyPath: m_TextureSettings.m_MipBias 124 | value: -1 125 | objectReference: {fileID: 0} 126 | - target: {fileID: 0} 127 | propertyPath: m_TextureSettings.m_WrapU 128 | value: 1 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 0} 131 | propertyPath: m_TextureSettings.m_WrapV 132 | value: 1 133 | objectReference: {fileID: 0} 134 | - target: {fileID: 0} 135 | propertyPath: m_TextureSettings.m_WrapW 136 | value: 1 137 | objectReference: {fileID: 0} 138 | - target: {fileID: 0} 139 | propertyPath: m_NPOTScale 140 | value: 1 141 | objectReference: {fileID: 0} 142 | - target: {fileID: 0} 143 | propertyPath: m_Lightmap 144 | value: 0 145 | objectReference: {fileID: 0} 146 | - target: {fileID: 0} 147 | propertyPath: m_CompressionQuality 148 | value: 50 149 | objectReference: {fileID: 0} 150 | - target: {fileID: 0} 151 | propertyPath: m_SpriteMode 152 | value: 0 153 | objectReference: {fileID: 0} 154 | - target: {fileID: 0} 155 | propertyPath: m_SpriteExtrude 156 | value: 1 157 | objectReference: {fileID: 0} 158 | - target: {fileID: 0} 159 | propertyPath: m_SpriteMeshType 160 | value: 1 161 | objectReference: {fileID: 0} 162 | - target: {fileID: 0} 163 | propertyPath: m_Alignment 164 | value: 0 165 | objectReference: {fileID: 0} 166 | - target: {fileID: 0} 167 | propertyPath: m_SpritePivot.x 168 | value: 0.5 169 | objectReference: {fileID: 0} 170 | - target: {fileID: 0} 171 | propertyPath: m_SpritePivot.y 172 | value: 0.5 173 | objectReference: {fileID: 0} 174 | - target: {fileID: 0} 175 | propertyPath: m_SpritePixelsToUnits 176 | value: 100 177 | objectReference: {fileID: 0} 178 | - target: {fileID: 0} 179 | propertyPath: m_SpriteBorder.x 180 | value: 0 181 | objectReference: {fileID: 0} 182 | - target: {fileID: 0} 183 | propertyPath: m_SpriteBorder.y 184 | value: 0 185 | objectReference: {fileID: 0} 186 | - target: {fileID: 0} 187 | propertyPath: m_SpriteBorder.z 188 | value: 0 189 | objectReference: {fileID: 0} 190 | - target: {fileID: 0} 191 | propertyPath: m_SpriteBorder.w 192 | value: 0 193 | objectReference: {fileID: 0} 194 | - target: {fileID: 0} 195 | propertyPath: m_SpriteGenerateFallbackPhysicsShape 196 | value: 1 197 | objectReference: {fileID: 0} 198 | - target: {fileID: 0} 199 | propertyPath: m_AlphaUsage 200 | value: 1 201 | objectReference: {fileID: 0} 202 | - target: {fileID: 0} 203 | propertyPath: m_AlphaIsTransparency 204 | value: 0 205 | objectReference: {fileID: 0} 206 | - target: {fileID: 0} 207 | propertyPath: m_SpriteTessellationDetail 208 | value: -1 209 | objectReference: {fileID: 0} 210 | - target: {fileID: 0} 211 | propertyPath: m_TextureType 212 | value: 0 213 | objectReference: {fileID: 0} 214 | - target: {fileID: 0} 215 | propertyPath: m_TextureShape 216 | value: 1 217 | objectReference: {fileID: 0} 218 | - target: {fileID: 0} 219 | propertyPath: m_SingleChannelComponent 220 | value: 0 221 | objectReference: {fileID: 0} 222 | - target: {fileID: 0} 223 | propertyPath: m_MaxTextureSizeSet 224 | value: 0 225 | objectReference: {fileID: 0} 226 | - target: {fileID: 0} 227 | propertyPath: m_CompressionQualitySet 228 | value: 0 229 | objectReference: {fileID: 0} 230 | - target: {fileID: 0} 231 | propertyPath: m_TextureFormatSet 232 | value: 0 233 | objectReference: {fileID: 0} 234 | - target: {fileID: 0} 235 | propertyPath: m_PlatformSettings.Array.size 236 | value: 5 237 | objectReference: {fileID: 0} 238 | - target: {fileID: 0} 239 | propertyPath: m_PlatformSettings.Array.data[0].m_BuildTarget 240 | value: DefaultTexturePlatform 241 | objectReference: {fileID: 0} 242 | - target: {fileID: 0} 243 | propertyPath: m_PlatformSettings.Array.data[0].m_MaxTextureSize 244 | value: 8192 245 | objectReference: {fileID: 0} 246 | - target: {fileID: 0} 247 | propertyPath: m_PlatformSettings.Array.data[0].m_ResizeAlgorithm 248 | value: 0 249 | objectReference: {fileID: 0} 250 | - target: {fileID: 0} 251 | propertyPath: m_PlatformSettings.Array.data[0].m_TextureFormat 252 | value: -1 253 | objectReference: {fileID: 0} 254 | - target: {fileID: 0} 255 | propertyPath: m_PlatformSettings.Array.data[0].m_TextureCompression 256 | value: 1 257 | objectReference: {fileID: 0} 258 | - target: {fileID: 0} 259 | propertyPath: m_PlatformSettings.Array.data[0].m_CompressionQuality 260 | value: 50 261 | objectReference: {fileID: 0} 262 | - target: {fileID: 0} 263 | propertyPath: m_PlatformSettings.Array.data[0].m_CrunchedCompression 264 | value: 0 265 | objectReference: {fileID: 0} 266 | - target: {fileID: 0} 267 | propertyPath: m_PlatformSettings.Array.data[0].m_AllowsAlphaSplitting 268 | value: 0 269 | objectReference: {fileID: 0} 270 | - target: {fileID: 0} 271 | propertyPath: m_PlatformSettings.Array.data[0].m_Overridden 272 | value: 0 273 | objectReference: {fileID: 0} 274 | - target: {fileID: 0} 275 | propertyPath: m_PlatformSettings.Array.data[0].m_AndroidETC2FallbackOverride 276 | value: 0 277 | objectReference: {fileID: 0} 278 | - target: {fileID: 0} 279 | propertyPath: m_PlatformSettings.Array.data[1].m_BuildTarget 280 | value: Standalone 281 | objectReference: {fileID: 0} 282 | - target: {fileID: 0} 283 | propertyPath: m_PlatformSettings.Array.data[1].m_MaxTextureSize 284 | value: 8192 285 | objectReference: {fileID: 0} 286 | - target: {fileID: 0} 287 | propertyPath: m_PlatformSettings.Array.data[1].m_ResizeAlgorithm 288 | value: 0 289 | objectReference: {fileID: 0} 290 | - target: {fileID: 0} 291 | propertyPath: m_PlatformSettings.Array.data[1].m_TextureFormat 292 | value: -1 293 | objectReference: {fileID: 0} 294 | - target: {fileID: 0} 295 | propertyPath: m_PlatformSettings.Array.data[1].m_TextureCompression 296 | value: 1 297 | objectReference: {fileID: 0} 298 | - target: {fileID: 0} 299 | propertyPath: m_PlatformSettings.Array.data[1].m_CompressionQuality 300 | value: 50 301 | objectReference: {fileID: 0} 302 | - target: {fileID: 0} 303 | propertyPath: m_PlatformSettings.Array.data[1].m_CrunchedCompression 304 | value: 0 305 | objectReference: {fileID: 0} 306 | - target: {fileID: 0} 307 | propertyPath: m_PlatformSettings.Array.data[1].m_AllowsAlphaSplitting 308 | value: 0 309 | objectReference: {fileID: 0} 310 | - target: {fileID: 0} 311 | propertyPath: m_PlatformSettings.Array.data[1].m_Overridden 312 | value: 0 313 | objectReference: {fileID: 0} 314 | - target: {fileID: 0} 315 | propertyPath: m_PlatformSettings.Array.data[1].m_AndroidETC2FallbackOverride 316 | value: 0 317 | objectReference: {fileID: 0} 318 | - target: {fileID: 0} 319 | propertyPath: m_PlatformSettings.Array.data[2].m_BuildTarget 320 | value: iPhone 321 | objectReference: {fileID: 0} 322 | - target: {fileID: 0} 323 | propertyPath: m_PlatformSettings.Array.data[2].m_MaxTextureSize 324 | value: 8192 325 | objectReference: {fileID: 0} 326 | - target: {fileID: 0} 327 | propertyPath: m_PlatformSettings.Array.data[2].m_ResizeAlgorithm 328 | value: 0 329 | objectReference: {fileID: 0} 330 | - target: {fileID: 0} 331 | propertyPath: m_PlatformSettings.Array.data[2].m_TextureFormat 332 | value: -1 333 | objectReference: {fileID: 0} 334 | - target: {fileID: 0} 335 | propertyPath: m_PlatformSettings.Array.data[2].m_TextureCompression 336 | value: 1 337 | objectReference: {fileID: 0} 338 | - target: {fileID: 0} 339 | propertyPath: m_PlatformSettings.Array.data[2].m_CompressionQuality 340 | value: 50 341 | objectReference: {fileID: 0} 342 | - target: {fileID: 0} 343 | propertyPath: m_PlatformSettings.Array.data[2].m_CrunchedCompression 344 | value: 0 345 | objectReference: {fileID: 0} 346 | - target: {fileID: 0} 347 | propertyPath: m_PlatformSettings.Array.data[2].m_AllowsAlphaSplitting 348 | value: 0 349 | objectReference: {fileID: 0} 350 | - target: {fileID: 0} 351 | propertyPath: m_PlatformSettings.Array.data[2].m_Overridden 352 | value: 0 353 | objectReference: {fileID: 0} 354 | - target: {fileID: 0} 355 | propertyPath: m_PlatformSettings.Array.data[2].m_AndroidETC2FallbackOverride 356 | value: 0 357 | objectReference: {fileID: 0} 358 | - target: {fileID: 0} 359 | propertyPath: m_PlatformSettings.Array.data[3].m_BuildTarget 360 | value: Android 361 | objectReference: {fileID: 0} 362 | - target: {fileID: 0} 363 | propertyPath: m_PlatformSettings.Array.data[3].m_MaxTextureSize 364 | value: 8192 365 | objectReference: {fileID: 0} 366 | - target: {fileID: 0} 367 | propertyPath: m_PlatformSettings.Array.data[3].m_ResizeAlgorithm 368 | value: 0 369 | objectReference: {fileID: 0} 370 | - target: {fileID: 0} 371 | propertyPath: m_PlatformSettings.Array.data[3].m_TextureFormat 372 | value: -1 373 | objectReference: {fileID: 0} 374 | - target: {fileID: 0} 375 | propertyPath: m_PlatformSettings.Array.data[3].m_TextureCompression 376 | value: 1 377 | objectReference: {fileID: 0} 378 | - target: {fileID: 0} 379 | propertyPath: m_PlatformSettings.Array.data[3].m_CompressionQuality 380 | value: 50 381 | objectReference: {fileID: 0} 382 | - target: {fileID: 0} 383 | propertyPath: m_PlatformSettings.Array.data[3].m_CrunchedCompression 384 | value: 0 385 | objectReference: {fileID: 0} 386 | - target: {fileID: 0} 387 | propertyPath: m_PlatformSettings.Array.data[3].m_AllowsAlphaSplitting 388 | value: 0 389 | objectReference: {fileID: 0} 390 | - target: {fileID: 0} 391 | propertyPath: m_PlatformSettings.Array.data[3].m_Overridden 392 | value: 0 393 | objectReference: {fileID: 0} 394 | - target: {fileID: 0} 395 | propertyPath: m_PlatformSettings.Array.data[3].m_AndroidETC2FallbackOverride 396 | value: 0 397 | objectReference: {fileID: 0} 398 | - target: {fileID: 0} 399 | propertyPath: m_PlatformSettings.Array.data[4].m_BuildTarget 400 | value: Windows Store Apps 401 | objectReference: {fileID: 0} 402 | - target: {fileID: 0} 403 | propertyPath: m_PlatformSettings.Array.data[4].m_MaxTextureSize 404 | value: 8192 405 | objectReference: {fileID: 0} 406 | - target: {fileID: 0} 407 | propertyPath: m_PlatformSettings.Array.data[4].m_ResizeAlgorithm 408 | value: 0 409 | objectReference: {fileID: 0} 410 | - target: {fileID: 0} 411 | propertyPath: m_PlatformSettings.Array.data[4].m_TextureFormat 412 | value: -1 413 | objectReference: {fileID: 0} 414 | - target: {fileID: 0} 415 | propertyPath: m_PlatformSettings.Array.data[4].m_TextureCompression 416 | value: 0 417 | objectReference: {fileID: 0} 418 | - target: {fileID: 0} 419 | propertyPath: m_PlatformSettings.Array.data[4].m_CompressionQuality 420 | value: 50 421 | objectReference: {fileID: 0} 422 | - target: {fileID: 0} 423 | propertyPath: m_PlatformSettings.Array.data[4].m_CrunchedCompression 424 | value: 0 425 | objectReference: {fileID: 0} 426 | - target: {fileID: 0} 427 | propertyPath: m_PlatformSettings.Array.data[4].m_AllowsAlphaSplitting 428 | value: 0 429 | objectReference: {fileID: 0} 430 | - target: {fileID: 0} 431 | propertyPath: m_PlatformSettings.Array.data[4].m_Overridden 432 | value: 0 433 | objectReference: {fileID: 0} 434 | - target: {fileID: 0} 435 | propertyPath: m_PlatformSettings.Array.data[4].m_AndroidETC2FallbackOverride 436 | value: 0 437 | objectReference: {fileID: 0} 438 | - target: {fileID: 0} 439 | propertyPath: m_SpriteSheet.m_Sprites.Array.size 440 | value: 0 441 | objectReference: {fileID: 0} 442 | - target: {fileID: 0} 443 | propertyPath: m_SpriteSheet.m_Outline.Array.size 444 | value: 0 445 | objectReference: {fileID: 0} 446 | - target: {fileID: 0} 447 | propertyPath: m_SpriteSheet.m_PhysicsShape.Array.size 448 | value: 0 449 | objectReference: {fileID: 0} 450 | - target: {fileID: 0} 451 | propertyPath: m_SpriteSheet.m_Bones.Array.size 452 | value: 0 453 | objectReference: {fileID: 0} 454 | - target: {fileID: 0} 455 | propertyPath: m_SpriteSheet.m_SpriteID 456 | value: 457 | objectReference: {fileID: 0} 458 | - target: {fileID: 0} 459 | propertyPath: m_SpriteSheet.m_Vertices.Array.size 460 | value: 0 461 | objectReference: {fileID: 0} 462 | - target: {fileID: 0} 463 | propertyPath: m_SpriteSheet.m_Indices.Array.size 464 | value: 0 465 | objectReference: {fileID: 0} 466 | - target: {fileID: 0} 467 | propertyPath: m_SpriteSheet.m_Edges.Array.size 468 | value: 0 469 | objectReference: {fileID: 0} 470 | - target: {fileID: 0} 471 | propertyPath: m_SpriteSheet.m_Weights.Array.size 472 | value: 0 473 | objectReference: {fileID: 0} 474 | - target: {fileID: 0} 475 | propertyPath: m_SpritePackingTag 476 | value: 477 | objectReference: {fileID: 0} 478 | - target: {fileID: 0} 479 | propertyPath: m_PSDRemoveMatte 480 | value: 0 481 | objectReference: {fileID: 0} 482 | - target: {fileID: 0} 483 | propertyPath: m_PSDShowRemoveMatteOption 484 | value: 0 485 | objectReference: {fileID: 0} 486 | - target: {fileID: 0} 487 | propertyPath: m_UserData 488 | value: 489 | objectReference: {fileID: 0} 490 | - target: {fileID: 0} 491 | propertyPath: m_AssetBundleName 492 | value: 493 | objectReference: {fileID: 0} 494 | - target: {fileID: 0} 495 | propertyPath: m_AssetBundleVariant 496 | value: 497 | objectReference: {fileID: 0} 498 | -------------------------------------------------------------------------------- /Assets/Presets/UtilityTexture.preset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45f7b2e3c78185248b3adbb14429c2ab 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2655988077585873504 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1efb778251d998c44aa908fd838ad12c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bc24125c60869c44b95e569c6b4b87d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 850e535928d661d4a8d3de58ae62e080 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/PlayerHostedDemo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1f9e043c5748144581d75a124ddb1d1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ee24b95215522f4db2a130c489204e7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/LocalPlayer.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &9086514983272037321 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: 9086514983272037320} 12 | - component: {fileID: 9086514983272037316} 13 | - component: {fileID: 9086514983272037317} 14 | - component: {fileID: 9086514983272037322} 15 | - component: {fileID: 9086514983272037323} 16 | m_Layer: 0 17 | m_Name: Camera 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &9086514983272037320 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 9086514983272037321} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 0, y: 0.7, z: 0} 32 | m_LocalScale: {x: 1, y: 1, z: 1} 33 | m_Children: [] 34 | m_Father: {fileID: 9086514984413201285} 35 | m_RootOrder: 0 36 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 37 | --- !u!20 &9086514983272037316 38 | Camera: 39 | m_ObjectHideFlags: 0 40 | m_CorrespondingSourceObject: {fileID: 0} 41 | m_PrefabInstance: {fileID: 0} 42 | m_PrefabAsset: {fileID: 0} 43 | m_GameObject: {fileID: 9086514983272037321} 44 | m_Enabled: 1 45 | serializedVersion: 2 46 | m_ClearFlags: 1 47 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 48 | m_projectionMatrixMode: 1 49 | m_GateFitMode: 2 50 | m_FOVAxisMode: 0 51 | m_SensorSize: {x: 36, y: 24} 52 | m_LensShift: {x: 0, y: 0} 53 | m_FocalLength: 50 54 | m_NormalizedViewPortRect: 55 | serializedVersion: 2 56 | x: 0 57 | y: 0 58 | width: 1 59 | height: 1 60 | near clip plane: 0.3 61 | far clip plane: 1000 62 | field of view: 60 63 | orthographic: 0 64 | orthographic size: 5 65 | m_Depth: 0 66 | m_CullingMask: 67 | serializedVersion: 2 68 | m_Bits: 4294967295 69 | m_RenderingPath: -1 70 | m_TargetTexture: {fileID: 0} 71 | m_TargetDisplay: 0 72 | m_TargetEye: 3 73 | m_HDR: 1 74 | m_AllowMSAA: 1 75 | m_AllowDynamicResolution: 0 76 | m_ForceIntoRT: 0 77 | m_OcclusionCulling: 1 78 | m_StereoConvergence: 10 79 | m_StereoSeparation: 0.022 80 | --- !u!81 &9086514983272037317 81 | AudioListener: 82 | m_ObjectHideFlags: 0 83 | m_CorrespondingSourceObject: {fileID: 0} 84 | m_PrefabInstance: {fileID: 0} 85 | m_PrefabAsset: {fileID: 0} 86 | m_GameObject: {fileID: 9086514983272037321} 87 | m_Enabled: 1 88 | --- !u!114 &9086514983272037322 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 9086514983272037321} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | m_RenderShadows: 1 101 | m_RequiresDepthTextureOption: 2 102 | m_RequiresOpaqueTextureOption: 2 103 | m_CameraType: 0 104 | m_Cameras: [] 105 | m_RendererIndex: -1 106 | m_VolumeLayerMask: 107 | serializedVersion: 2 108 | m_Bits: 1 109 | m_VolumeTrigger: {fileID: 0} 110 | m_RenderPostProcessing: 0 111 | m_Antialiasing: 0 112 | m_AntialiasingQuality: 2 113 | m_StopNaN: 0 114 | m_Dithering: 0 115 | m_ClearDepth: 1 116 | m_AllowXRRendering: 1 117 | m_RequiresDepthTexture: 0 118 | m_RequiresColorTexture: 0 119 | m_Version: 2 120 | --- !u!114 &9086514983272037323 121 | MonoBehaviour: 122 | m_ObjectHideFlags: 0 123 | m_CorrespondingSourceObject: {fileID: 0} 124 | m_PrefabInstance: {fileID: 0} 125 | m_PrefabAsset: {fileID: 0} 126 | m_GameObject: {fileID: 9086514983272037321} 127 | m_Enabled: 1 128 | m_EditorHideFlags: 0 129 | m_Script: {fileID: 11500000, guid: 5a09e78728fff3441b779d09e33ed01b, type: 3} 130 | m_Name: 131 | m_EditorClassIdentifier: 132 | player: {fileID: 1253308537254834247} 133 | sensitivity: 1.5 134 | clampAngle: 85 135 | --- !u!1 &9086514984413201294 136 | GameObject: 137 | m_ObjectHideFlags: 0 138 | m_CorrespondingSourceObject: {fileID: 0} 139 | m_PrefabInstance: {fileID: 0} 140 | m_PrefabAsset: {fileID: 0} 141 | serializedVersion: 6 142 | m_Component: 143 | - component: {fileID: 9086514984413201285} 144 | - component: {fileID: 9086514984413201290} 145 | - component: {fileID: 9086514984413201291} 146 | - component: {fileID: 1253308537254834247} 147 | - component: {fileID: 9086514984413201289} 148 | m_Layer: 0 149 | m_Name: LocalPlayer 150 | m_TagString: Untagged 151 | m_Icon: {fileID: 0} 152 | m_NavMeshLayer: 0 153 | m_StaticEditorFlags: 0 154 | m_IsActive: 1 155 | --- !u!4 &9086514984413201285 156 | Transform: 157 | m_ObjectHideFlags: 0 158 | m_CorrespondingSourceObject: {fileID: 0} 159 | m_PrefabInstance: {fileID: 0} 160 | m_PrefabAsset: {fileID: 0} 161 | m_GameObject: {fileID: 9086514984413201294} 162 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 163 | m_LocalPosition: {x: 0, y: 0, z: 0} 164 | m_LocalScale: {x: 1, y: 1, z: 1} 165 | m_Children: 166 | - {fileID: 9086514983272037320} 167 | m_Father: {fileID: 0} 168 | m_RootOrder: 0 169 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 170 | --- !u!33 &9086514984413201290 171 | MeshFilter: 172 | m_ObjectHideFlags: 0 173 | m_CorrespondingSourceObject: {fileID: 0} 174 | m_PrefabInstance: {fileID: 0} 175 | m_PrefabAsset: {fileID: 0} 176 | m_GameObject: {fileID: 9086514984413201294} 177 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 178 | --- !u!23 &9086514984413201291 179 | MeshRenderer: 180 | m_ObjectHideFlags: 0 181 | m_CorrespondingSourceObject: {fileID: 0} 182 | m_PrefabInstance: {fileID: 0} 183 | m_PrefabAsset: {fileID: 0} 184 | m_GameObject: {fileID: 9086514984413201294} 185 | m_Enabled: 1 186 | m_CastShadows: 1 187 | m_ReceiveShadows: 1 188 | m_DynamicOccludee: 1 189 | m_MotionVectors: 1 190 | m_LightProbeUsage: 1 191 | m_ReflectionProbeUsage: 1 192 | m_RayTracingMode: 2 193 | m_RayTraceProcedural: 0 194 | m_RenderingLayerMask: 1 195 | m_RendererPriority: 0 196 | m_Materials: 197 | - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} 198 | m_StaticBatchInfo: 199 | firstSubMesh: 0 200 | subMeshCount: 0 201 | m_StaticBatchRoot: {fileID: 0} 202 | m_ProbeAnchor: {fileID: 0} 203 | m_LightProbeVolumeOverride: {fileID: 0} 204 | m_ScaleInLightmap: 1 205 | m_ReceiveGI: 1 206 | m_PreserveUVs: 0 207 | m_IgnoreNormalsForChartDetection: 0 208 | m_ImportantGI: 0 209 | m_StitchLightmapSeams: 1 210 | m_SelectedEditorRenderState: 3 211 | m_MinimumChartSize: 4 212 | m_AutoUVMaxDistance: 0.5 213 | m_AutoUVMaxAngle: 89 214 | m_LightmapParameters: {fileID: 0} 215 | m_SortingLayerID: 0 216 | m_SortingLayer: 0 217 | m_SortingOrder: 0 218 | m_AdditionalVertexStreams: {fileID: 0} 219 | --- !u!114 &1253308537254834247 220 | MonoBehaviour: 221 | m_ObjectHideFlags: 0 222 | m_CorrespondingSourceObject: {fileID: 0} 223 | m_PrefabInstance: {fileID: 0} 224 | m_PrefabAsset: {fileID: 0} 225 | m_GameObject: {fileID: 9086514984413201294} 226 | m_Enabled: 1 227 | m_EditorHideFlags: 0 228 | m_Script: {fileID: 11500000, guid: 88e644e1d2b90414a968c7931fb60bf9, type: 3} 229 | m_Name: 230 | m_EditorClassIdentifier: 231 | id: 0 232 | username: 233 | --- !u!114 &9086514984413201289 234 | MonoBehaviour: 235 | m_ObjectHideFlags: 0 236 | m_CorrespondingSourceObject: {fileID: 0} 237 | m_PrefabInstance: {fileID: 0} 238 | m_PrefabAsset: {fileID: 0} 239 | m_GameObject: {fileID: 9086514984413201294} 240 | m_Enabled: 1 241 | m_EditorHideFlags: 0 242 | m_Script: {fileID: 11500000, guid: 4a4e4a71097e71248acab4507d7dec28, type: 3} 243 | m_Name: 244 | m_EditorClassIdentifier: 245 | camTransform: {fileID: 9086514983272037320} 246 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/LocalPlayer.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a2b46d9af4d6ea42a6a0c69e9c6d860 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/Player.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &2208247352977293879 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: 6950739779104851623} 12 | - component: {fileID: 1658231697045743900} 13 | - component: {fileID: 1650009439996896082} 14 | - component: {fileID: 9026349940657517391} 15 | - component: {fileID: 40372994729832653} 16 | m_Layer: 5 17 | m_Name: Canvas 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!224 &6950739779104851623 24 | RectTransform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 2208247352977293879} 30 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 31 | m_LocalPosition: {x: 0, y: 0, z: 0} 32 | m_LocalScale: {x: 0.01, y: 0.01, z: 1} 33 | m_Children: 34 | - {fileID: 8994331199469945932} 35 | m_Father: {fileID: 6296381778400844046} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | m_AnchorMin: {x: 0, y: 0} 39 | m_AnchorMax: {x: 0, y: 0} 40 | m_AnchoredPosition: {x: 0, y: 1.25} 41 | m_SizeDelta: {x: 240, y: 60} 42 | m_Pivot: {x: 0.5, y: 0.5} 43 | --- !u!223 &1658231697045743900 44 | Canvas: 45 | m_ObjectHideFlags: 0 46 | m_CorrespondingSourceObject: {fileID: 0} 47 | m_PrefabInstance: {fileID: 0} 48 | m_PrefabAsset: {fileID: 0} 49 | m_GameObject: {fileID: 2208247352977293879} 50 | m_Enabled: 1 51 | serializedVersion: 3 52 | m_RenderMode: 2 53 | m_Camera: {fileID: 0} 54 | m_PlaneDistance: 100 55 | m_PixelPerfect: 0 56 | m_ReceivesEvents: 1 57 | m_OverrideSorting: 0 58 | m_OverridePixelPerfect: 0 59 | m_SortingBucketNormalizedSize: 0 60 | m_AdditionalShaderChannelsFlag: 0 61 | m_SortingLayerID: 0 62 | m_SortingOrder: 0 63 | m_TargetDisplay: 0 64 | --- !u!114 &1650009439996896082 65 | MonoBehaviour: 66 | m_ObjectHideFlags: 0 67 | m_CorrespondingSourceObject: {fileID: 0} 68 | m_PrefabInstance: {fileID: 0} 69 | m_PrefabAsset: {fileID: 0} 70 | m_GameObject: {fileID: 2208247352977293879} 71 | m_Enabled: 1 72 | m_EditorHideFlags: 0 73 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 74 | m_Name: 75 | m_EditorClassIdentifier: 76 | m_UiScaleMode: 0 77 | m_ReferencePixelsPerUnit: 100 78 | m_ScaleFactor: 1 79 | m_ReferenceResolution: {x: 800, y: 600} 80 | m_ScreenMatchMode: 0 81 | m_MatchWidthOrHeight: 0 82 | m_PhysicalUnit: 3 83 | m_FallbackScreenDPI: 96 84 | m_DefaultSpriteDPI: 96 85 | m_DynamicPixelsPerUnit: 1 86 | m_PresetInfoIsWorld: 1 87 | --- !u!114 &9026349940657517391 88 | MonoBehaviour: 89 | m_ObjectHideFlags: 0 90 | m_CorrespondingSourceObject: {fileID: 0} 91 | m_PrefabInstance: {fileID: 0} 92 | m_PrefabAsset: {fileID: 0} 93 | m_GameObject: {fileID: 2208247352977293879} 94 | m_Enabled: 1 95 | m_EditorHideFlags: 0 96 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 97 | m_Name: 98 | m_EditorClassIdentifier: 99 | m_IgnoreReversedGraphics: 1 100 | m_BlockingObjects: 0 101 | m_BlockingMask: 102 | serializedVersion: 2 103 | m_Bits: 4294967295 104 | --- !u!114 &40372994729832653 105 | MonoBehaviour: 106 | m_ObjectHideFlags: 0 107 | m_CorrespondingSourceObject: {fileID: 0} 108 | m_PrefabInstance: {fileID: 0} 109 | m_PrefabAsset: {fileID: 0} 110 | m_GameObject: {fileID: 2208247352977293879} 111 | m_Enabled: 1 112 | m_EditorHideFlags: 0 113 | m_Script: {fileID: 11500000, guid: 1e9519be383d83d43b76576bfdb1896e, type: 3} 114 | m_Name: 115 | m_EditorClassIdentifier: 116 | usernameText: {fileID: 2434653561257851922} 117 | --- !u!1 &2383576053055539785 118 | GameObject: 119 | m_ObjectHideFlags: 0 120 | m_CorrespondingSourceObject: {fileID: 0} 121 | m_PrefabInstance: {fileID: 0} 122 | m_PrefabAsset: {fileID: 0} 123 | serializedVersion: 6 124 | m_Component: 125 | - component: {fileID: 8994331199469945932} 126 | - component: {fileID: 7513318010278504239} 127 | - component: {fileID: 2434653561257851922} 128 | m_Layer: 5 129 | m_Name: NameText 130 | m_TagString: Untagged 131 | m_Icon: {fileID: 0} 132 | m_NavMeshLayer: 0 133 | m_StaticEditorFlags: 0 134 | m_IsActive: 1 135 | --- !u!224 &8994331199469945932 136 | RectTransform: 137 | m_ObjectHideFlags: 0 138 | m_CorrespondingSourceObject: {fileID: 0} 139 | m_PrefabInstance: {fileID: 0} 140 | m_PrefabAsset: {fileID: 0} 141 | m_GameObject: {fileID: 2383576053055539785} 142 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 143 | m_LocalPosition: {x: 0, y: 0, z: 0} 144 | m_LocalScale: {x: 1, y: 1, z: 1} 145 | m_Children: [] 146 | m_Father: {fileID: 6950739779104851623} 147 | m_RootOrder: 0 148 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 149 | m_AnchorMin: {x: 0, y: 0} 150 | m_AnchorMax: {x: 1, y: 1} 151 | m_AnchoredPosition: {x: 0, y: 0} 152 | m_SizeDelta: {x: 0, y: 0} 153 | m_Pivot: {x: 0.5, y: 0.5} 154 | --- !u!222 &7513318010278504239 155 | CanvasRenderer: 156 | m_ObjectHideFlags: 0 157 | m_CorrespondingSourceObject: {fileID: 0} 158 | m_PrefabInstance: {fileID: 0} 159 | m_PrefabAsset: {fileID: 0} 160 | m_GameObject: {fileID: 2383576053055539785} 161 | m_CullTransparentMesh: 1 162 | --- !u!114 &2434653561257851922 163 | MonoBehaviour: 164 | m_ObjectHideFlags: 0 165 | m_CorrespondingSourceObject: {fileID: 0} 166 | m_PrefabInstance: {fileID: 0} 167 | m_PrefabAsset: {fileID: 0} 168 | m_GameObject: {fileID: 2383576053055539785} 169 | m_Enabled: 1 170 | m_EditorHideFlags: 0 171 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 172 | m_Name: 173 | m_EditorClassIdentifier: 174 | m_Material: {fileID: 0} 175 | m_Color: {r: 0.8669583, g: 1, b: 0.3820755, a: 1} 176 | m_RaycastTarget: 0 177 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 178 | m_Maskable: 1 179 | m_OnCullStateChanged: 180 | m_PersistentCalls: 181 | m_Calls: [] 182 | m_FontData: 183 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 184 | m_FontSize: 30 185 | m_FontStyle: 0 186 | m_BestFit: 0 187 | m_MinSize: 0 188 | m_MaxSize: 83 189 | m_Alignment: 4 190 | m_AlignByGeometry: 0 191 | m_RichText: 1 192 | m_HorizontalOverflow: 0 193 | m_VerticalOverflow: 0 194 | m_LineSpacing: 1 195 | m_Text: 196 | --- !u!1 &6296381778400844037 197 | GameObject: 198 | m_ObjectHideFlags: 0 199 | m_CorrespondingSourceObject: {fileID: 0} 200 | m_PrefabInstance: {fileID: 0} 201 | m_PrefabAsset: {fileID: 0} 202 | serializedVersion: 6 203 | m_Component: 204 | - component: {fileID: 6296381778400844046} 205 | - component: {fileID: 6296381778400844033} 206 | - component: {fileID: 6296381778400844032} 207 | - component: {fileID: 4043196292420889292} 208 | m_Layer: 0 209 | m_Name: Player 210 | m_TagString: Untagged 211 | m_Icon: {fileID: 0} 212 | m_NavMeshLayer: 0 213 | m_StaticEditorFlags: 0 214 | m_IsActive: 1 215 | --- !u!4 &6296381778400844046 216 | Transform: 217 | m_ObjectHideFlags: 0 218 | m_CorrespondingSourceObject: {fileID: 0} 219 | m_PrefabInstance: {fileID: 0} 220 | m_PrefabAsset: {fileID: 0} 221 | m_GameObject: {fileID: 6296381778400844037} 222 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 223 | m_LocalPosition: {x: 0, y: 0, z: 0} 224 | m_LocalScale: {x: 1, y: 1, z: 1} 225 | m_Children: 226 | - {fileID: 6950739779104851623} 227 | m_Father: {fileID: 0} 228 | m_RootOrder: 0 229 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 230 | --- !u!33 &6296381778400844033 231 | MeshFilter: 232 | m_ObjectHideFlags: 0 233 | m_CorrespondingSourceObject: {fileID: 0} 234 | m_PrefabInstance: {fileID: 0} 235 | m_PrefabAsset: {fileID: 0} 236 | m_GameObject: {fileID: 6296381778400844037} 237 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 238 | --- !u!23 &6296381778400844032 239 | MeshRenderer: 240 | m_ObjectHideFlags: 0 241 | m_CorrespondingSourceObject: {fileID: 0} 242 | m_PrefabInstance: {fileID: 0} 243 | m_PrefabAsset: {fileID: 0} 244 | m_GameObject: {fileID: 6296381778400844037} 245 | m_Enabled: 1 246 | m_CastShadows: 1 247 | m_ReceiveShadows: 1 248 | m_DynamicOccludee: 1 249 | m_MotionVectors: 1 250 | m_LightProbeUsage: 1 251 | m_ReflectionProbeUsage: 1 252 | m_RayTracingMode: 2 253 | m_RayTraceProcedural: 0 254 | m_RenderingLayerMask: 1 255 | m_RendererPriority: 0 256 | m_Materials: 257 | - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} 258 | m_StaticBatchInfo: 259 | firstSubMesh: 0 260 | subMeshCount: 0 261 | m_StaticBatchRoot: {fileID: 0} 262 | m_ProbeAnchor: {fileID: 0} 263 | m_LightProbeVolumeOverride: {fileID: 0} 264 | m_ScaleInLightmap: 1 265 | m_ReceiveGI: 1 266 | m_PreserveUVs: 0 267 | m_IgnoreNormalsForChartDetection: 0 268 | m_ImportantGI: 0 269 | m_StitchLightmapSeams: 1 270 | m_SelectedEditorRenderState: 3 271 | m_MinimumChartSize: 4 272 | m_AutoUVMaxDistance: 0.5 273 | m_AutoUVMaxAngle: 89 274 | m_LightmapParameters: {fileID: 0} 275 | m_SortingLayerID: 0 276 | m_SortingLayer: 0 277 | m_SortingOrder: 0 278 | m_AdditionalVertexStreams: {fileID: 0} 279 | --- !u!114 &4043196292420889292 280 | MonoBehaviour: 281 | m_ObjectHideFlags: 0 282 | m_CorrespondingSourceObject: {fileID: 0} 283 | m_PrefabInstance: {fileID: 0} 284 | m_PrefabAsset: {fileID: 0} 285 | m_GameObject: {fileID: 6296381778400844037} 286 | m_Enabled: 1 287 | m_EditorHideFlags: 0 288 | m_Script: {fileID: 11500000, guid: 88e644e1d2b90414a968c7931fb60bf9, type: 3} 289 | m_Name: 290 | m_EditorClassIdentifier: 291 | id: 0 292 | username: 293 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/Player.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a6a86990adef69479093350a83ee83e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/ServerPlayer.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &41682541033897874 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: 41682541033897881} 12 | - component: {fileID: 41682541033897876} 13 | - component: {fileID: 41682541033897877} 14 | - component: {fileID: 5658866567924812446} 15 | m_Layer: 0 16 | m_Name: ServerPlayer 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &41682541033897881 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: 41682541033897874} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!143 &41682541033897876 37 | CharacterController: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 41682541033897874} 43 | m_Material: {fileID: 0} 44 | m_IsTrigger: 0 45 | m_Enabled: 1 46 | serializedVersion: 2 47 | m_Height: 2 48 | m_Radius: 0.5 49 | m_SlopeLimit: 45 50 | m_StepOffset: 0.3 51 | m_SkinWidth: 0.08 52 | m_MinMoveDistance: 0.001 53 | m_Center: {x: 0, y: 0, z: 0} 54 | --- !u!114 &41682541033897877 55 | MonoBehaviour: 56 | m_ObjectHideFlags: 0 57 | m_CorrespondingSourceObject: {fileID: 0} 58 | m_PrefabInstance: {fileID: 0} 59 | m_PrefabAsset: {fileID: 0} 60 | m_GameObject: {fileID: 41682541033897874} 61 | m_Enabled: 1 62 | m_EditorHideFlags: 0 63 | m_Script: {fileID: 11500000, guid: 90c5b847eafb42b4880ec0b7c7dc47b8, type: 3} 64 | m_Name: 65 | m_EditorClassIdentifier: 66 | movement: {fileID: 5658866567924812446} 67 | --- !u!114 &5658866567924812446 68 | MonoBehaviour: 69 | m_ObjectHideFlags: 0 70 | m_CorrespondingSourceObject: {fileID: 0} 71 | m_PrefabInstance: {fileID: 0} 72 | m_PrefabAsset: {fileID: 0} 73 | m_GameObject: {fileID: 41682541033897874} 74 | m_Enabled: 1 75 | m_EditorHideFlags: 0 76 | m_Script: {fileID: 11500000, guid: 48160c2f37f89a24e90992c9bddfc749, type: 3} 77 | m_Name: 78 | m_EditorClassIdentifier: 79 | player: {fileID: 41682541033897877} 80 | controller: {fileID: 41682541033897876} 81 | gravity: -9.81 82 | moveSpeed: 5 83 | jumpSpeed: 5 84 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Prefabs/ServerPlayer.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f53c28d6b8a0b84c9dad1045e7b86a0 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f515bb2755e5f2f41a97334ef9ca2bd3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/LobbyManager.cs: -------------------------------------------------------------------------------- 1 | using Steamworks; 2 | using UnityEngine; 3 | 4 | namespace Riptide.Demos.Steam.PlayerHosted 5 | { 6 | public class LobbyManager : MonoBehaviour 7 | { 8 | private static LobbyManager _singleton; 9 | internal static LobbyManager Singleton 10 | { 11 | get => _singleton; 12 | private set 13 | { 14 | if (_singleton == null) 15 | _singleton = value; 16 | else if (_singleton != value) 17 | { 18 | Debug.Log($"{nameof(LobbyManager)} instance already exists, destroying object!"); 19 | Destroy(value); 20 | } 21 | } 22 | } 23 | 24 | protected Callback lobbyCreated; 25 | protected Callback gameLobbyJoinRequested; 26 | protected Callback lobbyEnter; 27 | 28 | private const string HostAddressKey = "HostAddress"; 29 | private CSteamID lobbyId; 30 | 31 | private void Awake() 32 | { 33 | Singleton = this; 34 | } 35 | 36 | private void Start() 37 | { 38 | if (!SteamManager.Initialized) 39 | { 40 | Debug.LogError("Steam is not initialized!"); 41 | return; 42 | } 43 | 44 | lobbyCreated = Callback.Create(OnLobbyCreated); 45 | gameLobbyJoinRequested = Callback.Create(OnGameLobbyJoinRequested); 46 | lobbyEnter = Callback.Create(OnLobbyEnter); 47 | } 48 | 49 | internal void CreateLobby() 50 | { 51 | SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypeFriendsOnly, 5); 52 | } 53 | 54 | private void OnLobbyCreated(LobbyCreated_t callback) 55 | { 56 | if (callback.m_eResult != EResult.k_EResultOK) 57 | { 58 | UIManager.Singleton.LobbyCreationFailed(); 59 | return; 60 | } 61 | 62 | lobbyId = new CSteamID(callback.m_ulSteamIDLobby); 63 | UIManager.Singleton.LobbyCreationSucceeded(callback.m_ulSteamIDLobby); 64 | 65 | NetworkManager.Singleton.Server.Start(0, 5, NetworkManager.PlayerHostedDemoMessageHandlerGroupId); 66 | NetworkManager.Singleton.Client.Connect("127.0.0.1", messageHandlerGroupId: NetworkManager.PlayerHostedDemoMessageHandlerGroupId); 67 | } 68 | 69 | internal void JoinLobby(ulong lobbyId) 70 | { 71 | SteamMatchmaking.JoinLobby(new CSteamID(lobbyId)); 72 | } 73 | 74 | private void OnGameLobbyJoinRequested(GameLobbyJoinRequested_t callback) 75 | { 76 | SteamMatchmaking.JoinLobby(callback.m_steamIDLobby); 77 | } 78 | 79 | private void OnLobbyEnter(LobbyEnter_t callback) 80 | { 81 | if (NetworkManager.Singleton.Server.IsRunning) 82 | return; 83 | 84 | lobbyId = new CSteamID(callback.m_ulSteamIDLobby); 85 | CSteamID hostId = SteamMatchmaking.GetLobbyOwner(lobbyId); 86 | 87 | NetworkManager.Singleton.Client.Connect(hostId.ToString(), messageHandlerGroupId: NetworkManager.PlayerHostedDemoMessageHandlerGroupId); 88 | UIManager.Singleton.LobbyEntered(); 89 | } 90 | 91 | internal void LeaveLobby() 92 | { 93 | NetworkManager.Singleton.StopServer(); 94 | NetworkManager.Singleton.DisconnectClient(); 95 | SteamMatchmaking.LeaveLobby(lobbyId); 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/LobbyManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b955b306d6fb7c47a4b1a2b101ddbeb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/NetworkManager.cs: -------------------------------------------------------------------------------- 1 | using Riptide.Transports.Steam; 2 | using Riptide.Utils; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace Riptide.Demos.Steam.PlayerHosted 7 | { 8 | public enum ServerToClientId : ushort 9 | { 10 | SpawnPlayer = 1, 11 | PlayerMovement, 12 | } 13 | public enum ClientToServerId : ushort 14 | { 15 | PlayerName = 1, 16 | PlayerInput, 17 | } 18 | 19 | public class NetworkManager : MonoBehaviour 20 | { 21 | public const byte PlayerHostedDemoMessageHandlerGroupId = 255; 22 | 23 | private static NetworkManager _singleton; 24 | internal static NetworkManager Singleton 25 | { 26 | get => _singleton; 27 | private set 28 | { 29 | if (_singleton == null) 30 | _singleton = value; 31 | else if (_singleton != value) 32 | { 33 | Debug.Log($"{nameof(NetworkManager)} instance already exists, destroying object!"); 34 | Destroy(value); 35 | } 36 | } 37 | } 38 | 39 | [SerializeField] private GameObject serverPlayerPrefab; 40 | [SerializeField] private GameObject playerPrefab; 41 | [SerializeField] private GameObject localPlayerPrefab; 42 | 43 | public GameObject ServerPlayerPrefab => serverPlayerPrefab; 44 | public GameObject PlayerPrefab => playerPrefab; 45 | public GameObject LocalPlayerPrefab => localPlayerPrefab; 46 | 47 | internal Server Server { get; private set; } 48 | internal Client Client { get; private set; } 49 | 50 | private void Awake() 51 | { 52 | Singleton = this; 53 | } 54 | 55 | private void Start() 56 | { 57 | if (!SteamManager.Initialized) 58 | { 59 | Debug.LogError("Steam is not initialized!"); 60 | return; 61 | } 62 | 63 | #if UNITY_EDITOR 64 | RiptideLogger.Initialize(Debug.Log, Debug.Log, Debug.LogWarning, Debug.LogError, false); 65 | #else 66 | RiptideLogger.Initialize(Debug.Log, true); 67 | #endif 68 | 69 | SteamServer steamServer = new SteamServer(); 70 | Server = new Server(steamServer); 71 | Server.ClientConnected += NewPlayerConnected; 72 | Server.ClientDisconnected += ServerPlayerLeft; 73 | 74 | Client = new Client(new SteamClient(steamServer)); 75 | Client.Connected += DidConnect; 76 | Client.ConnectionFailed += FailedToConnect; 77 | Client.ClientDisconnected += ClientPlayerLeft; 78 | Client.Disconnected += DidDisconnect; 79 | } 80 | 81 | private void FixedUpdate() 82 | { 83 | if (Server.IsRunning) 84 | Server.Update(); 85 | 86 | Client.Update(); 87 | } 88 | 89 | private void OnApplicationQuit() 90 | { 91 | StopServer(); 92 | Server.ClientConnected -= NewPlayerConnected; 93 | Server.ClientDisconnected -= ServerPlayerLeft; 94 | 95 | DisconnectClient(); 96 | Client.Connected -= DidConnect; 97 | Client.ConnectionFailed -= FailedToConnect; 98 | Client.ClientDisconnected -= ClientPlayerLeft; 99 | Client.Disconnected -= DidDisconnect; 100 | } 101 | 102 | internal void StopServer() 103 | { 104 | Server.Stop(); 105 | foreach (ServerPlayer player in ServerPlayer.List.Values) 106 | Destroy(player.gameObject); 107 | } 108 | 109 | internal void DisconnectClient() 110 | { 111 | Client.Disconnect(); 112 | foreach (ClientPlayer player in ClientPlayer.list.Values) 113 | Destroy(player.gameObject); 114 | } 115 | 116 | private void NewPlayerConnected(object sender, ServerConnectedEventArgs e) 117 | { 118 | foreach (ServerPlayer player in ServerPlayer.List.Values) 119 | { 120 | if (player.Id != e.Client.Id) 121 | player.SendSpawn(e.Client.Id); 122 | } 123 | } 124 | 125 | private void ServerPlayerLeft(object sender, ServerDisconnectedEventArgs e) 126 | { 127 | Destroy(ServerPlayer.List[e.Client.Id].gameObject); 128 | } 129 | 130 | private void DidConnect(object sender, EventArgs e) 131 | { 132 | Message message = Message.Create(MessageSendMode.Reliable, ClientToServerId.PlayerName); 133 | message.AddString(Steamworks.SteamFriends.GetPersonaName()); 134 | Client.Send(message); 135 | } 136 | 137 | private void FailedToConnect(object sender, EventArgs e) 138 | { 139 | UIManager.Singleton.BackToMain(); 140 | } 141 | 142 | private void ClientPlayerLeft(object sender, ClientDisconnectedEventArgs e) 143 | { 144 | Destroy(ClientPlayer.list[e.Id].gameObject); 145 | } 146 | 147 | private void DidDisconnect(object sender, EventArgs e) 148 | { 149 | foreach (ClientPlayer player in ClientPlayer.list.Values) 150 | Destroy(player.gameObject); 151 | 152 | ClientPlayer.list.Clear(); 153 | 154 | UIManager.Singleton.BackToMain(); 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/NetworkManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c15c03f9670ef4d41af0530ac3e8bc85 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a3600e160788974db3dc387217741e9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/CameraController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Riptide.Demos.Steam.PlayerHosted 4 | { 5 | public class CameraController : MonoBehaviour 6 | { 7 | [SerializeField] private ClientPlayer player; 8 | [SerializeField] private float sensitivity = 100f; 9 | [SerializeField] private float clampAngle = 85f; 10 | 11 | private float verticalRotation; 12 | private float horizontalRotation; 13 | 14 | private void Start() 15 | { 16 | verticalRotation = transform.localEulerAngles.x; 17 | horizontalRotation = player.transform.eulerAngles.y; 18 | } 19 | 20 | private void Update() 21 | { 22 | if (Input.GetKeyDown(KeyCode.Escape)) 23 | ToggleCursorMode(); 24 | 25 | if (Cursor.lockState == CursorLockMode.Locked) 26 | Look(); 27 | 28 | Debug.DrawRay(transform.position, transform.forward * 2, Color.green); 29 | } 30 | 31 | private void Look() 32 | { 33 | float mouseVertical = -Input.GetAxis("Mouse Y"); 34 | float mouseHorizontal = Input.GetAxis("Mouse X"); 35 | 36 | verticalRotation += mouseVertical * sensitivity; 37 | horizontalRotation += mouseHorizontal * sensitivity; 38 | 39 | verticalRotation = Mathf.Clamp(verticalRotation, -clampAngle, clampAngle); 40 | 41 | transform.localRotation = Quaternion.Euler(verticalRotation, 0f, 0f); 42 | player.transform.rotation = Quaternion.Euler(0f, horizontalRotation, 0f); 43 | } 44 | 45 | private void ToggleCursorMode() 46 | { 47 | Cursor.visible = !Cursor.visible; 48 | 49 | if (Cursor.lockState == CursorLockMode.None) 50 | Cursor.lockState = CursorLockMode.Locked; 51 | else 52 | Cursor.lockState = CursorLockMode.None; 53 | 54 | UIManager.Singleton.UpdateUIVisibility(); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/CameraController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a09e78728fff3441b779d09e33ed01b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/ClientPlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Riptide.Demos.Steam.PlayerHosted 5 | { 6 | public class ClientPlayer : MonoBehaviour 7 | { 8 | public static Dictionary list = new Dictionary(); 9 | 10 | [SerializeField] private ushort id; 11 | [SerializeField] private string username; 12 | 13 | public void Move(Vector3 newPosition, Vector3 forward) 14 | { 15 | transform.position = newPosition; 16 | 17 | if (id != NetworkManager.Singleton.Client.Id) // Don't overwrite local player's forward direction to avoid noticeable rotational snapping 18 | transform.forward = forward; 19 | } 20 | 21 | private void OnDestroy() 22 | { 23 | list.Remove(id); 24 | } 25 | 26 | public static void Spawn(ushort id, string username, Vector3 position) 27 | { 28 | ClientPlayer player; 29 | if (id == NetworkManager.Singleton.Client.Id) 30 | player = Instantiate(NetworkManager.Singleton.LocalPlayerPrefab, position, Quaternion.identity).GetComponent(); 31 | else 32 | { 33 | player = Instantiate(NetworkManager.Singleton.PlayerPrefab, position, Quaternion.identity).GetComponent(); 34 | player.GetComponentInChildren().SetName(username); 35 | } 36 | 37 | player.name = $"Client Player {id} ({username})"; 38 | player.id = id; 39 | player.username = username; 40 | list.Add(player.id, player); 41 | } 42 | 43 | #region Messages 44 | [MessageHandler((ushort)ServerToClientId.SpawnPlayer, NetworkManager.PlayerHostedDemoMessageHandlerGroupId)] 45 | private static void SpawnPlayer(Message message) 46 | { 47 | Spawn(message.GetUShort(), message.GetString(), message.GetVector3()); 48 | } 49 | 50 | [MessageHandler((ushort)ServerToClientId.PlayerMovement, NetworkManager.PlayerHostedDemoMessageHandlerGroupId)] 51 | private static void PlayerMovement(Message message) 52 | { 53 | ushort playerId = message.GetUShort(); 54 | if (list.TryGetValue(playerId, out ClientPlayer player)) 55 | player.Move(message.GetVector3(), message.GetVector3()); 56 | } 57 | #endregion 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/ClientPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88e644e1d2b90414a968c7931fb60bf9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerInput.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Riptide.Demos.Steam.PlayerHosted 4 | { 5 | public class PlayerInput : MonoBehaviour 6 | { 7 | [SerializeField] private Transform camTransform; 8 | private bool[] inputs; 9 | 10 | private void Start() 11 | { 12 | inputs = new bool[5]; 13 | } 14 | 15 | private void Update() 16 | { 17 | // Sample inputs every frame and store them until they're sent. This ensures no inputs are missed because they happened between FixedUpdate calls 18 | if (Input.GetKey(KeyCode.W)) 19 | inputs[0] = true; 20 | 21 | if (Input.GetKey(KeyCode.S)) 22 | inputs[1] = true; 23 | 24 | if (Input.GetKey(KeyCode.A)) 25 | inputs[2] = true; 26 | 27 | if (Input.GetKey(KeyCode.D)) 28 | inputs[3] = true; 29 | 30 | if (Input.GetKey(KeyCode.Space)) 31 | inputs[4] = true; 32 | } 33 | 34 | private void FixedUpdate() 35 | { 36 | SendInput(); 37 | 38 | // Reset input booleans 39 | for (int i = 0; i < inputs.Length; i++) 40 | inputs[i] = false; 41 | } 42 | 43 | #region Messages 44 | private void SendInput() 45 | { 46 | Message message = Message.Create(MessageSendMode.Unreliable, ClientToServerId.PlayerInput); 47 | message.AddBools(inputs, false); 48 | message.AddVector3(camTransform.forward); 49 | NetworkManager.Singleton.Client.Send(message); 50 | } 51 | #endregion 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a4e4a71097e71248acab4507d7dec28 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerMovement.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Riptide.Demos.Steam.PlayerHosted 4 | { 5 | [RequireComponent(typeof(CharacterController))] 6 | public class PlayerMovement : MonoBehaviour 7 | { 8 | [SerializeField] private ServerPlayer player; 9 | [SerializeField] private CharacterController controller; 10 | [SerializeField] private float gravity; 11 | [SerializeField] private float moveSpeed; 12 | [SerializeField] private float jumpSpeed; 13 | 14 | public bool[] Inputs { get; set; } 15 | private float yVelocity; 16 | 17 | private void OnValidate() 18 | { 19 | if (controller == null) 20 | controller = GetComponent(); 21 | 22 | if (player == null) 23 | player = GetComponent(); 24 | } 25 | 26 | private void Start() 27 | { 28 | gravity *= Time.fixedDeltaTime * Time.fixedDeltaTime; 29 | moveSpeed *= Time.fixedDeltaTime; 30 | jumpSpeed *= Time.fixedDeltaTime; 31 | 32 | Inputs = new bool[5]; 33 | } 34 | 35 | private void FixedUpdate() 36 | { 37 | Vector2 inputDirection = Vector2.zero; 38 | if (Inputs[0]) 39 | inputDirection.y += 1; 40 | 41 | if (Inputs[1]) 42 | inputDirection.y -= 1; 43 | 44 | if (Inputs[2]) 45 | inputDirection.x -= 1; 46 | 47 | if (Inputs[3]) 48 | inputDirection.x += 1; 49 | 50 | Move(inputDirection); 51 | } 52 | 53 | private void Move(Vector2 inputDirection) 54 | { 55 | Vector3 moveDirection = transform.right * inputDirection.x + transform.forward * inputDirection.y; 56 | moveDirection *= moveSpeed; 57 | 58 | if (controller.isGrounded) 59 | { 60 | yVelocity = 0f; 61 | if (Inputs[4]) 62 | yVelocity = jumpSpeed; 63 | } 64 | yVelocity += gravity; 65 | 66 | moveDirection.y = yVelocity; 67 | controller.Move(moveDirection); 68 | 69 | SendMovement(); 70 | } 71 | 72 | #region Messages 73 | private void SendMovement() 74 | { 75 | Message message = Message.Create(MessageSendMode.Unreliable, ServerToClientId.PlayerMovement); 76 | message.AddUShort(player.Id); 77 | message.AddVector3(transform.position); 78 | message.AddVector3(transform.forward); 79 | NetworkManager.Singleton.Server.SendToAll(message); 80 | } 81 | #endregion 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48160c2f37f89a24e90992c9bddfc749 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerUIManager.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace Riptide.Demos.Steam.PlayerHosted 5 | { 6 | internal class PlayerUIManager : MonoBehaviour 7 | { 8 | [SerializeField] private Text usernameText; 9 | 10 | private void Update() 11 | { 12 | if (ClientPlayer.list.TryGetValue(NetworkManager.Singleton.Client.Id, out ClientPlayer player)) 13 | transform.rotation = Quaternion.LookRotation(transform.position - player.transform.position); 14 | } 15 | 16 | internal void SetName(string _name) 17 | { 18 | usernameText.text = _name; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/PlayerUIManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e9519be383d83d43b76576bfdb1896e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/ServerPlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Riptide.Demos.Steam.PlayerHosted 5 | { 6 | [RequireComponent(typeof(PlayerMovement))] 7 | public class ServerPlayer : MonoBehaviour 8 | { 9 | public static Dictionary List { get; private set; } = new Dictionary(); 10 | 11 | public ushort Id { get; private set; } 12 | public string Username { get; private set; } 13 | 14 | [SerializeField] private PlayerMovement movement; 15 | 16 | private void OnValidate() 17 | { 18 | if (movement == null) 19 | movement = GetComponent(); 20 | } 21 | 22 | public void SetForwardDirection(Vector3 forward) 23 | { 24 | forward.y = 0; // Keep the player upright 25 | transform.forward = forward; 26 | } 27 | 28 | private void OnDestroy() 29 | { 30 | List.Remove(Id); 31 | } 32 | 33 | public static void Spawn(ushort id, string username) 34 | { 35 | ServerPlayer player = Instantiate(NetworkManager.Singleton.ServerPlayerPrefab, new Vector3(0f, 1f, 0f), Quaternion.identity).GetComponent(); 36 | player.name = $"Server Player {id} ({(username == "" ? "Guest" : username)})"; 37 | player.Id = id; 38 | player.Username = username; 39 | 40 | player.SendSpawn(); 41 | List.Add(player.Id, player); 42 | } 43 | 44 | #region Messages 45 | /// Sends a player's info to the given client. 46 | /// The client to send the message to. 47 | public void SendSpawn(ushort toClient) 48 | { 49 | NetworkManager.Singleton.Server.Send(GetSpawnData(Message.Create(MessageSendMode.Reliable, ServerToClientId.SpawnPlayer)), toClient); 50 | } 51 | /// Sends a player's info to all clients. 52 | private void SendSpawn() 53 | { 54 | NetworkManager.Singleton.Server.SendToAll(GetSpawnData(Message.Create(MessageSendMode.Reliable, ServerToClientId.SpawnPlayer))); 55 | } 56 | 57 | private Message GetSpawnData(Message message) 58 | { 59 | message.AddUShort(Id); 60 | message.AddString(Username); 61 | message.AddVector3(transform.position); 62 | return message; 63 | } 64 | 65 | [MessageHandler((ushort)ClientToServerId.PlayerName, NetworkManager.PlayerHostedDemoMessageHandlerGroupId)] 66 | private static void PlayerName(ushort fromClientId, Message message) 67 | { 68 | Spawn(fromClientId, message.GetString()); 69 | } 70 | 71 | [MessageHandler((ushort)ClientToServerId.PlayerInput, NetworkManager.PlayerHostedDemoMessageHandlerGroupId)] 72 | private static void PlayerInput(ushort fromClientId, Message message) 73 | { 74 | ServerPlayer player = List[fromClientId]; 75 | message.GetBools(5, player.movement.Inputs); 76 | player.SetForwardDirection(message.GetVector3()); 77 | } 78 | #endregion 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/Player/ServerPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90c5b847eafb42b4880ec0b7c7dc47b8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/UIManager.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace Riptide.Demos.Steam.PlayerHosted 5 | { 6 | public class UIManager : MonoBehaviour 7 | { 8 | private static UIManager _singleton; 9 | internal static UIManager Singleton 10 | { 11 | get => _singleton; 12 | private set 13 | { 14 | if (_singleton == null) 15 | _singleton = value; 16 | else if (_singleton != value) 17 | { 18 | Debug.Log($"{nameof(UIManager)} instance already exists, destroying object!"); 19 | Destroy(value); 20 | } 21 | } 22 | } 23 | 24 | [SerializeField] private GameObject mainMenu; 25 | [SerializeField] private GameObject lobbyMenu; 26 | [SerializeField] private InputField roomIdField; 27 | [SerializeField] private InputField roomIdDisplayField; 28 | 29 | private void Awake() 30 | { 31 | Singleton = this; 32 | } 33 | 34 | public void HostClicked() 35 | { 36 | mainMenu.SetActive(false); 37 | 38 | LobbyManager.Singleton.CreateLobby(); 39 | } 40 | 41 | internal void LobbyCreationFailed() 42 | { 43 | mainMenu.SetActive(true); 44 | } 45 | 46 | internal void LobbyCreationSucceeded(ulong lobbyId) 47 | { 48 | roomIdDisplayField.text = lobbyId.ToString(); 49 | roomIdDisplayField.gameObject.SetActive(true); 50 | lobbyMenu.SetActive(true); 51 | } 52 | 53 | public void JoinClicked() 54 | { 55 | if (string.IsNullOrEmpty(roomIdField.text)) 56 | { 57 | Debug.Log("A room ID is required to join!"); 58 | return; 59 | } 60 | 61 | LobbyManager.Singleton.JoinLobby(ulong.Parse(roomIdField.text)); 62 | mainMenu.SetActive(false); 63 | } 64 | 65 | internal void LobbyEntered() 66 | { 67 | roomIdDisplayField.gameObject.SetActive(false); 68 | lobbyMenu.SetActive(true); 69 | } 70 | 71 | public void LeaveClicked() 72 | { 73 | LobbyManager.Singleton.LeaveLobby(); 74 | BackToMain(); 75 | } 76 | 77 | internal void BackToMain() 78 | { 79 | mainMenu.SetActive(true); 80 | lobbyMenu.SetActive(false); 81 | 82 | Cursor.lockState = CursorLockMode.None; 83 | Cursor.visible = true; 84 | } 85 | 86 | internal void UpdateUIVisibility() 87 | { 88 | if (Cursor.lockState == CursorLockMode.None) 89 | lobbyMenu.SetActive(true); 90 | else 91 | lobbyMenu.SetActive(false); 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/PlayerHosted/Scripts/UIManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32112bd351e65c14fb33ae49b70828a1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/SteamManager.cs: -------------------------------------------------------------------------------- 1 | // The SteamManager is designed to work with Steamworks.NET 2 | // This file is released into the public domain. 3 | // Where that dedication is not recognized you are granted a perpetual, 4 | // irrevocable license to copy and modify this file as you see fit. 5 | // 6 | // Version: 1.0.12 7 | 8 | #if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX) 9 | #define DISABLESTEAMWORKS 10 | #endif 11 | 12 | using UnityEngine; 13 | #if !DISABLESTEAMWORKS 14 | using System.Collections; 15 | using Steamworks; 16 | #endif 17 | 18 | // 19 | // The SteamManager provides a base implementation of Steamworks.NET on which you can build upon. 20 | // It handles the basics of starting up and shutting down the SteamAPI for use. 21 | // 22 | [DisallowMultipleComponent] 23 | public class SteamManager : MonoBehaviour { 24 | #if !DISABLESTEAMWORKS 25 | protected static bool s_EverInitialized = false; 26 | 27 | protected static SteamManager s_instance; 28 | protected static SteamManager Instance { 29 | get { 30 | if (s_instance == null) { 31 | return new GameObject("SteamManager").AddComponent(); 32 | } 33 | else { 34 | return s_instance; 35 | } 36 | } 37 | } 38 | 39 | protected bool m_bInitialized = false; 40 | public static bool Initialized { 41 | get { 42 | return Instance.m_bInitialized; 43 | } 44 | } 45 | 46 | protected SteamAPIWarningMessageHook_t m_SteamAPIWarningMessageHook; 47 | 48 | [AOT.MonoPInvokeCallback(typeof(SteamAPIWarningMessageHook_t))] 49 | protected static void SteamAPIDebugTextHook(int nSeverity, System.Text.StringBuilder pchDebugText) { 50 | Debug.LogWarning(pchDebugText); 51 | } 52 | 53 | #if UNITY_2019_3_OR_NEWER 54 | // In case of disabled Domain Reload, reset static members before entering Play Mode. 55 | [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] 56 | private static void InitOnPlayMode() 57 | { 58 | s_EverInitialized = false; 59 | s_instance = null; 60 | } 61 | #endif 62 | 63 | protected virtual void Awake() { 64 | // Only one instance of SteamManager at a time! 65 | if (s_instance != null) { 66 | Destroy(gameObject); 67 | return; 68 | } 69 | s_instance = this; 70 | 71 | if(s_EverInitialized) { 72 | // This is almost always an error. 73 | // The most common case where this happens is when SteamManager gets destroyed because of Application.Quit(), 74 | // and then some Steamworks code in some other OnDestroy gets called afterwards, creating a new SteamManager. 75 | // You should never call Steamworks functions in OnDestroy, always prefer OnDisable if possible. 76 | throw new System.Exception("Tried to Initialize the SteamAPI twice in one session!"); 77 | } 78 | 79 | // We want our SteamManager Instance to persist across scenes. 80 | DontDestroyOnLoad(gameObject); 81 | 82 | if (!Packsize.Test()) { 83 | Debug.LogError("[Steamworks.NET] Packsize Test returned false, the wrong version of Steamworks.NET is being run in this platform.", this); 84 | } 85 | 86 | if (!DllCheck.Test()) { 87 | Debug.LogError("[Steamworks.NET] DllCheck Test returned false, One or more of the Steamworks binaries seems to be the wrong version.", this); 88 | } 89 | 90 | try { 91 | // If Steam is not running or the game wasn't started through Steam, SteamAPI_RestartAppIfNecessary starts the 92 | // Steam client and also launches this game again if the User owns it. This can act as a rudimentary form of DRM. 93 | 94 | // Once you get a Steam AppID assigned by Valve, you need to replace AppId_t.Invalid with it and 95 | // remove steam_appid.txt from the game depot. eg: "(AppId_t)480" or "new AppId_t(480)". 96 | // See the Valve documentation for more information: https://partner.steamgames.com/doc/sdk/api#initialization_and_shutdown 97 | if (SteamAPI.RestartAppIfNecessary(AppId_t.Invalid)) { 98 | Application.Quit(); 99 | return; 100 | } 101 | } 102 | catch (System.DllNotFoundException e) { // We catch this exception here, as it will be the first occurrence of it. 103 | Debug.LogError("[Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.\n" + e, this); 104 | 105 | Application.Quit(); 106 | return; 107 | } 108 | 109 | // Initializes the Steamworks API. 110 | // If this returns false then this indicates one of the following conditions: 111 | // [*] The Steam client isn't running. A running Steam client is required to provide implementations of the various Steamworks interfaces. 112 | // [*] The Steam client couldn't determine the App ID of game. If you're running your application from the executable or debugger directly then you must have a [code-inline]steam_appid.txt[/code-inline] in your game directory next to the executable, with your app ID in it and nothing else. Steam will look for this file in the current working directory. If you are running your executable from a different directory you may need to relocate the [code-inline]steam_appid.txt[/code-inline] file. 113 | // [*] Your application is not running under the same OS user context as the Steam client, such as a different user or administration access level. 114 | // [*] Ensure that you own a license for the App ID on the currently active Steam account. Your game must show up in your Steam library. 115 | // [*] Your App ID is not completely set up, i.e. in Release State: Unavailable, or it's missing default packages. 116 | // Valve's documentation for this is located here: 117 | // https://partner.steamgames.com/doc/sdk/api#initialization_and_shutdown 118 | m_bInitialized = SteamAPI.Init(); 119 | if (!m_bInitialized) { 120 | Debug.LogError("[Steamworks.NET] SteamAPI_Init() failed. Refer to Valve's documentation or the comment above this line for more information.", this); 121 | 122 | return; 123 | } 124 | 125 | s_EverInitialized = true; 126 | } 127 | 128 | // This should only ever get called on first load and after an Assembly reload, You should never Disable the Steamworks Manager yourself. 129 | protected virtual void OnEnable() { 130 | if (s_instance == null) { 131 | s_instance = this; 132 | } 133 | 134 | if (!m_bInitialized) { 135 | return; 136 | } 137 | 138 | if (m_SteamAPIWarningMessageHook == null) { 139 | // Set up our callback to receive warning messages from Steam. 140 | // You must launch with "-debug_steamapi" in the launch args to receive warnings. 141 | m_SteamAPIWarningMessageHook = new SteamAPIWarningMessageHook_t(SteamAPIDebugTextHook); 142 | SteamClient.SetWarningMessageHook(m_SteamAPIWarningMessageHook); 143 | } 144 | } 145 | 146 | // OnApplicationQuit gets called too early to shutdown the SteamAPI. 147 | // Because the SteamManager should be persistent and never disabled or destroyed we can shutdown the SteamAPI here. 148 | // Thus it is not recommended to perform any Steamworks work in other OnDestroy functions as the order of execution can not be garenteed upon Shutdown. Prefer OnDisable(). 149 | protected virtual void OnDestroy() { 150 | if (s_instance != this) { 151 | return; 152 | } 153 | 154 | s_instance = null; 155 | 156 | if (!m_bInitialized) { 157 | return; 158 | } 159 | 160 | SteamAPI.Shutdown(); 161 | } 162 | 163 | protected virtual void Update() { 164 | if (!m_bInitialized) { 165 | return; 166 | } 167 | 168 | // Run Steam client callbacks 169 | SteamAPI.RunCallbacks(); 170 | } 171 | #else 172 | public static bool Initialized { 173 | get { 174 | return false; 175 | } 176 | } 177 | #endif // !DISABLESTEAMWORKS 178 | } 179 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Demos/SteamManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef4bffeda13d7a748973ff9204401c07 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fc57617b9043524e9b619c5f3d387ee 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/.editorconfig: -------------------------------------------------------------------------------- 1 | # You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference 2 | 3 | # Top-most EditorConfig file 4 | root = false 5 | 6 | [*.{cs,vb}] 7 | 8 | # Enforce file headers 9 | file_header_template = This file is provided under The MIT License as part of RiptideSteamTransport.\nCopyright (c) Tom Weiland\nFor additional information please see the included LICENSE.md file or view it on GitHub:\nhttps://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md 10 | 11 | # IDE0073: Incorrect/missing header 12 | dotnet_diagnostic.IDE0073.severity = warning -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamClient.cs: -------------------------------------------------------------------------------- 1 | // This file is provided under The MIT License as part of RiptideSteamTransport. 2 | // Copyright (c) Tom Weiland 3 | // For additional information please see the included LICENSE.md file or view it on GitHub: 4 | // https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md 5 | 6 | using Steamworks; 7 | using System; 8 | using System.Threading.Tasks; 9 | using UnityEngine; 10 | 11 | namespace Riptide.Transports.Steam 12 | { 13 | public class SteamClient : SteamPeer, IClient 14 | { 15 | public event EventHandler Connected; 16 | public event EventHandler ConnectionFailed; 17 | public event EventHandler DataReceived; 18 | public event EventHandler Disconnected; 19 | 20 | private const string LocalHostName = "localhost"; 21 | private const string LocalHostIP = "127.0.0.1"; 22 | 23 | private SteamConnection steamConnection; 24 | private SteamServer localServer; 25 | private Callback connectionStatusChanged; 26 | 27 | public SteamClient(SteamServer localServer = null) 28 | { 29 | this.localServer = localServer; 30 | } 31 | 32 | public void ChangeLocalServer(SteamServer newLocalServer) 33 | { 34 | localServer = newLocalServer; 35 | } 36 | 37 | public bool Connect(string hostAddress, out Connection connection, out string connectError) 38 | { 39 | connection = null; 40 | int port = 0; 41 | 42 | try 43 | { 44 | #if UNITY_SERVER 45 | SteamGameServerNetworkingUtils.InitRelayNetworkAccess(); 46 | #else 47 | SteamNetworkingUtils.InitRelayNetworkAccess(); 48 | #endif 49 | } 50 | catch (Exception ex) 51 | { 52 | connectError = $"Couldn't connect: {ex}"; 53 | return false; 54 | } 55 | 56 | connectError = $"Invalid host address '{hostAddress}'! Expected '{LocalHostIP}' or '{LocalHostName}' for local connections, or a valid Steam ID."; 57 | if (hostAddress == LocalHostIP || hostAddress == LocalHostName) 58 | { 59 | if (localServer == null) 60 | { 61 | connectError = $"No locally running server was specified to connect to! Either pass a {nameof(SteamServer)} instance to your {nameof(SteamClient)}'s constructor or call its {nameof(SteamClient.ChangeLocalServer)} method before attempting to connect locally."; 62 | connection = null; 63 | return false; 64 | } 65 | 66 | connection = steamConnection = ConnectLocal(); 67 | return true; 68 | } 69 | 70 | int portSeperatorIndex = hostAddress.IndexOf(':'); 71 | if (portSeperatorIndex != -1) 72 | { 73 | if (!int.TryParse(hostAddress[(portSeperatorIndex + 1)..], out port)) 74 | { 75 | connectError = $"Couldn't connect: Failed to parse port '{hostAddress[(portSeperatorIndex + 1)..]}'"; 76 | return false; 77 | } 78 | hostAddress = hostAddress[..portSeperatorIndex]; 79 | } 80 | 81 | if (ulong.TryParse(hostAddress, out ulong hostId)) 82 | { 83 | connection = steamConnection = TryConnect(new CSteamID(hostId), port); 84 | return connection != null; 85 | } 86 | 87 | return false; 88 | } 89 | 90 | private SteamConnection ConnectLocal() 91 | { 92 | Debug.Log($"{LogName}: Connecting to locally running server..."); 93 | 94 | connectionStatusChanged = Callback.Create(OnConnectionStatusChanged); 95 | CSteamID playerSteamId = SteamUser.GetSteamID(); 96 | 97 | SteamNetworkingIdentity clientIdentity = new SteamNetworkingIdentity(); 98 | clientIdentity.SetSteamID(playerSteamId); 99 | SteamNetworkingIdentity serverIdentity = new SteamNetworkingIdentity(); 100 | serverIdentity.SetSteamID(playerSteamId); 101 | 102 | SteamNetworkingSockets.CreateSocketPair(out HSteamNetConnection connectionToClient, out HSteamNetConnection connectionToServer, false, ref clientIdentity, ref serverIdentity); 103 | 104 | localServer.Add(new SteamConnection(playerSteamId, connectionToClient, this)); 105 | OnConnected(); 106 | return new SteamConnection(playerSteamId, connectionToServer, this); 107 | } 108 | 109 | private SteamConnection TryConnect(CSteamID hostId, int port) 110 | { 111 | try 112 | { 113 | connectionStatusChanged = Callback.Create(OnConnectionStatusChanged); 114 | 115 | SteamNetworkingIdentity serverIdentity = new SteamNetworkingIdentity(); 116 | serverIdentity.SetSteamID(hostId); 117 | 118 | SteamNetworkingConfigValue_t[] options = new SteamNetworkingConfigValue_t[] { }; 119 | HSteamNetConnection connectionToServer = SteamNetworkingSockets.ConnectP2P(ref serverIdentity, port, options.Length, options); 120 | 121 | ConnectTimeout(); 122 | return new SteamConnection(hostId, connectionToServer, this); 123 | } 124 | catch (Exception ex) 125 | { 126 | Debug.LogException(ex); 127 | OnConnectionFailed(); 128 | return null; 129 | } 130 | } 131 | 132 | private async void ConnectTimeout() // TODO: confirm if this is needed, Riptide *should* take care of timing out the connection 133 | { 134 | Task timeOutTask = Task.Delay(6000); // TODO: use Riptide Client's TimeoutTime 135 | await Task.WhenAny(timeOutTask); 136 | 137 | if (!steamConnection.IsConnected) 138 | OnConnectionFailed(); 139 | } 140 | 141 | private void OnConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t callback) 142 | { 143 | if (!callback.m_hConn.Equals(steamConnection.SteamNetConnection)) 144 | { 145 | // When connecting via local loopback connection to a locally running SteamServer (aka 146 | // this player is also the host), other external clients that attempt to connect seem 147 | // to trigger ConnectionStatusChanged callbacks for the locally connected client. Not 148 | // 100% sure why this is the case, but returning out of the callback here when the 149 | // connection doesn't match that between local client & server avoids the problem. 150 | return; 151 | } 152 | 153 | switch (callback.m_info.m_eState) 154 | { 155 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected: 156 | OnConnected(); 157 | break; 158 | 159 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer: 160 | SteamNetworkingSockets.CloseConnection(callback.m_hConn, 0, "Closed by peer", false); 161 | OnDisconnected(DisconnectReason.Disconnected); 162 | break; 163 | 164 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ProblemDetectedLocally: 165 | SteamNetworkingSockets.CloseConnection(callback.m_hConn, 0, "Problem detected", false); 166 | OnDisconnected(DisconnectReason.TransportError); 167 | break; 168 | 169 | default: 170 | Debug.Log($"{LogName}: Connection state changed - {callback.m_info.m_eState} | {callback.m_info.m_szEndDebug}"); 171 | break; 172 | } 173 | } 174 | 175 | public void Poll() 176 | { 177 | if (steamConnection != null) 178 | Receive(steamConnection); 179 | } 180 | 181 | // TODO: disable nagle so this isn't needed 182 | //public void Flush() 183 | //{ 184 | // foreach (SteamConnection connection in connections.Values) 185 | // SteamNetworkingSockets.FlushMessagesOnConnection(connection.SteamNetConnection); 186 | //} 187 | 188 | public void Disconnect() 189 | { 190 | if (connectionStatusChanged != null) 191 | { 192 | connectionStatusChanged.Dispose(); 193 | connectionStatusChanged = null; 194 | } 195 | 196 | SteamNetworkingSockets.CloseConnection(steamConnection.SteamNetConnection, 0, "Disconnected", false); 197 | steamConnection = null; 198 | } 199 | 200 | protected virtual void OnConnected() 201 | { 202 | Connected?.Invoke(this, EventArgs.Empty); 203 | } 204 | 205 | protected virtual void OnConnectionFailed() 206 | { 207 | ConnectionFailed?.Invoke(this, EventArgs.Empty); 208 | } 209 | 210 | protected override void OnDataReceived(byte[] dataBuffer, int amount, SteamConnection fromConnection) 211 | { 212 | DataReceived?.Invoke(this, new DataReceivedEventArgs(dataBuffer, amount, fromConnection)); 213 | } 214 | 215 | protected virtual void OnDisconnected(DisconnectReason reason) 216 | { 217 | Disconnected?.Invoke(this, new DisconnectedEventArgs(steamConnection, reason)); 218 | } 219 | } 220 | } 221 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamClient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d01e63ca8d4503e4495eb9b9c9acff80 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamConnection.cs: -------------------------------------------------------------------------------- 1 | // This file is provided under The MIT License as part of RiptideSteamTransport. 2 | // Copyright (c) Tom Weiland 3 | // For additional information please see the included LICENSE.md file or view it on GitHub: 4 | // https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md 5 | 6 | using Steamworks; 7 | using System; 8 | using System.Collections.Generic; 9 | 10 | namespace Riptide.Transports.Steam 11 | { 12 | public class SteamConnection : Connection, IEquatable 13 | { 14 | public readonly CSteamID SteamId; 15 | public readonly HSteamNetConnection SteamNetConnection; 16 | 17 | internal bool DidReceiveConnect; 18 | 19 | private readonly SteamPeer peer; 20 | 21 | internal SteamConnection(CSteamID steamId, HSteamNetConnection steamNetConnection, SteamPeer peer) 22 | { 23 | SteamId = steamId; 24 | SteamNetConnection = steamNetConnection; 25 | this.peer = peer; 26 | } 27 | 28 | protected override void Send(byte[] dataBuffer, int amount) 29 | { 30 | peer.Send(dataBuffer, amount, SteamNetConnection); 31 | } 32 | 33 | /// 34 | public override string ToString() => SteamNetConnection.ToString(); 35 | 36 | /// 37 | public override bool Equals(object obj) => Equals(obj as SteamConnection); 38 | /// 39 | public bool Equals(SteamConnection other) 40 | { 41 | if (other is null) 42 | return false; 43 | 44 | if (ReferenceEquals(this, other)) 45 | return true; 46 | 47 | return SteamNetConnection.Equals(other.SteamNetConnection); 48 | } 49 | 50 | /// 51 | public override int GetHashCode() 52 | { 53 | return -721414014 + EqualityComparer.Default.GetHashCode(SteamNetConnection); 54 | } 55 | 56 | public static bool operator ==(SteamConnection left, SteamConnection right) 57 | { 58 | if (left is null) 59 | { 60 | if (right is null) 61 | return true; 62 | 63 | return false; // Only the left side is null 64 | } 65 | 66 | // Equals handles case of null on right side 67 | return left.Equals(right); 68 | } 69 | 70 | public static bool operator !=(SteamConnection left, SteamConnection right) => !(left == right); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamConnection.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efe13ac02481119479eb4fbac03269da 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamPeer.cs: -------------------------------------------------------------------------------- 1 | // This file is provided under The MIT License as part of RiptideSteamTransport. 2 | // Copyright (c) Tom Weiland 3 | // For additional information please see the included LICENSE.md file or view it on GitHub: 4 | // https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md 5 | 6 | using Steamworks; 7 | using System; 8 | using System.Runtime.InteropServices; 9 | using UnityEngine; 10 | 11 | namespace Riptide.Transports.Steam 12 | { 13 | public abstract class SteamPeer 14 | { 15 | /// The name to use when logging messages via . 16 | public const string LogName = "STEAM"; 17 | 18 | protected const int MaxMessages = 256; 19 | 20 | private readonly byte[] receiveBuffer; 21 | 22 | protected SteamPeer() 23 | { 24 | receiveBuffer = new byte[Message.MaxSize + sizeof(ushort)]; 25 | } 26 | 27 | protected void Receive(SteamConnection fromConnection) 28 | { 29 | IntPtr[] ptrs = new IntPtr[MaxMessages]; // TODO: remove allocation? 30 | 31 | // TODO: consider using poll groups -> https://partner.steamgames.com/doc/api/ISteamNetworkingSockets#functions_poll_groups 32 | int messageCount = SteamNetworkingSockets.ReceiveMessagesOnConnection(fromConnection.SteamNetConnection, ptrs, MaxMessages); 33 | if (messageCount > 0) 34 | { 35 | for (int i = 0; i < messageCount; i++) 36 | { 37 | SteamNetworkingMessage_t data = Marshal.PtrToStructure(ptrs[i]); 38 | 39 | if (data.m_cbSize > 0) 40 | { 41 | int byteCount = data.m_cbSize; 42 | if (data.m_cbSize > receiveBuffer.Length) 43 | { 44 | Debug.LogWarning($"{LogName}: Can't fully handle {data.m_cbSize} bytes because it exceeds the maximum of {receiveBuffer.Length}. Data will be incomplete!"); 45 | byteCount = receiveBuffer.Length; 46 | } 47 | 48 | Marshal.Copy(data.m_pData, receiveBuffer, 0, data.m_cbSize); 49 | OnDataReceived(receiveBuffer, byteCount, fromConnection); 50 | } 51 | 52 | SteamNetworkingMessage_t.Release(ptrs[i]); 53 | } 54 | } 55 | } 56 | 57 | internal void Send(byte[] dataBuffer, int numBytes, HSteamNetConnection toConnection) 58 | { 59 | GCHandle handle = GCHandle.Alloc(dataBuffer, GCHandleType.Pinned); 60 | IntPtr pDataBuffer = handle.AddrOfPinnedObject(); 61 | 62 | EResult result = SteamNetworkingSockets.SendMessageToConnection(toConnection, pDataBuffer, (uint)numBytes, Constants.k_nSteamNetworkingSend_Unreliable, out long _); 63 | if (result != EResult.k_EResultOK) 64 | Debug.LogWarning($"{LogName}: Failed to send {numBytes} bytes - {result}"); 65 | 66 | handle.Free(); 67 | } 68 | 69 | protected abstract void OnDataReceived(byte[] dataBuffer, int amount, SteamConnection fromConnection); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamPeer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c61c144dea488c74aa6a06603f6d4f56 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamServer.cs: -------------------------------------------------------------------------------- 1 | // This file is provided under The MIT License as part of RiptideSteamTransport. 2 | // Copyright (c) Tom Weiland 3 | // For additional information please see the included LICENSE.md file or view it on GitHub: 4 | // https://github.com/tom-weiland/RiptideSteamTransport/blob/main/LICENSE.md 5 | 6 | using Steamworks; 7 | using System; 8 | using System.Collections.Generic; 9 | using UnityEngine; 10 | 11 | namespace Riptide.Transports.Steam 12 | { 13 | public class SteamServer : SteamPeer, IServer 14 | { 15 | public event EventHandler Connected; 16 | public event EventHandler DataReceived; 17 | public event EventHandler Disconnected; 18 | 19 | public ushort Port { get; private set; } 20 | 21 | private Dictionary connections; 22 | private HSteamListenSocket listenSocket; 23 | private Callback connectionStatusChanged; 24 | 25 | public void Start(ushort port) 26 | { 27 | Port = port; 28 | connections = new Dictionary(); 29 | 30 | connectionStatusChanged = Callback.Create(OnConnectionStatusChanged); 31 | 32 | try 33 | { 34 | #if UNITY_SERVER 35 | SteamGameServerNetworkingUtils.InitRelayNetworkAccess(); 36 | #else 37 | SteamNetworkingUtils.InitRelayNetworkAccess(); 38 | #endif 39 | } 40 | catch (Exception ex) 41 | { 42 | Debug.LogException(ex); 43 | } 44 | 45 | SteamNetworkingConfigValue_t[] options = new SteamNetworkingConfigValue_t[] { }; 46 | listenSocket = SteamNetworkingSockets.CreateListenSocketP2P(port, options.Length, options); 47 | } 48 | 49 | private void OnConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t callback) 50 | { 51 | CSteamID clientSteamId = callback.m_info.m_identityRemote.GetSteamID(); 52 | switch (callback.m_info.m_eState) 53 | { 54 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connecting: 55 | Accept(callback.m_hConn); 56 | break; 57 | 58 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected: 59 | Add(new SteamConnection(clientSteamId, callback.m_hConn, this)); 60 | break; 61 | 62 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ClosedByPeer: 63 | SteamNetworkingSockets.CloseConnection(callback.m_hConn, 0, "Closed by peer", false); 64 | OnDisconnected(clientSteamId, DisconnectReason.Disconnected); 65 | break; 66 | 67 | case ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_ProblemDetectedLocally: 68 | SteamNetworkingSockets.CloseConnection(callback.m_hConn, 0, "Problem detected", false); 69 | OnDisconnected(clientSteamId, DisconnectReason.TransportError); 70 | break; 71 | 72 | default: 73 | Debug.Log($"{LogName}: {clientSteamId}'s connection state changed - {callback.m_info.m_eState}"); 74 | break; 75 | } 76 | } 77 | 78 | internal void Add(SteamConnection connection) 79 | { 80 | if (!connections.ContainsKey(connection.SteamId)) 81 | { 82 | connections.Add(connection.SteamId, connection); 83 | OnConnected(connection); 84 | } 85 | else 86 | Debug.Log($"{LogName}: Connection from {connection.SteamId} could not be accepted: Already connected"); 87 | } 88 | 89 | private void Accept(HSteamNetConnection connection) 90 | { 91 | EResult result = SteamNetworkingSockets.AcceptConnection(connection); 92 | if (result != EResult.k_EResultOK) 93 | Debug.LogWarning($"{LogName}: Connection could not be accepted: {result}"); 94 | } 95 | 96 | public void Close(Connection connection) 97 | { 98 | if (connection is SteamConnection steamConnection) 99 | { 100 | SteamNetworkingSockets.CloseConnection(steamConnection.SteamNetConnection, 0, "Disconnected by server", false); 101 | connections.Remove(steamConnection.SteamId); 102 | } 103 | } 104 | 105 | public void Poll() 106 | { 107 | foreach (SteamConnection connection in connections.Values) 108 | Receive(connection); 109 | } 110 | 111 | // TODO: disable nagle so this isn't needed 112 | //public void Flush() 113 | //{ 114 | // foreach (SteamConnection connection in connections.Values) 115 | // SteamNetworkingSockets.FlushMessagesOnConnection(connection.SteamNetConnection); 116 | //} 117 | 118 | public void Shutdown() 119 | { 120 | if (connectionStatusChanged != null) 121 | { 122 | connectionStatusChanged.Dispose(); 123 | connectionStatusChanged = null; 124 | } 125 | 126 | foreach (SteamConnection connection in connections.Values) 127 | SteamNetworkingSockets.CloseConnection(connection.SteamNetConnection, 0, "Server stopped", false); 128 | 129 | connections.Clear(); 130 | SteamNetworkingSockets.CloseListenSocket(listenSocket); 131 | } 132 | 133 | protected internal virtual void OnConnected(Connection connection) 134 | { 135 | Connected?.Invoke(this, new ConnectedEventArgs(connection)); 136 | } 137 | 138 | protected override void OnDataReceived(byte[] dataBuffer, int amount, SteamConnection fromConnection) 139 | { 140 | if ((MessageHeader)dataBuffer[0] == MessageHeader.Connect) 141 | { 142 | if (fromConnection.DidReceiveConnect) 143 | return; 144 | 145 | fromConnection.DidReceiveConnect = true; 146 | } 147 | 148 | DataReceived?.Invoke(this, new DataReceivedEventArgs(dataBuffer, amount, fromConnection)); 149 | } 150 | 151 | protected virtual void OnDisconnected(CSteamID steamId, DisconnectReason reason) 152 | { 153 | if (connections.TryGetValue(steamId, out SteamConnection connection)) 154 | { 155 | Disconnected?.Invoke(this, new DisconnectedEventArgs(connection, reason)); 156 | connections.Remove(steamId); 157 | } 158 | } 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /Assets/RiptideSteamTransport/Transport/SteamServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20d1698a81d47464b85852c6679801a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0735c275001a2c84dafdb30deced5d8d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/ForwardRenderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 13 | m_Name: ForwardRenderer 14 | m_EditorClassIdentifier: 15 | m_RendererFeatures: [] 16 | m_RendererFeatureMap: 17 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 18 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} 19 | shaders: 20 | blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} 21 | copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 22 | screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, type: 3} 23 | samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 24 | tileDepthInfoPS: {fileID: 0} 25 | tileDeferredPS: {fileID: 0} 26 | stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} 27 | fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} 28 | materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} 29 | m_OpaqueLayerMask: 30 | serializedVersion: 2 31 | m_Bits: 4294967295 32 | m_TransparentLayerMask: 33 | serializedVersion: 2 34 | m_Bits: 4294967295 35 | m_DefaultStencilState: 36 | overrideStencilState: 0 37 | stencilReference: 0 38 | stencilCompareFunction: 8 39 | passOperation: 0 40 | failOperation: 0 41 | zFailOperation: 0 42 | m_ShadowTransparentReceive: 1 43 | m_RenderingMode: 0 44 | m_AccurateGbufferNormals: 0 45 | -------------------------------------------------------------------------------- /Assets/Settings/ForwardRenderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a8e21d5c33334b11b34a596161b9360 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/SampleSceneProfile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7893295128165547882 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 13 | m_Name: Bloom 14 | m_EditorClassIdentifier: 15 | active: 1 16 | m_AdvancedMode: 0 17 | threshold: 18 | m_OverrideState: 1 19 | m_Value: 1 20 | min: 0 21 | intensity: 22 | m_OverrideState: 1 23 | m_Value: 1 24 | min: 0 25 | scatter: 26 | m_OverrideState: 0 27 | m_Value: 0.7 28 | min: 0 29 | max: 1 30 | clamp: 31 | m_OverrideState: 0 32 | m_Value: 65472 33 | min: 0 34 | tint: 35 | m_OverrideState: 0 36 | m_Value: {r: 1, g: 1, b: 1, a: 1} 37 | hdr: 0 38 | showAlpha: 0 39 | showEyeDropper: 1 40 | highQualityFiltering: 41 | m_OverrideState: 0 42 | m_Value: 0 43 | dirtTexture: 44 | m_OverrideState: 0 45 | m_Value: {fileID: 0} 46 | dirtIntensity: 47 | m_OverrideState: 0 48 | m_Value: 0 49 | min: 0 50 | --- !u!114 &-7011558710299706105 51 | MonoBehaviour: 52 | m_ObjectHideFlags: 3 53 | m_CorrespondingSourceObject: {fileID: 0} 54 | m_PrefabInstance: {fileID: 0} 55 | m_PrefabAsset: {fileID: 0} 56 | m_GameObject: {fileID: 0} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} 60 | m_Name: Vignette 61 | m_EditorClassIdentifier: 62 | active: 1 63 | m_AdvancedMode: 0 64 | color: 65 | m_OverrideState: 0 66 | m_Value: {r: 0, g: 0, b: 0, a: 1} 67 | hdr: 0 68 | showAlpha: 0 69 | showEyeDropper: 1 70 | center: 71 | m_OverrideState: 0 72 | m_Value: {x: 0.5, y: 0.5} 73 | intensity: 74 | m_OverrideState: 1 75 | m_Value: 0.25 76 | min: 0 77 | max: 1 78 | smoothness: 79 | m_OverrideState: 1 80 | m_Value: 0.4 81 | min: 0.01 82 | max: 1 83 | rounded: 84 | m_OverrideState: 0 85 | m_Value: 0 86 | --- !u!114 &11400000 87 | MonoBehaviour: 88 | m_ObjectHideFlags: 0 89 | m_CorrespondingSourceObject: {fileID: 0} 90 | m_PrefabInstance: {fileID: 0} 91 | m_PrefabAsset: {fileID: 0} 92 | m_GameObject: {fileID: 0} 93 | m_Enabled: 1 94 | m_EditorHideFlags: 0 95 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 96 | m_Name: SampleSceneProfile 97 | m_EditorClassIdentifier: 98 | components: 99 | - {fileID: 849379129802519247} 100 | - {fileID: -7893295128165547882} 101 | - {fileID: -7011558710299706105} 102 | --- !u!114 &849379129802519247 103 | MonoBehaviour: 104 | m_ObjectHideFlags: 3 105 | m_CorrespondingSourceObject: {fileID: 0} 106 | m_PrefabInstance: {fileID: 0} 107 | m_PrefabAsset: {fileID: 0} 108 | m_GameObject: {fileID: 0} 109 | m_Enabled: 1 110 | m_EditorHideFlags: 0 111 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 112 | m_Name: Tonemapping 113 | m_EditorClassIdentifier: 114 | active: 1 115 | m_AdvancedMode: 0 116 | mode: 117 | m_OverrideState: 1 118 | m_Value: 2 119 | -------------------------------------------------------------------------------- /Assets/Settings/SampleSceneProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10fc4df2da32a41aaa32d77bc913491c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-HighQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRP-HighQuality 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 5 16 | k_AssetPreviousVersion: 5 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsHDR: 1 26 | m_MSAA: 2 27 | m_RenderScale: 1 28 | m_MainLightRenderingMode: 1 29 | m_MainLightShadowsSupported: 1 30 | m_MainLightShadowmapResolution: 2048 31 | m_AdditionalLightsRenderingMode: 1 32 | m_AdditionalLightsPerObjectLimit: 4 33 | m_AdditionalLightShadowsSupported: 1 34 | m_AdditionalLightsShadowmapResolution: 512 35 | m_ShadowDistance: 50 36 | m_ShadowCascades: 1 37 | m_Cascade2Split: 0.25 38 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 39 | m_ShadowDepthBias: 1 40 | m_ShadowNormalBias: 1 41 | m_SoftShadowsSupported: 1 42 | m_UseSRPBatcher: 1 43 | m_SupportsDynamicBatching: 0 44 | m_MixedLightingSupported: 1 45 | m_DebugLevel: 0 46 | m_ColorGradingMode: 0 47 | m_ColorGradingLutSize: 32 48 | m_ShadowType: 1 49 | m_LocalShadowsSupported: 0 50 | m_LocalShadowsAtlasResolution: 256 51 | m_MaxPixelLights: 0 52 | m_ShadowAtlasResolution: 256 53 | m_ShaderVariantLogLevel: 0 54 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-HighQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19ba41d7c0026c3459d37c2fe90c55a0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-LowQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRP-LowQuality 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 5 16 | k_AssetPreviousVersion: 5 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsHDR: 0 26 | m_MSAA: 1 27 | m_RenderScale: 1 28 | m_MainLightRenderingMode: 1 29 | m_MainLightShadowsSupported: 0 30 | m_MainLightShadowmapResolution: 2048 31 | m_AdditionalLightsRenderingMode: 0 32 | m_AdditionalLightsPerObjectLimit: 4 33 | m_AdditionalLightShadowsSupported: 0 34 | m_AdditionalLightsShadowmapResolution: 512 35 | m_ShadowDistance: 50 36 | m_ShadowCascades: 0 37 | m_Cascade2Split: 0.25 38 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 39 | m_ShadowDepthBias: 1 40 | m_ShadowNormalBias: 1 41 | m_SoftShadowsSupported: 0 42 | m_UseSRPBatcher: 1 43 | m_SupportsDynamicBatching: 0 44 | m_MixedLightingSupported: 1 45 | m_DebugLevel: 0 46 | m_ColorGradingMode: 0 47 | m_ColorGradingLutSize: 16 48 | m_ShadowType: 1 49 | m_LocalShadowsSupported: 0 50 | m_LocalShadowsAtlasResolution: 256 51 | m_MaxPixelLights: 0 52 | m_ShadowAtlasResolution: 256 53 | m_ShaderVariantLogLevel: 0 54 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-LowQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a31e9f9f9c9d4b9429ed0d1234e22103 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-MediumQuality.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRP-MediumQuality 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 5 16 | k_AssetPreviousVersion: 5 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsHDR: 0 26 | m_MSAA: 1 27 | m_RenderScale: 1 28 | m_MainLightRenderingMode: 1 29 | m_MainLightShadowsSupported: 1 30 | m_MainLightShadowmapResolution: 2048 31 | m_AdditionalLightsRenderingMode: 1 32 | m_AdditionalLightsPerObjectLimit: 4 33 | m_AdditionalLightShadowsSupported: 0 34 | m_AdditionalLightsShadowmapResolution: 512 35 | m_ShadowDistance: 50 36 | m_ShadowCascades: 0 37 | m_Cascade2Split: 0.25 38 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 39 | m_ShadowDepthBias: 1 40 | m_ShadowNormalBias: 1 41 | m_SoftShadowsSupported: 0 42 | m_UseSRPBatcher: 1 43 | m_SupportsDynamicBatching: 0 44 | m_MixedLightingSupported: 1 45 | m_DebugLevel: 0 46 | m_ColorGradingMode: 0 47 | m_ColorGradingLutSize: 32 48 | m_ShadowType: 1 49 | m_LocalShadowsSupported: 0 50 | m_LocalShadowsAtlasResolution: 256 51 | m_MaxPixelLights: 0 52 | m_ShadowAtlasResolution: 256 53 | m_ShaderVariantLogLevel: 0 54 | -------------------------------------------------------------------------------- /Assets/Settings/UniversalRP-MediumQuality.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d847b876476d3d6468f5dfcd34266f96 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Tom Weiland 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. -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.rlabrecque.steamworks.net": "https://github.com/rlabrecque/Steamworks.NET.git?path=/com.rlabrecque.steamworks.net", 4 | "com.unity.collab-proxy": "1.5.7", 5 | "com.unity.ide.rider": "2.0.7", 6 | "com.unity.ide.visualstudio": "2.0.12", 7 | "com.unity.ide.vscode": "1.2.3", 8 | "com.unity.render-pipelines.universal": "10.5.0", 9 | "com.unity.test-framework": "1.1.26", 10 | "com.unity.textmeshpro": "3.0.6", 11 | "com.unity.timeline": "1.4.8", 12 | "com.unity.ugui": "1.0.0", 13 | "net.tomweiland.riptide": "https://github.com/RiptideNetworking/Riptide.git?path=/Packages/Core#2.1.2", 14 | "com.unity.modules.ai": "1.0.0", 15 | "com.unity.modules.androidjni": "1.0.0", 16 | "com.unity.modules.animation": "1.0.0", 17 | "com.unity.modules.assetbundle": "1.0.0", 18 | "com.unity.modules.audio": "1.0.0", 19 | "com.unity.modules.cloth": "1.0.0", 20 | "com.unity.modules.director": "1.0.0", 21 | "com.unity.modules.imageconversion": "1.0.0", 22 | "com.unity.modules.imgui": "1.0.0", 23 | "com.unity.modules.jsonserialize": "1.0.0", 24 | "com.unity.modules.particlesystem": "1.0.0", 25 | "com.unity.modules.physics": "1.0.0", 26 | "com.unity.modules.physics2d": "1.0.0", 27 | "com.unity.modules.screencapture": "1.0.0", 28 | "com.unity.modules.terrain": "1.0.0", 29 | "com.unity.modules.terrainphysics": "1.0.0", 30 | "com.unity.modules.tilemap": "1.0.0", 31 | "com.unity.modules.ui": "1.0.0", 32 | "com.unity.modules.uielements": "1.0.0", 33 | "com.unity.modules.umbra": "1.0.0", 34 | "com.unity.modules.unityanalytics": "1.0.0", 35 | "com.unity.modules.unitywebrequest": "1.0.0", 36 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 37 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 38 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 39 | "com.unity.modules.unitywebrequestwww": "1.0.0", 40 | "com.unity.modules.vehicles": "1.0.0", 41 | "com.unity.modules.video": "1.0.0", 42 | "com.unity.modules.vr": "1.0.0", 43 | "com.unity.modules.wind": "1.0.0", 44 | "com.unity.modules.xr": "1.0.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.rlabrecque.steamworks.net": { 4 | "version": "https://github.com/rlabrecque/Steamworks.NET.git?path=/com.rlabrecque.steamworks.net", 5 | "depth": 0, 6 | "source": "git", 7 | "dependencies": {}, 8 | "hash": "4dafa26fbd032c83c1970298cc93d66f47edfb59" 9 | }, 10 | "com.unity.collab-proxy": { 11 | "version": "1.5.7", 12 | "depth": 0, 13 | "source": "registry", 14 | "dependencies": { 15 | "com.unity.nuget.newtonsoft-json": "2.0.0" 16 | }, 17 | "url": "https://packages.unity.com" 18 | }, 19 | "com.unity.ext.nunit": { 20 | "version": "1.0.6", 21 | "depth": 1, 22 | "source": "registry", 23 | "dependencies": {}, 24 | "url": "https://packages.unity.com" 25 | }, 26 | "com.unity.ide.rider": { 27 | "version": "2.0.7", 28 | "depth": 0, 29 | "source": "registry", 30 | "dependencies": { 31 | "com.unity.test-framework": "1.1.1" 32 | }, 33 | "url": "https://packages.unity.com" 34 | }, 35 | "com.unity.ide.visualstudio": { 36 | "version": "2.0.12", 37 | "depth": 0, 38 | "source": "registry", 39 | "dependencies": { 40 | "com.unity.test-framework": "1.1.9" 41 | }, 42 | "url": "https://packages.unity.com" 43 | }, 44 | "com.unity.ide.vscode": { 45 | "version": "1.2.3", 46 | "depth": 0, 47 | "source": "registry", 48 | "dependencies": {}, 49 | "url": "https://packages.unity.com" 50 | }, 51 | "com.unity.mathematics": { 52 | "version": "1.1.0", 53 | "depth": 1, 54 | "source": "registry", 55 | "dependencies": {}, 56 | "url": "https://packages.unity.com" 57 | }, 58 | "com.unity.nuget.newtonsoft-json": { 59 | "version": "2.0.0", 60 | "depth": 1, 61 | "source": "registry", 62 | "dependencies": {}, 63 | "url": "https://packages.unity.com" 64 | }, 65 | "com.unity.render-pipelines.core": { 66 | "version": "10.5.0", 67 | "depth": 1, 68 | "source": "registry", 69 | "dependencies": { 70 | "com.unity.ugui": "1.0.0" 71 | }, 72 | "url": "https://packages.unity.com" 73 | }, 74 | "com.unity.render-pipelines.universal": { 75 | "version": "10.5.0", 76 | "depth": 0, 77 | "source": "registry", 78 | "dependencies": { 79 | "com.unity.mathematics": "1.1.0", 80 | "com.unity.render-pipelines.core": "10.5.0", 81 | "com.unity.shadergraph": "10.5.0" 82 | }, 83 | "url": "https://packages.unity.com" 84 | }, 85 | "com.unity.searcher": { 86 | "version": "4.3.2", 87 | "depth": 2, 88 | "source": "registry", 89 | "dependencies": {}, 90 | "url": "https://packages.unity.com" 91 | }, 92 | "com.unity.shadergraph": { 93 | "version": "10.5.0", 94 | "depth": 1, 95 | "source": "registry", 96 | "dependencies": { 97 | "com.unity.render-pipelines.core": "10.5.0", 98 | "com.unity.searcher": "4.3.2" 99 | }, 100 | "url": "https://packages.unity.com" 101 | }, 102 | "com.unity.test-framework": { 103 | "version": "1.1.26", 104 | "depth": 0, 105 | "source": "registry", 106 | "dependencies": { 107 | "com.unity.ext.nunit": "1.0.6", 108 | "com.unity.modules.imgui": "1.0.0", 109 | "com.unity.modules.jsonserialize": "1.0.0" 110 | }, 111 | "url": "https://packages.unity.com" 112 | }, 113 | "com.unity.textmeshpro": { 114 | "version": "3.0.6", 115 | "depth": 0, 116 | "source": "registry", 117 | "dependencies": { 118 | "com.unity.ugui": "1.0.0" 119 | }, 120 | "url": "https://packages.unity.com" 121 | }, 122 | "com.unity.timeline": { 123 | "version": "1.4.8", 124 | "depth": 0, 125 | "source": "registry", 126 | "dependencies": { 127 | "com.unity.modules.director": "1.0.0", 128 | "com.unity.modules.animation": "1.0.0", 129 | "com.unity.modules.audio": "1.0.0", 130 | "com.unity.modules.particlesystem": "1.0.0" 131 | }, 132 | "url": "https://packages.unity.com" 133 | }, 134 | "com.unity.ugui": { 135 | "version": "1.0.0", 136 | "depth": 0, 137 | "source": "builtin", 138 | "dependencies": { 139 | "com.unity.modules.ui": "1.0.0", 140 | "com.unity.modules.imgui": "1.0.0" 141 | } 142 | }, 143 | "net.tomweiland.riptide": { 144 | "version": "https://github.com/RiptideNetworking/Riptide.git?path=/Packages/Core#2.1.2", 145 | "depth": 0, 146 | "source": "git", 147 | "dependencies": {}, 148 | "hash": "28fa394397fbafbcca45b8b8c1ccacc401fcb65c" 149 | }, 150 | "com.unity.modules.ai": { 151 | "version": "1.0.0", 152 | "depth": 0, 153 | "source": "builtin", 154 | "dependencies": {} 155 | }, 156 | "com.unity.modules.androidjni": { 157 | "version": "1.0.0", 158 | "depth": 0, 159 | "source": "builtin", 160 | "dependencies": {} 161 | }, 162 | "com.unity.modules.animation": { 163 | "version": "1.0.0", 164 | "depth": 0, 165 | "source": "builtin", 166 | "dependencies": {} 167 | }, 168 | "com.unity.modules.assetbundle": { 169 | "version": "1.0.0", 170 | "depth": 0, 171 | "source": "builtin", 172 | "dependencies": {} 173 | }, 174 | "com.unity.modules.audio": { 175 | "version": "1.0.0", 176 | "depth": 0, 177 | "source": "builtin", 178 | "dependencies": {} 179 | }, 180 | "com.unity.modules.cloth": { 181 | "version": "1.0.0", 182 | "depth": 0, 183 | "source": "builtin", 184 | "dependencies": { 185 | "com.unity.modules.physics": "1.0.0" 186 | } 187 | }, 188 | "com.unity.modules.director": { 189 | "version": "1.0.0", 190 | "depth": 0, 191 | "source": "builtin", 192 | "dependencies": { 193 | "com.unity.modules.audio": "1.0.0", 194 | "com.unity.modules.animation": "1.0.0" 195 | } 196 | }, 197 | "com.unity.modules.imageconversion": { 198 | "version": "1.0.0", 199 | "depth": 0, 200 | "source": "builtin", 201 | "dependencies": {} 202 | }, 203 | "com.unity.modules.imgui": { 204 | "version": "1.0.0", 205 | "depth": 0, 206 | "source": "builtin", 207 | "dependencies": {} 208 | }, 209 | "com.unity.modules.jsonserialize": { 210 | "version": "1.0.0", 211 | "depth": 0, 212 | "source": "builtin", 213 | "dependencies": {} 214 | }, 215 | "com.unity.modules.particlesystem": { 216 | "version": "1.0.0", 217 | "depth": 0, 218 | "source": "builtin", 219 | "dependencies": {} 220 | }, 221 | "com.unity.modules.physics": { 222 | "version": "1.0.0", 223 | "depth": 0, 224 | "source": "builtin", 225 | "dependencies": {} 226 | }, 227 | "com.unity.modules.physics2d": { 228 | "version": "1.0.0", 229 | "depth": 0, 230 | "source": "builtin", 231 | "dependencies": {} 232 | }, 233 | "com.unity.modules.screencapture": { 234 | "version": "1.0.0", 235 | "depth": 0, 236 | "source": "builtin", 237 | "dependencies": { 238 | "com.unity.modules.imageconversion": "1.0.0" 239 | } 240 | }, 241 | "com.unity.modules.subsystems": { 242 | "version": "1.0.0", 243 | "depth": 1, 244 | "source": "builtin", 245 | "dependencies": { 246 | "com.unity.modules.jsonserialize": "1.0.0" 247 | } 248 | }, 249 | "com.unity.modules.terrain": { 250 | "version": "1.0.0", 251 | "depth": 0, 252 | "source": "builtin", 253 | "dependencies": {} 254 | }, 255 | "com.unity.modules.terrainphysics": { 256 | "version": "1.0.0", 257 | "depth": 0, 258 | "source": "builtin", 259 | "dependencies": { 260 | "com.unity.modules.physics": "1.0.0", 261 | "com.unity.modules.terrain": "1.0.0" 262 | } 263 | }, 264 | "com.unity.modules.tilemap": { 265 | "version": "1.0.0", 266 | "depth": 0, 267 | "source": "builtin", 268 | "dependencies": { 269 | "com.unity.modules.physics2d": "1.0.0" 270 | } 271 | }, 272 | "com.unity.modules.ui": { 273 | "version": "1.0.0", 274 | "depth": 0, 275 | "source": "builtin", 276 | "dependencies": {} 277 | }, 278 | "com.unity.modules.uielements": { 279 | "version": "1.0.0", 280 | "depth": 0, 281 | "source": "builtin", 282 | "dependencies": { 283 | "com.unity.modules.ui": "1.0.0", 284 | "com.unity.modules.imgui": "1.0.0", 285 | "com.unity.modules.jsonserialize": "1.0.0", 286 | "com.unity.modules.uielementsnative": "1.0.0" 287 | } 288 | }, 289 | "com.unity.modules.uielementsnative": { 290 | "version": "1.0.0", 291 | "depth": 1, 292 | "source": "builtin", 293 | "dependencies": { 294 | "com.unity.modules.ui": "1.0.0", 295 | "com.unity.modules.imgui": "1.0.0", 296 | "com.unity.modules.jsonserialize": "1.0.0" 297 | } 298 | }, 299 | "com.unity.modules.umbra": { 300 | "version": "1.0.0", 301 | "depth": 0, 302 | "source": "builtin", 303 | "dependencies": {} 304 | }, 305 | "com.unity.modules.unityanalytics": { 306 | "version": "1.0.0", 307 | "depth": 0, 308 | "source": "builtin", 309 | "dependencies": { 310 | "com.unity.modules.unitywebrequest": "1.0.0", 311 | "com.unity.modules.jsonserialize": "1.0.0" 312 | } 313 | }, 314 | "com.unity.modules.unitywebrequest": { 315 | "version": "1.0.0", 316 | "depth": 0, 317 | "source": "builtin", 318 | "dependencies": {} 319 | }, 320 | "com.unity.modules.unitywebrequestassetbundle": { 321 | "version": "1.0.0", 322 | "depth": 0, 323 | "source": "builtin", 324 | "dependencies": { 325 | "com.unity.modules.assetbundle": "1.0.0", 326 | "com.unity.modules.unitywebrequest": "1.0.0" 327 | } 328 | }, 329 | "com.unity.modules.unitywebrequestaudio": { 330 | "version": "1.0.0", 331 | "depth": 0, 332 | "source": "builtin", 333 | "dependencies": { 334 | "com.unity.modules.unitywebrequest": "1.0.0", 335 | "com.unity.modules.audio": "1.0.0" 336 | } 337 | }, 338 | "com.unity.modules.unitywebrequesttexture": { 339 | "version": "1.0.0", 340 | "depth": 0, 341 | "source": "builtin", 342 | "dependencies": { 343 | "com.unity.modules.unitywebrequest": "1.0.0", 344 | "com.unity.modules.imageconversion": "1.0.0" 345 | } 346 | }, 347 | "com.unity.modules.unitywebrequestwww": { 348 | "version": "1.0.0", 349 | "depth": 0, 350 | "source": "builtin", 351 | "dependencies": { 352 | "com.unity.modules.unitywebrequest": "1.0.0", 353 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 354 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 355 | "com.unity.modules.audio": "1.0.0", 356 | "com.unity.modules.assetbundle": "1.0.0", 357 | "com.unity.modules.imageconversion": "1.0.0" 358 | } 359 | }, 360 | "com.unity.modules.vehicles": { 361 | "version": "1.0.0", 362 | "depth": 0, 363 | "source": "builtin", 364 | "dependencies": { 365 | "com.unity.modules.physics": "1.0.0" 366 | } 367 | }, 368 | "com.unity.modules.video": { 369 | "version": "1.0.0", 370 | "depth": 0, 371 | "source": "builtin", 372 | "dependencies": { 373 | "com.unity.modules.audio": "1.0.0", 374 | "com.unity.modules.ui": "1.0.0", 375 | "com.unity.modules.unitywebrequest": "1.0.0" 376 | } 377 | }, 378 | "com.unity.modules.vr": { 379 | "version": "1.0.0", 380 | "depth": 0, 381 | "source": "builtin", 382 | "dependencies": { 383 | "com.unity.modules.jsonserialize": "1.0.0", 384 | "com.unity.modules.physics": "1.0.0", 385 | "com.unity.modules.xr": "1.0.0" 386 | } 387 | }, 388 | "com.unity.modules.wind": { 389 | "version": "1.0.0", 390 | "depth": 0, 391 | "source": "builtin", 392 | "dependencies": {} 393 | }, 394 | "com.unity.modules.xr": { 395 | "version": "1.0.0", 396 | "depth": 0, 397 | "source": "builtin", 398 | "dependencies": { 399 | "com.unity.modules.physics": "1.0.0", 400 | "com.unity.modules.jsonserialize": "1.0.0", 401 | "com.unity.modules.subsystems": "1.0.0" 402 | } 403 | } 404 | } 405 | } 406 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /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: 13 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.1 18 | m_ClothInterCollisionStiffness: 0.2 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_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 7 37 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/RiptideSteamTransport/Demos/PlayerHosted/PlayerHostedDemo.unity 10 | guid: d1f9e043c5748144581d75a124ddb1d1 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_AssetPipelineMode: 1 6 | m_ObjectHideFlags: 0 7 | serializedVersion: 10 8 | m_ExternalVersionControlSupport: Visible Meta Files 9 | m_SerializationMode: 2 10 | m_LineEndingsForNewScripts: 0 11 | m_DefaultBehaviorMode: 0 12 | m_PrefabRegularEnvironment: {fileID: 0} 13 | m_PrefabUIEnvironment: {fileID: 0} 14 | m_SpritePackerMode: 0 15 | m_SpritePackerPaddingPower: 1 16 | m_EtcTextureCompressorBehavior: 1 17 | m_EtcTextureFastCompressor: 1 18 | m_EtcTextureNormalCompressor: 2 19 | m_EtcTextureBestCompressor: 4 20 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 21 | m_ProjectGenerationRootNamespace: 22 | m_CollabEditorSettings: 23 | inProgressEnabled: 1 24 | m_EnableTextureStreamingInEditMode: 1 25 | m_EnableTextureStreamingInPlayMode: 1 26 | m_AsyncShaderCompilation: 1 27 | m_EnterPlayModeOptionsEnabled: 0 28 | m_EnterPlayModeOptions: 3 29 | m_ShowLightmapResolutionOverlay: 1 30 | m_UseLegacyProbeSampleCount: 0 31 | m_SerializeInlineMappingsOnOneLine: 1 32 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} 41 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 42 | m_PreloadedShaders: [] 43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 44 | type: 0} 45 | m_CustomRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0, 46 | type: 2} 47 | m_TransparencySortMode: 0 48 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 49 | m_DefaultRenderingPath: 1 50 | m_DefaultMobileRenderingPath: 1 51 | m_TierSettings: [] 52 | m_LightmapStripping: 0 53 | m_FogStripping: 0 54 | m_InstancingStripping: 0 55 | m_LightmapKeepPlain: 1 56 | m_LightmapKeepDirCombined: 1 57 | m_LightmapKeepDynamicPlain: 1 58 | m_LightmapKeepDynamicDirCombined: 1 59 | m_LightmapKeepShadowMask: 1 60 | m_LightmapKeepSubtractive: 1 61 | m_FogKeepLinear: 1 62 | m_FogKeepExp: 1 63 | m_FogKeepExp2: 1 64 | m_AlbedoSwatchInfos: [] 65 | m_LightsUseLinearIntensity: 1 66 | m_LightsUseColorTemperature: 0 67 | m_LogWhenShaderIsCompiled: 0 68 | m_AllowEnlightenSupportForUpgradedProject: 1 69 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /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: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: e7689051185d12f4298e1ebb2693a29f, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: e8537455c6c08bd4e8bf0be3707da685, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.13f1 2 | m_EditorVersionWithRevision: 2020.3.13f1 (71691879b7f5) 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: 2 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 2 22 | textureQuality: 0 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.4 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 16 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 11400000, guid: a31e9f9f9c9d4b9429ed0d1234e22103, type: 2} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Medium 47 | pixelLightCount: 1 48 | shadows: 1 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 2 58 | textureQuality: 0 59 | anisotropicTextures: 1 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 1 66 | lodBias: 0.7 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 64 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 16 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 11400000, guid: d847b876476d3d6468f5dfcd34266f96, type: 2} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: High 83 | pixelLightCount: 2 84 | shadows: 2 85 | shadowResolution: 1 86 | shadowProjection: 1 87 | shadowCascades: 2 88 | shadowDistance: 40 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 1 93 | skinWeights: 2 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 2 97 | softParticles: 0 98 | softVegetation: 1 99 | realtimeReflectionProbes: 1 100 | billboardsFaceCameraPosition: 1 101 | vSyncCount: 1 102 | lodBias: 1 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 256 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 16 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0, type: 2} 116 | excludedTargetPlatforms: [] 117 | m_PerPlatformDefaultQuality: 118 | Android: 1 119 | Lumin: 2 120 | Nintendo Switch: 2 121 | PS4: 2 122 | Stadia: 2 123 | Standalone: 2 124 | WebGL: 1 125 | Windows Store Apps: 2 126 | XboxOne: 2 127 | iPhone: 1 128 | tvOS: 1 129 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.025 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 4 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /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 |
2 | 3 | 4 | 5 |
6 |
DocsDiscordDonate
7 |

Steam Transport for Riptide Networking

8 | 9 | A transport for [Riptide Networking](https://github.com/RiptideNetworking/Riptide) that uses [SteamNetworkingSockets](https://partner.steamgames.com/doc/api/ISteamNetworkingSockets). 10 | 11 | For a list of other available transports, see the [transports](https://github.com/RiptideNetworking/Riptide#low-level-transports) section of Riptide's main README. 12 | 13 | ## Dependencies 14 | 15 | You must have both [Riptide Networking](https://github.com/RiptideNetworking/Riptide) and [Steamworks.NET](https://github.com/rlabrecque/Steamworks.NET) installed and set up before you can use this transport. 16 | 17 | ## Limitations 18 | 19 | Only works on platforms supported by Steam. 20 | 21 | ## Donate 22 | 23 | Riptide and its transports are 100% free to use, but if you'd like to financially support Riptide's development and get early access to new features, you can do so through [GitHub Sponsors](https://github.com/sponsors/tom-weiland). 24 | 25 | ## License 26 | 27 | Distributed under the MIT license. See [LICENSE.md](LICENSE.md) for more information. -------------------------------------------------------------------------------- /steam_appid.txt: -------------------------------------------------------------------------------- 1 | 480 --------------------------------------------------------------------------------