forked from cgvr/DeltaVR
Compare commits
21 Commits
876306a2af
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 30c0652453 | |||
| 85beb73f51 | |||
| 011d9dfdda | |||
| 2e7dc403ad | |||
| 4bda55baca | |||
| ba1f0c855d | |||
| 415484c1f0 | |||
| 2347d27c62 | |||
| 74c2ca6a98 | |||
| f3d0f206af | |||
| f9b2084876 | |||
| 53c6b04d23 | |||
| 91e44c5dae | |||
| 216e2660df | |||
| 57222f0bb0 | |||
| 768ed39abe | |||
| 89b9b5bd7a | |||
| 901334b6bf | |||
| 1885b1fbe8 | |||
| f81bc2f7fd | |||
| a4a6535779 |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -102,4 +102,8 @@ fmod_editor.log
|
|||||||
NetrworkManagerUI.prefab
|
NetrworkManagerUI.prefab
|
||||||
NetrworkManagerUI.prefab.meta
|
NetrworkManagerUI.prefab.meta
|
||||||
CustomNetworkManager.prefab
|
CustomNetworkManager.prefab
|
||||||
CustomNetworkManager.prefab.meta
|
CustomNetworkManager.prefab.meta
|
||||||
|
|
||||||
|
|
||||||
|
# Project-specific files
|
||||||
|
config.json
|
||||||
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
@@ -1,61 +0,0 @@
|
|||||||
# This .gitignore file should be placed at the root of your Unity project directory
|
|
||||||
#
|
|
||||||
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
|
|
||||||
#
|
|
||||||
/[Ll]ibrary/
|
|
||||||
/[Tt]emp/
|
|
||||||
/[Oo]bj/
|
|
||||||
/[Bb]uild/
|
|
||||||
/[Bb]uilds/
|
|
||||||
/[Ll]ogs/
|
|
||||||
/[Mm]emoryCaptures/
|
|
||||||
|
|
||||||
# Asset meta data should only be ignored when the corresponding asset is also ignored
|
|
||||||
!/[Aa]ssets/**/*.meta
|
|
||||||
|
|
||||||
# Uncomment this line if you wish to ignore the asset store tools plugin
|
|
||||||
# /[Aa]ssets/AssetStoreTools*
|
|
||||||
|
|
||||||
# Autogenerated Jetbrains Rider plugin
|
|
||||||
[Aa]ssets/Plugins/Editor/JetBrains*
|
|
||||||
|
|
||||||
# Visual Studio cache directory
|
|
||||||
.vs/
|
|
||||||
|
|
||||||
# Gradle cache directory
|
|
||||||
.gradle/
|
|
||||||
|
|
||||||
# Autogenerated VS/MD/Consulo solution and project files
|
|
||||||
ExportedObj/
|
|
||||||
.consulo/
|
|
||||||
*.csproj
|
|
||||||
*.unityproj
|
|
||||||
*.sln
|
|
||||||
*.suo
|
|
||||||
*.tmp
|
|
||||||
*.user
|
|
||||||
*.userprefs
|
|
||||||
*.pidb
|
|
||||||
*.booproj
|
|
||||||
*.svd
|
|
||||||
*.pdb
|
|
||||||
*.mdb
|
|
||||||
*.opendb
|
|
||||||
*.VC.db
|
|
||||||
|
|
||||||
# Unity3D generated meta files
|
|
||||||
*.pidb.meta
|
|
||||||
*.pdb.meta
|
|
||||||
*.mdb.meta
|
|
||||||
*.meta
|
|
||||||
|
|
||||||
# Unity3D generated file on crash reports
|
|
||||||
sysinfo.txt
|
|
||||||
|
|
||||||
# Builds
|
|
||||||
*.apk
|
|
||||||
*.unitypackage
|
|
||||||
|
|
||||||
# Crashlytics generated file
|
|
||||||
crashlytics-build.properties
|
|
||||||
|
|
||||||
7
Assets/Fish-Networking-Discovery-main/LICENSE.meta
Normal file
7
Assets/Fish-Networking-Discovery-main/LICENSE.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4939e812d2cae8a448666fc57569da59
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e8cb728e8e288c947a1e0870382445bd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -81,6 +81,7 @@ public class NetworkMenuUI : MonoBehaviour
|
|||||||
}
|
}
|
||||||
private void OnStartPlaying()
|
private void OnStartPlaying()
|
||||||
{
|
{
|
||||||
|
Debug.Log("START PRESSED");
|
||||||
statusText.text = "Starting host...";
|
statusText.text = "Starting host...";
|
||||||
StartCoroutine(HostAndSearchRoutine());
|
StartCoroutine(HostAndSearchRoutine());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 49f99c1c0ae8c774eb6bdcbc83c2cfef
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e928fc8fc03e26a46ad7f8520d468e41
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
7
Assets/Fish-Networking-Discovery-main/README.md.meta
Normal file
7
Assets/Fish-Networking-Discovery-main/README.md.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8d77d91c1b4e73044b53ddce11333fea
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 474f76f05fac11a4e8e1ed68314fba90
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
23
Assets/FishNet.Config.XML
Normal file
23
Assets/FishNet.Config.XML
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ConfigurationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<Loaded>true</Loaded>
|
||||||
|
<PrefabGenerator>
|
||||||
|
<Enabled>true</Enabled>
|
||||||
|
<LogToConsole>true</LogToConsole>
|
||||||
|
<FullRebuild>false</FullRebuild>
|
||||||
|
<SaveChanges>true</SaveChanges>
|
||||||
|
<DefaultPrefabObjectsPath>Assets\DefaultPrefabObjects.asset</DefaultPrefabObjectsPath>
|
||||||
|
<SearchScope>1</SearchScope>
|
||||||
|
<ExcludedFolders />
|
||||||
|
<IncludedFolders>
|
||||||
|
<string>Assets\_PROJECT</string>
|
||||||
|
</IncludedFolders>
|
||||||
|
</PrefabGenerator>
|
||||||
|
<CodeStripping>
|
||||||
|
<IsBuilding>false</IsBuilding>
|
||||||
|
<IsDevelopment>false</IsDevelopment>
|
||||||
|
<IsHeadless>false</IsHeadless>
|
||||||
|
<StripReleaseBuilds>false</StripReleaseBuilds>
|
||||||
|
<StrippingType>0</StrippingType>
|
||||||
|
</CodeStripping>
|
||||||
|
</ConfigurationData>
|
||||||
7
Assets/FishNet.Config.XML.meta
Normal file
7
Assets/FishNet.Config.XML.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fdec8b985bdf2364cac858b4136da794
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -319,9 +319,12 @@ namespace FishNet.Editing.PrefabCollectionGenerator
|
|||||||
{
|
{
|
||||||
foreach (string path in GetPrefabFiles("Assets", excludedPaths, true))
|
foreach (string path in GetPrefabFiles("Assets", excludedPaths, true))
|
||||||
{
|
{
|
||||||
|
|
||||||
NetworkObject nob = AssetDatabase.LoadAssetAtPath<NetworkObject>(path);
|
NetworkObject nob = AssetDatabase.LoadAssetAtPath<NetworkObject>(path);
|
||||||
if (nob != null)
|
if (nob != null)
|
||||||
foundNobs.Add(nob);
|
foundNobs.Add(nob);
|
||||||
|
else
|
||||||
|
UnityEngine.Debug.LogWarning("Last loading error with: " + path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Specific folders.
|
//Specific folders.
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,7 +7,7 @@ TextureImporter:
|
|||||||
mipmaps:
|
mipmaps:
|
||||||
mipMapMode: 0
|
mipMapMode: 0
|
||||||
enableMipMap: 1
|
enableMipMap: 1
|
||||||
sRGBTexture: 1
|
sRGBTexture: 0
|
||||||
linearTexture: 0
|
linearTexture: 0
|
||||||
fadeOut: 0
|
fadeOut: 0
|
||||||
borderMipMap: 0
|
borderMipMap: 0
|
||||||
@@ -54,7 +54,7 @@ TextureImporter:
|
|||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
alphaIsTransparency: 0
|
alphaIsTransparency: 0
|
||||||
spriteTessellationDetail: -1
|
spriteTessellationDetail: -1
|
||||||
textureType: 0
|
textureType: 1
|
||||||
textureShape: 1
|
textureShape: 1
|
||||||
singleChannelComponent: 0
|
singleChannelComponent: 0
|
||||||
flipbookRows: 1
|
flipbookRows: 1
|
||||||
|
|||||||
Binary file not shown.
@@ -0,0 +1,124 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 261e77f9774b3224b9f61ebaff302284
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 262dce796e1903548b7a2a7909d20be4
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -0,0 +1,124 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ab1a16880e37cfa499309fc8fd4250ba
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -119,7 +119,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!224 &2888630431832822380
|
--- !u!224 &2888630431832822380
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -128,7 +128,7 @@ RectTransform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 674832405591274748}
|
m_GameObject: {fileID: 674832405591274748}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 6.199966}
|
m_LocalPosition: {x: 0, y: 0, z: 6}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
@@ -137,8 +137,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 198, y: 29.999985}
|
m_AnchoredPosition: {x: 25.8, y: -57.9}
|
||||||
m_SizeDelta: {x: 178.01, y: 338.4}
|
m_SizeDelta: {x: 485, y: 46.5}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7009866660814900916
|
--- !u!222 &7009866660814900916
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -168,9 +168,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: 'Warning:
|
m_text: High speeds may cause nausea!
|
||||||
|
|
||||||
High speeds may cause nausea'
|
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: d564a6b9a8a781b438125b614edcc297, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: d564a6b9a8a781b438125b614edcc297, type: 2}
|
||||||
m_sharedMaterial: {fileID: 2467261418627247352, guid: d564a6b9a8a781b438125b614edcc297,
|
m_sharedMaterial: {fileID: 2467261418627247352, guid: d564a6b9a8a781b438125b614edcc297,
|
||||||
@@ -205,7 +203,7 @@ MonoBehaviour:
|
|||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 4
|
||||||
m_VerticalAlignment: 256
|
m_VerticalAlignment: 256
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
m_characterSpacing: 0
|
m_characterSpacing: 0
|
||||||
@@ -236,7 +234,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 1
|
m_pageToDisplay: 1
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
m_margin: {x: 1.8959656, y: 6.638962, z: 3.9048767, w: 1.7601442}
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -582,6 +580,7 @@ Transform:
|
|||||||
- {fileID: 7867682990484010893}
|
- {fileID: 7867682990484010893}
|
||||||
- {fileID: 385502688868600332}
|
- {fileID: 385502688868600332}
|
||||||
- {fileID: 8911245181170312639}
|
- {fileID: 8911245181170312639}
|
||||||
|
- {fileID: 4369549003892251738}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@@ -711,8 +710,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -371.7, y: 0.000015258789}
|
m_AnchoredPosition: {x: -429.3, y: 0.000015258789}
|
||||||
m_SizeDelta: {x: 469.55, y: 50.48}
|
m_SizeDelta: {x: 319.7, y: 50.48}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &1756154180137300123
|
--- !u!222 &1756154180137300123
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -808,7 +807,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 1
|
m_pageToDisplay: 1
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
m_margin: {x: 2.8457031, y: 0, z: 2.8460312, w: 0}
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -1140,6 +1139,149 @@ RectTransform:
|
|||||||
m_AnchoredPosition: {x: -5.404525, y: 60.661545}
|
m_AnchoredPosition: {x: -5.404525, y: 60.661545}
|
||||||
m_SizeDelta: {x: 100, y: 100}
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &1647071810007517722
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4369549003892251738}
|
||||||
|
- component: {fileID: 18611445735460691}
|
||||||
|
- component: {fileID: 8343075384873062513}
|
||||||
|
- component: {fileID: 5285357331933866282}
|
||||||
|
- component: {fileID: 1310480035629572623}
|
||||||
|
- component: {fileID: 1510780549024052800}
|
||||||
|
- component: {fileID: 4307275810096043329}
|
||||||
|
- component: {fileID: 143507707063213418}
|
||||||
|
m_Layer: 12
|
||||||
|
m_Name: Settings
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4369549003892251738
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5343771095006709614}
|
||||||
|
m_RootOrder: -1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &18611445735460691
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 26a0dd79a025e5041a41f576b1aa4968, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
turnOffButton: {fileID: 3645818974320619446}
|
||||||
|
turnOnButton: {fileID: 1311809556432207317}
|
||||||
|
moveSpeedSlider: {fileID: 6956878155406096985}
|
||||||
|
locomotion: {fileID: 1565464911732960072}
|
||||||
|
--- !u!114 &8343075384873062513
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
target: 0
|
||||||
|
slider: {fileID: 7370795858478176567}
|
||||||
|
--- !u!114 &5285357331933866282
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
target: 3
|
||||||
|
slider: {fileID: 8524569723447833986}
|
||||||
|
--- !u!114 &1310480035629572623
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
target: 5
|
||||||
|
slider: {fileID: 3954205046647893400}
|
||||||
|
--- !u!114 &1510780549024052800
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
target: 4
|
||||||
|
slider: {fileID: 7262865820799039206}
|
||||||
|
--- !u!114 &4307275810096043329
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
target: 1
|
||||||
|
slider: {fileID: 512852062931003448}
|
||||||
|
--- !u!114 &143507707063213418
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1647071810007517722}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1ebe1a3f8ef35a041a8ef39da672dd49, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
valueControllers:
|
||||||
|
- {fileID: 18611445735460691}
|
||||||
|
- {fileID: 8343075384873062513}
|
||||||
|
- {fileID: 5285357331933866282}
|
||||||
|
- {fileID: 1310480035629572623}
|
||||||
|
- {fileID: 1510780549024052800}
|
||||||
|
- {fileID: 4307275810096043329}
|
||||||
--- !u!1 &1694677102371321062
|
--- !u!1 &1694677102371321062
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2219,7 +2361,6 @@ GameObject:
|
|||||||
- component: {fileID: 5495779272626688296}
|
- component: {fileID: 5495779272626688296}
|
||||||
- component: {fileID: 270386226070323618}
|
- component: {fileID: 270386226070323618}
|
||||||
- component: {fileID: 7370795858478176567}
|
- component: {fileID: 7370795858478176567}
|
||||||
- component: {fileID: 9192465668386235667}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -2346,19 +2487,6 @@ MonoBehaviour:
|
|||||||
minValue: 0
|
minValue: 0
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
slideareaOffsetMultiplier: 0.9
|
slideareaOffsetMultiplier: 0.9
|
||||||
--- !u!114 &9192465668386235667
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3421967330093517364}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
target: 0
|
|
||||||
--- !u!1 &3434260850308121859
|
--- !u!1 &3434260850308121859
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2412,7 +2540,6 @@ GameObject:
|
|||||||
- component: {fileID: 5857106340495004348}
|
- component: {fileID: 5857106340495004348}
|
||||||
- component: {fileID: 467034009919322666}
|
- component: {fileID: 467034009919322666}
|
||||||
- component: {fileID: 3954205046647893400}
|
- component: {fileID: 3954205046647893400}
|
||||||
- component: {fileID: 8737582689073729793}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -2539,19 +2666,6 @@ MonoBehaviour:
|
|||||||
minValue: 0
|
minValue: 0
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
slideareaOffsetMultiplier: 0.9
|
slideareaOffsetMultiplier: 0.9
|
||||||
--- !u!114 &8737582689073729793
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3504227185401202113}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
target: 5
|
|
||||||
--- !u!1 &3847096334227967442
|
--- !u!1 &3847096334227967442
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2858,6 +2972,153 @@ MonoBehaviour:
|
|||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
m_UseSpriteMesh: 0
|
m_UseSpriteMesh: 0
|
||||||
m_PixelsPerUnitMultiplier: 1
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &4399914816600051466
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3664260978476899140}
|
||||||
|
- component: {fileID: 7108608958374546862}
|
||||||
|
- component: {fileID: 2424293117796193332}
|
||||||
|
- component: {fileID: 5839269911837038846}
|
||||||
|
- component: {fileID: 8403009779207699600}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Restore Defaults Button
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3664260978476899140
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4399914816600051466}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: -5.9}
|
||||||
|
m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
|
||||||
|
m_ConstrainProportionsScale: 1
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4738851406616228330}
|
||||||
|
m_RootOrder: -1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 399.3, y: 266.8}
|
||||||
|
m_SizeDelta: {x: 2155, y: 1076}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7108608958374546862
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4399914816600051466}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2424293117796193332
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4399914816600051466}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: ab1a16880e37cfa499309fc8fd4250ba, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &5839269911837038846
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4399914816600051466}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 0
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 2
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 21300000, guid: 261e77f9774b3224b9f61ebaff302284,
|
||||||
|
type: 3}
|
||||||
|
m_PressedSprite: {fileID: 21300000, guid: 261e77f9774b3224b9f61ebaff302284, type: 3}
|
||||||
|
m_SelectedSprite: {fileID: 21300000, guid: ab1a16880e37cfa499309fc8fd4250ba, type: 3}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 2424293117796193332}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 143507707063213418}
|
||||||
|
m_TargetAssemblyTypeName: RestoreDefaultsController, Assembly-CSharp
|
||||||
|
m_MethodName: OnRestoreDefaults
|
||||||
|
m_Mode: 1
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
--- !u!114 &8403009779207699600
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4399914816600051466}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9c648a319c5c6aa47b3ef152a10657bf, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &4745390056551288905
|
--- !u!1 &4745390056551288905
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3036,7 +3297,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -1849.8, y: 30}
|
m_AnchoredPosition: {x: -1849.8, y: 30}
|
||||||
m_SizeDelta: {x: 90.1, y: 50.5}
|
m_SizeDelta: {x: 89, y: 50.5}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &1344781521441133505
|
--- !u!222 &1344781521441133505
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -3539,7 +3800,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -2404.8, y: 34.7}
|
m_AnchoredPosition: {x: -2600, y: 34.7}
|
||||||
m_SizeDelta: {x: 220, y: 49.6}
|
m_SizeDelta: {x: 220, y: 49.6}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &2306375091028476275
|
--- !u!222 &2306375091028476275
|
||||||
@@ -3605,7 +3866,7 @@ MonoBehaviour:
|
|||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 4
|
||||||
m_VerticalAlignment: 512
|
m_VerticalAlignment: 512
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
m_characterSpacing: 0
|
m_characterSpacing: 0
|
||||||
@@ -3636,7 +3897,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 1
|
m_pageToDisplay: 1
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
m_margin: {x: 14.186401, y: 0, z: -0.9451599, w: 0}
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -3655,7 +3916,6 @@ GameObject:
|
|||||||
- component: {fileID: 4467346825075014904}
|
- component: {fileID: 4467346825075014904}
|
||||||
- component: {fileID: 1078020185355697329}
|
- component: {fileID: 1078020185355697329}
|
||||||
- component: {fileID: 7262865820799039206}
|
- component: {fileID: 7262865820799039206}
|
||||||
- component: {fileID: 8463522706283787556}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -3782,19 +4042,6 @@ MonoBehaviour:
|
|||||||
minValue: 0
|
minValue: 0
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
slideareaOffsetMultiplier: 0.9
|
slideareaOffsetMultiplier: 0.9
|
||||||
--- !u!114 &8463522706283787556
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5731468542189211806}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
target: 4
|
|
||||||
--- !u!1 &5770108565631511295
|
--- !u!1 &5770108565631511295
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -5374,6 +5621,7 @@ RectTransform:
|
|||||||
m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}
|
m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}
|
||||||
m_ConstrainProportionsScale: 1
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children:
|
m_Children:
|
||||||
|
- {fileID: 3664260978476899140}
|
||||||
- {fileID: 3355479367658290507}
|
- {fileID: 3355479367658290507}
|
||||||
- {fileID: 4818343909123725175}
|
- {fileID: 4818343909123725175}
|
||||||
m_Father: {fileID: 1774211016983706491}
|
m_Father: {fileID: 1774211016983706491}
|
||||||
@@ -5429,13 +5677,14 @@ MonoBehaviour:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6798620428918177696}
|
m_GameObject: {fileID: 6798620428918177696}
|
||||||
m_Enabled: 1
|
m_Enabled: 0
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 26a0dd79a025e5041a41f576b1aa4968, type: 3}
|
m_Script: {fileID: 11500000, guid: 26a0dd79a025e5041a41f576b1aa4968, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
turnOffButton: {fileID: 3645818974320619446}
|
turnOffButton: {fileID: 3645818974320619446}
|
||||||
turnOnButton: {fileID: 1311809556432207317}
|
turnOnButton: {fileID: 1311809556432207317}
|
||||||
|
moveSpeedSlider: {fileID: 6956878155406096985}
|
||||||
locomotion: {fileID: 1565464911732960072}
|
locomotion: {fileID: 1565464911732960072}
|
||||||
--- !u!1 &6976341305452677775
|
--- !u!1 &6976341305452677775
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -5463,7 +5712,7 @@ RectTransform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6976341305452677775}
|
m_GameObject: {fileID: 6976341305452677775}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 1.0000267}
|
m_LocalPosition: {x: 0, y: 0, z: 1}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
@@ -5472,8 +5721,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -406.48022, y: 260}
|
m_AnchoredPosition: {x: -446.3, y: 255.3}
|
||||||
m_SizeDelta: {x: 383.04, y: 50.5}
|
m_SizeDelta: {x: 327.3, y: 50.5}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &8334943640923905114
|
--- !u!222 &8334943640923905114
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -5569,7 +5818,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 1
|
m_pageToDisplay: 1
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
m_margin: {x: 0, y: 0, z: 0.9477234, w: 0}
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -5625,7 +5874,6 @@ GameObject:
|
|||||||
- component: {fileID: 7392776148620295955}
|
- component: {fileID: 7392776148620295955}
|
||||||
- component: {fileID: 623723497249906612}
|
- component: {fileID: 623723497249906612}
|
||||||
- component: {fileID: 8524569723447833986}
|
- component: {fileID: 8524569723447833986}
|
||||||
- component: {fileID: 2518031444015721236}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -5752,19 +6000,6 @@ MonoBehaviour:
|
|||||||
minValue: 0
|
minValue: 0
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
slideareaOffsetMultiplier: 0.9
|
slideareaOffsetMultiplier: 0.9
|
||||||
--- !u!114 &2518031444015721236
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7116268483853744053}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
target: 3
|
|
||||||
--- !u!1 &7137625347935658456
|
--- !u!1 &7137625347935658456
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -6850,7 +7085,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -2404.8, y: 30}
|
m_AnchoredPosition: {x: -2424, y: 30}
|
||||||
m_SizeDelta: {x: 186.1, y: 50.5}
|
m_SizeDelta: {x: 186.1, y: 50.5}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &6159749963066026057
|
--- !u!222 &6159749963066026057
|
||||||
@@ -6916,7 +7151,7 @@ MonoBehaviour:
|
|||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 4
|
||||||
m_VerticalAlignment: 512
|
m_VerticalAlignment: 512
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
m_characterSpacing: 0
|
m_characterSpacing: 0
|
||||||
@@ -6966,7 +7201,6 @@ GameObject:
|
|||||||
- component: {fileID: 4806540607707404536}
|
- component: {fileID: 4806540607707404536}
|
||||||
- component: {fileID: 1263225200033619485}
|
- component: {fileID: 1263225200033619485}
|
||||||
- component: {fileID: 512852062931003448}
|
- component: {fileID: 512852062931003448}
|
||||||
- component: {fileID: 5185990981600041478}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -7093,19 +7327,6 @@ MonoBehaviour:
|
|||||||
minValue: 0
|
minValue: 0
|
||||||
maxValue: 1
|
maxValue: 1
|
||||||
slideareaOffsetMultiplier: 0.9
|
slideareaOffsetMultiplier: 0.9
|
||||||
--- !u!114 &5185990981600041478
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7795711801980221647}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: ebe1ab889a9bed940995d4f47bc743ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
target: 1
|
|
||||||
--- !u!1 &7941339244779152679
|
--- !u!1 &7941339244779152679
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -7851,7 +8072,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -3755, y: 30}
|
m_AnchoredPosition: {x: -3897, y: 30}
|
||||||
m_SizeDelta: {x: 131.9, y: 50.5}
|
m_SizeDelta: {x: 131.9, y: 50.5}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7891019527381773321
|
--- !u!222 &7891019527381773321
|
||||||
|
|||||||
@@ -0,0 +1,112 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
abstract public class AbstractSlider : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public RectTransform sliderBackground; // Assign in Inspector
|
||||||
|
public float minValue = 0f;
|
||||||
|
public float maxValue = 1f;
|
||||||
|
public float slideareaOffsetMultiplier = 0.9f;
|
||||||
|
public float CurrentValue { get; private set; }
|
||||||
|
public float CurrentNormalizedValue { get; private set; }
|
||||||
|
|
||||||
|
private RectTransform handleRect;
|
||||||
|
private Vector2 backgroundStart;
|
||||||
|
private float backgroundWidth;
|
||||||
|
|
||||||
|
public System.Action<float, bool> OnValueChanged;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
if (null == handleRect)
|
||||||
|
{
|
||||||
|
handleRect = GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sliderBackground != null)
|
||||||
|
{
|
||||||
|
backgroundStart = sliderBackground.position;
|
||||||
|
backgroundWidth = sliderBackground.rect.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateHandlePosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void OnBeginDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
UpdateSlider(eventData);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void OnDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
UpdateSlider(eventData);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void OnEndDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
UpdateSlider(eventData, true);
|
||||||
|
EventSystem.current.SetSelectedGameObject(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void SetHandleValue(float unnormalizedValue)
|
||||||
|
{
|
||||||
|
SetValuesFromValue(unnormalizedValue);
|
||||||
|
UpdateHandlePosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void SetHandleNormalizedValue(float normalizedValue)
|
||||||
|
{
|
||||||
|
SetValuesFromNormalizedValue(normalizedValue);
|
||||||
|
UpdateHandlePosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual protected void UpdateHandlePosition()
|
||||||
|
{
|
||||||
|
if (null == handleRect) return; // The options menu might not be opened yet
|
||||||
|
|
||||||
|
float halfWidth = sliderBackground.rect.width * 0.5f;
|
||||||
|
float limit = halfWidth * slideareaOffsetMultiplier;
|
||||||
|
|
||||||
|
float x = Mathf.Lerp(-limit, limit, CurrentNormalizedValue);
|
||||||
|
handleRect.localPosition = new Vector3(x, handleRect.localPosition.y, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual protected void UpdateSlider(PointerEventData eventData, bool draggingEnded = false)
|
||||||
|
{
|
||||||
|
Vector2 localPoint;
|
||||||
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(sliderBackground, eventData.position, eventData.pressEventCamera, out localPoint);
|
||||||
|
float halfWidth = sliderBackground.rect.width * 0.5f;
|
||||||
|
|
||||||
|
// Only allow dragging within 90% of the slider width, centered
|
||||||
|
float limit = halfWidth * slideareaOffsetMultiplier;
|
||||||
|
float clampedX = Mathf.Clamp(localPoint.x, -limit, limit);
|
||||||
|
|
||||||
|
|
||||||
|
Vector3 newPosition = new Vector3(clampedX, handleRect.localPosition.y, handleRect.localPosition.z);
|
||||||
|
handleRect.localPosition = newPosition;
|
||||||
|
|
||||||
|
// Normalize within the limited 90% range
|
||||||
|
float normalized = (clampedX + limit) / (limit * 2f);
|
||||||
|
SetValuesFromValue(Mathf.Lerp(minValue, maxValue, normalized));
|
||||||
|
|
||||||
|
OnValueChanged?.Invoke(CurrentValue, draggingEnded);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void SetValuesFromNormalizedValue(float normalizedValue)
|
||||||
|
{
|
||||||
|
CurrentNormalizedValue = normalizedValue;
|
||||||
|
CurrentValue = CurrentNormalizedValue * (maxValue - minValue) + minValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void SetValuesFromValue(float unnormalizedValue)
|
||||||
|
{
|
||||||
|
CurrentValue = unnormalizedValue;
|
||||||
|
CurrentNormalizedValue = (CurrentValue - minValue) / (maxValue - minValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8fe704cafb6cf2441a62a6497d58f229
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
abstract public class AbstractValueController : MonoBehaviour
|
||||||
|
{
|
||||||
|
abstract public void RestoreFromConfig();
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dfd6e172b2a79944788029ce9d4220dd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -4,87 +4,8 @@ using TMPro;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
public class AudioSliderDragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
public class AudioSliderDragHandler : AbstractSlider, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
public RectTransform sliderBackground; // Assign in Inspector
|
|
||||||
public float minValue = 0f;
|
|
||||||
public float maxValue = 1f;
|
|
||||||
public float slideareaOffsetMultiplier = 0.9f;
|
|
||||||
public float CurrentValue { get; private set; }
|
|
||||||
|
|
||||||
private RectTransform handleRect;
|
|
||||||
private Vector2 backgroundStart;
|
|
||||||
private float backgroundWidth;
|
|
||||||
|
|
||||||
public System.Action<float> OnValueChanged;
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
handleRect = GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
if (sliderBackground != null)
|
|
||||||
{
|
|
||||||
backgroundStart = sliderBackground.position;
|
|
||||||
backgroundWidth = sliderBackground.rect.width;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnBeginDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetHandlePosition(float normalizedValue)
|
|
||||||
{
|
|
||||||
float halfWidth = sliderBackground.rect.width * 0.5f;
|
|
||||||
float limit = halfWidth * slideareaOffsetMultiplier;
|
|
||||||
|
|
||||||
float x = Mathf.Lerp(-limit, limit, normalizedValue);
|
|
||||||
handleRect.localPosition = new Vector3(x, handleRect.localPosition.y, 0);
|
|
||||||
|
|
||||||
CurrentValue = normalizedValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void OnDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnEndDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
//notify FMOD
|
|
||||||
}
|
|
||||||
private void UpdateSlider(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
|
|
||||||
//Debug.Log("UpDating Slider");
|
|
||||||
Vector2 localPoint;
|
|
||||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(sliderBackground, eventData.position, eventData.pressEventCamera, out localPoint);
|
|
||||||
|
|
||||||
float halfWidth = sliderBackground.rect.width * 0.5f;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Only allow dragging within 90% of the slider width, centered
|
|
||||||
float limit = halfWidth * slideareaOffsetMultiplier;
|
|
||||||
float clampedX = Mathf.Clamp(localPoint.x, -limit, limit);
|
|
||||||
|
|
||||||
Vector3 newPosition = new Vector3(clampedX, handleRect.localPosition.y, handleRect.localPosition.z);
|
|
||||||
handleRect.localPosition = newPosition;
|
|
||||||
|
|
||||||
// Normalize within the limited 90% range
|
|
||||||
float normalized = (clampedX + limit) / (limit * 2f);
|
|
||||||
//Debug.Log(normalized);
|
|
||||||
CurrentValue = Mathf.Lerp(minValue, maxValue, normalized);
|
|
||||||
|
|
||||||
//Debug.Log(warningThreshholdValue);
|
|
||||||
OnValueChanged?.Invoke(CurrentValue);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
//using UnityEngine.UIElements;
|
||||||
using UnityEngine.XR.Interaction.Toolkit;
|
using UnityEngine.XR.Interaction.Toolkit;
|
||||||
|
|
||||||
public class ContinuoslocomotionConfigurator : MonoBehaviour
|
public class ContinuoslocomotionConfigurator : AbstractValueController
|
||||||
{
|
{
|
||||||
public Button turnOffButton;
|
public Button turnOffButton;
|
||||||
public Button turnOnButton;
|
public Button turnOnButton;
|
||||||
|
public MoveSliderDragHandler moveSpeedSlider;
|
||||||
public ContinuousMoveProviderBase locomotion;
|
public ContinuousMoveProviderBase locomotion;
|
||||||
|
|
||||||
// Events for listeners
|
// Events for listeners
|
||||||
@@ -19,13 +21,28 @@ public class ContinuoslocomotionConfigurator : MonoBehaviour
|
|||||||
{
|
{
|
||||||
turnOnButton.onClick.AddListener(enableLocomotion);
|
turnOnButton.onClick.AddListener(enableLocomotion);
|
||||||
turnOffButton.onClick.AddListener(disableLocomotion);
|
turnOffButton.onClick.AddListener(disableLocomotion);
|
||||||
turnOffButton.gameObject.SetActive(false);
|
|
||||||
|
RestoreFromConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
override public void RestoreFromConfig()
|
||||||
|
{
|
||||||
|
bool isContinuousLocomotion = ConfigManager.instance.GetIsContinuousLocomotion();
|
||||||
|
turnOffButton.gameObject.SetActive(isContinuousLocomotion);
|
||||||
|
turnOnButton.gameObject.SetActive(!isContinuousLocomotion);
|
||||||
|
locomotion.enabled = isContinuousLocomotion;
|
||||||
|
OnLocomotionToggled?.Invoke(isContinuousLocomotion);
|
||||||
|
|
||||||
|
float continuousLocomotionSpeed = ConfigManager.instance.GetContinuousLocomotionSpeed();
|
||||||
|
moveSpeedSlider.SetHandleValue(continuousLocomotionSpeed);
|
||||||
|
locomotion.moveSpeed = continuousLocomotionSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateSpeed(float speed)
|
public void UpdateSpeed(float speed)
|
||||||
{
|
{
|
||||||
locomotion.moveSpeed = speed;
|
locomotion.moveSpeed = speed;
|
||||||
OnSpeedChanged?.Invoke(speed);
|
OnSpeedChanged?.Invoke(speed);
|
||||||
|
WriteToConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableLocomotion()
|
private void enableLocomotion()
|
||||||
@@ -35,6 +52,7 @@ public class ContinuoslocomotionConfigurator : MonoBehaviour
|
|||||||
turnOnButton.gameObject.SetActive(false);
|
turnOnButton.gameObject.SetActive(false);
|
||||||
turnOffButton.gameObject.SetActive(true);
|
turnOffButton.gameObject.SetActive(true);
|
||||||
OnLocomotionToggled?.Invoke(true);
|
OnLocomotionToggled?.Invoke(true);
|
||||||
|
WriteToConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableLocomotion()
|
private void disableLocomotion()
|
||||||
@@ -44,5 +62,12 @@ public class ContinuoslocomotionConfigurator : MonoBehaviour
|
|||||||
turnOnButton.gameObject.SetActive(true);
|
turnOnButton.gameObject.SetActive(true);
|
||||||
turnOffButton.gameObject.SetActive(false);
|
turnOffButton.gameObject.SetActive(false);
|
||||||
OnLocomotionToggled?.Invoke(false);
|
OnLocomotionToggled?.Invoke(false);
|
||||||
|
WriteToConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void WriteToConfig()
|
||||||
|
{
|
||||||
|
ConfigManager.instance.SetIsContinuousLocomotion(locomotion.enabled);
|
||||||
|
ConfigManager.instance.SetContinuousLocomotionSpeed(locomotion.moveSpeed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,82 +3,35 @@ using UnityEngine.UI;
|
|||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
|
|
||||||
public class MoveSliderDragHandler : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler
|
public class MoveSliderDragHandler : AbstractSlider, IDragHandler, IBeginDragHandler, IEndDragHandler
|
||||||
{
|
{
|
||||||
public RectTransform sliderBackground; // Assign in Inspector
|
|
||||||
public float minValue = 2f;
|
|
||||||
public float maxValue = 5f;
|
|
||||||
public float slideareaOffsetMultiplier = 0.9f;
|
|
||||||
public TMP_Text warningText;
|
public TMP_Text warningText;
|
||||||
public float warningThreshholdValue = 0.65f;
|
public float warningThreshholdValue = 0.65f;
|
||||||
public float CurrentValue { get; private set; }
|
|
||||||
|
|
||||||
public ContinuoslocomotionConfigurator configurator;
|
public ContinuoslocomotionConfigurator configurator;
|
||||||
|
|
||||||
private RectTransform handleRect;
|
override public void OnEndDrag(PointerEventData eventData)
|
||||||
private Vector2 backgroundStart;
|
|
||||||
private float backgroundWidth;
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
{
|
||||||
handleRect = GetComponent<RectTransform>();
|
base.OnEndDrag(eventData);
|
||||||
|
|
||||||
if (sliderBackground != null)
|
|
||||||
{
|
|
||||||
backgroundStart = sliderBackground.position;
|
|
||||||
backgroundWidth = sliderBackground.rect.width;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnBeginDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnEndDrag(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
UpdateSlider(eventData);
|
|
||||||
configurator.UpdateSpeed(CurrentValue);
|
configurator.UpdateSpeed(CurrentValue);
|
||||||
|
|
||||||
EventSystem.current.SetSelectedGameObject(null);
|
|
||||||
}
|
}
|
||||||
private void UpdateSlider(PointerEventData eventData)
|
|
||||||
|
override protected void UpdateSlider(PointerEventData eventData, bool draggingEnded = false)
|
||||||
{
|
{
|
||||||
Debug.Log("UpDating Slider");
|
base.UpdateSlider(eventData, draggingEnded);
|
||||||
Vector2 localPoint;
|
DisplayWarningTextIfNecessary();
|
||||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(sliderBackground, eventData.position, eventData.pressEventCamera, out localPoint);
|
}
|
||||||
|
|
||||||
float halfWidth = sliderBackground.rect.width * 0.5f;
|
override protected void UpdateHandlePosition()
|
||||||
|
{
|
||||||
|
base.UpdateHandlePosition();
|
||||||
|
DisplayWarningTextIfNecessary();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void DisplayWarningTextIfNecessary()
|
||||||
|
{
|
||||||
// Only allow dragging within 90% of the slider width, centered
|
if (CurrentValue > (warningThreshholdValue * (maxValue - minValue) + minValue)) warningText.gameObject.SetActive(true);
|
||||||
float limit = halfWidth * slideareaOffsetMultiplier;
|
|
||||||
float clampedX = Mathf.Clamp(localPoint.x, -limit, limit);
|
|
||||||
|
|
||||||
Vector3 newPosition = new Vector3(clampedX, handleRect.localPosition.y, handleRect.localPosition.z);
|
|
||||||
handleRect.localPosition = newPosition;
|
|
||||||
|
|
||||||
// Normalize within the limited 90% range
|
|
||||||
float normalized = (clampedX + limit) / (limit * 2f);
|
|
||||||
//Debug.Log(normalized);
|
|
||||||
CurrentValue = Mathf.Lerp(minValue, maxValue, normalized);
|
|
||||||
|
|
||||||
// Displaying the warning.
|
|
||||||
|
|
||||||
if (CurrentValue > (warningThreshholdValue*(maxValue - minValue) + minValue)) warningText.gameObject.SetActive(true);
|
|
||||||
|
|
||||||
else warningText.gameObject.SetActive(false);
|
else warningText.gameObject.SetActive(false);
|
||||||
|
|
||||||
//Debug.Log(warningThreshholdValue);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
public class RegularButtonView : MonoBehaviour, IPointerEnterHandler, IPointerClickHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public void OnPointerEnter(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, this.gameObject);
|
||||||
|
}
|
||||||
|
public void OnPointerClick(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, this.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9c648a319c5c6aa47b3ef152a10657bf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Unity.Burst;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class RestoreDefaultsController : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
public List<AbstractValueController> valueControllers = new List<AbstractValueController>();
|
||||||
|
|
||||||
|
public void OnRestoreDefaults()
|
||||||
|
{
|
||||||
|
ConfigManager.instance.RestoreDefaultConfig();
|
||||||
|
|
||||||
|
foreach (AbstractValueController avc in valueControllers)
|
||||||
|
{
|
||||||
|
avc.RestoreFromConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1ebe1a3f8ef35a041a8ef39da672dd49
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class SliderToVCA : MonoBehaviour
|
public class SliderToVCA : AbstractValueController
|
||||||
{
|
{
|
||||||
public enum VCATarget
|
public enum VCATarget
|
||||||
{
|
{
|
||||||
@@ -13,76 +13,85 @@ public class SliderToVCA : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
public VCATarget target;
|
public VCATarget target;
|
||||||
private AudioSliderDragHandler slider;
|
public AudioSliderDragHandler slider;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
slider = GetComponent<AudioSliderDragHandler>();
|
|
||||||
slider.OnValueChanged += ApplyVolume;
|
slider.OnValueChanged += ApplyVolume;
|
||||||
}
|
}
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
|
||||||
float initialValue = GetInitialValueFromAudioManager();
|
|
||||||
slider.SetHandlePosition(initialValue); // we will add this function
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private float GetInitialValueFromAudioManager()
|
|
||||||
{
|
|
||||||
switch (target)
|
|
||||||
{
|
{
|
||||||
case VCATarget.Master:
|
RestoreFromConfig();
|
||||||
return AudioManager.Instance.MasterVolume;
|
|
||||||
case VCATarget.Ambiences:
|
|
||||||
return AudioManager.Instance.AmbienceVolume;
|
|
||||||
case VCATarget.Music:
|
|
||||||
return AudioManager.Instance.MusicVolume;
|
|
||||||
case VCATarget.SFX:
|
|
||||||
return AudioManager.Instance.SFXVolume;
|
|
||||||
case VCATarget.UI:
|
|
||||||
return AudioManager.Instance.UIVolume;
|
|
||||||
case VCATarget.Voiceovers:
|
|
||||||
return AudioManager.Instance.VoiceoverVolume;
|
|
||||||
default:
|
|
||||||
return 0.5f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
// Constantly push slider value to the VCA
|
|
||||||
ApplyVolume(slider.CurrentValue);
|
|
||||||
//Debug.Log("CurrentValue: " + slider.CurrentValue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyVolume(float value)
|
override public void RestoreFromConfig()
|
||||||
|
{
|
||||||
|
float initialValue = GetInitialValue();
|
||||||
|
slider.SetHandleValue(initialValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private float GetInitialValue()
|
||||||
{
|
{
|
||||||
|
switch (target)
|
||||||
|
{
|
||||||
|
case VCATarget.Master:
|
||||||
|
return ConfigManager.instance.getVolumeMaster();
|
||||||
|
case VCATarget.Ambiences:
|
||||||
|
return ConfigManager.instance.getVolumeAmbient();
|
||||||
|
case VCATarget.Music:
|
||||||
|
return ConfigManager.instance.getVolumeMusic();
|
||||||
|
case VCATarget.SFX:
|
||||||
|
return ConfigManager.instance.getVolumeSFX();
|
||||||
|
case VCATarget.UI:
|
||||||
|
return ConfigManager.instance.getVolumeUI();
|
||||||
|
case VCATarget.Voiceovers:
|
||||||
|
return ConfigManager.instance.getVolumeVO();
|
||||||
|
default:
|
||||||
|
return 0.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
// Constantly push slider value to the VCA
|
||||||
|
ApplyVolume(slider.CurrentValue, false);
|
||||||
|
//Debug.Log("CurrentValue: " + slider.CurrentValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyVolume(float value, bool isLastChange)
|
||||||
|
{
|
||||||
switch (target)
|
switch (target)
|
||||||
{
|
{
|
||||||
case VCATarget.Master:
|
case VCATarget.Master:
|
||||||
AudioManager.Instance.SetMasterVCA(value);
|
AudioManager.Instance.SetMasterVCA(value);
|
||||||
//Debug.LogError(value);
|
if (isLastChange) ConfigManager.instance.SetVolumeMaster(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VCATarget.Ambiences:
|
case VCATarget.Ambiences:
|
||||||
AudioManager.Instance.SetAmbientVCA(value);
|
AudioManager.Instance.SetAmbientVCA(value);
|
||||||
|
if (isLastChange) ConfigManager.instance.SetVolumeAmbient(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VCATarget.Music:
|
case VCATarget.Music:
|
||||||
AudioManager.Instance.SetMusicVCA(value);
|
AudioManager.Instance.SetMusicVCA(value);
|
||||||
|
if (isLastChange) ConfigManager.instance.SetVolumeMusic(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VCATarget.SFX:
|
case VCATarget.SFX:
|
||||||
AudioManager.Instance.SetSFXVCA(value);
|
AudioManager.Instance.SetSFXVCA(value);
|
||||||
|
if (isLastChange) ConfigManager.instance.SetVolumeSFX(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VCATarget.UI:
|
case VCATarget.UI:
|
||||||
AudioManager.Instance.SetUIVCA(value);
|
AudioManager.Instance.SetUIVCA(value);
|
||||||
|
if (isLastChange) ConfigManager.instance.SetVolumeUI(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VCATarget.Voiceovers:
|
case VCATarget.Voiceovers:
|
||||||
AudioManager.Instance.SetVoiceoverVCA(value);
|
AudioManager.Instance.SetVoiceoverVCA(value);
|
||||||
|
if (isLastChange) ConfigManager.instance.SetVolumeVO(value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
@@ -44,6 +45,26 @@ namespace _PROJECT.NewHandPresence
|
|||||||
|
|
||||||
private GameObject _billboard;
|
private GameObject _billboard;
|
||||||
|
|
||||||
|
public enum TutorialInfoKey
|
||||||
|
{
|
||||||
|
Initialized,
|
||||||
|
LeftHintController,
|
||||||
|
RightHintController,
|
||||||
|
LeftSmartHandPresence,
|
||||||
|
RightSmartHandPresence
|
||||||
|
}
|
||||||
|
protected Dictionary<TutorialInfoKey, bool> initializationInfoStatus = new Dictionary<TutorialInfoKey, bool>();
|
||||||
|
protected Coroutine initializationInfoCoroutine;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
initializationInfoStatus.Add(TutorialInfoKey.Initialized, false);
|
||||||
|
initializationInfoStatus.Add(TutorialInfoKey.LeftHintController, false);
|
||||||
|
initializationInfoStatus.Add(TutorialInfoKey.RightHintController, false);
|
||||||
|
initializationInfoStatus.Add(TutorialInfoKey.LeftSmartHandPresence, false);
|
||||||
|
initializationInfoStatus.Add(TutorialInfoKey.RightSmartHandPresence, false);
|
||||||
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (_state == TutorialState.Initializing)
|
if (_state == TutorialState.Initializing)
|
||||||
@@ -177,29 +198,33 @@ namespace _PROJECT.NewHandPresence
|
|||||||
private void TryInitialize()
|
private void TryInitialize()
|
||||||
{
|
{
|
||||||
if (!CanInitialize()) return;
|
if (!CanInitialize()) return;
|
||||||
|
if (null == initializationInfoCoroutine)
|
||||||
|
{
|
||||||
|
initializationInfoCoroutine = StartCoroutine(InitializationInfoCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
_camera = Camera.main;
|
_camera = Camera.main;
|
||||||
|
|
||||||
Debug.Log("Initializing tutorial");
|
//Debug.Log("Initializing tutorial");
|
||||||
|
|
||||||
_leftHintController = leftHand.GetComponentInChildren<XRControllerHintController>();
|
_leftHintController = leftHand.GetComponentInChildren<XRControllerHintController>();
|
||||||
_rightHintController = rightHand.GetComponentInChildren<XRControllerHintController>();
|
_rightHintController = rightHand.GetComponentInChildren<XRControllerHintController>();
|
||||||
|
|
||||||
Debug.Log($"Left hint controller: {_leftHintController}");
|
initializationInfoStatus[TutorialInfoKey.LeftHintController] = null != _leftHintController;
|
||||||
Debug.Log($"Right hint controller: {_rightHintController}");
|
initializationInfoStatus[TutorialInfoKey.RightHintController] = null != _rightHintController;
|
||||||
|
|
||||||
_leftSmartHandPresence = leftHand.GetComponentInChildren<SmartHandPresence>();
|
_leftSmartHandPresence = leftHand.GetComponentInChildren<SmartHandPresence>();
|
||||||
_rightSmartHandPresence = rightHand.GetComponentInChildren<SmartHandPresence>();
|
_rightSmartHandPresence = rightHand.GetComponentInChildren<SmartHandPresence>();
|
||||||
|
|
||||||
Debug.Log($"Left smart hand presence: {_leftSmartHandPresence}");
|
initializationInfoStatus[TutorialInfoKey.LeftSmartHandPresence] = null != _leftSmartHandPresence;
|
||||||
Debug.Log($"Right smart hand presence: {_rightSmartHandPresence}");
|
initializationInfoStatus[TutorialInfoKey.RightSmartHandPresence] = null != _rightSmartHandPresence;
|
||||||
|
|
||||||
if (_leftHintController == null ||
|
if (_leftHintController == null ||
|
||||||
_rightHintController == null ||
|
_rightHintController == null ||
|
||||||
_leftSmartHandPresence == null ||
|
_leftSmartHandPresence == null ||
|
||||||
_rightSmartHandPresence == null)
|
_rightSmartHandPresence == null)
|
||||||
{
|
{
|
||||||
Debug.Log("Hint controller or smart hand presence is null");
|
//Debug.Log("Hint controller or smart hand presence is null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,6 +241,7 @@ namespace _PROJECT.NewHandPresence
|
|||||||
|
|
||||||
UpdateState(_state.Next());
|
UpdateState(_state.Next());
|
||||||
Debug.Log("Tutorial initialized");
|
Debug.Log("Tutorial initialized");
|
||||||
|
StopCoroutine(initializationInfoCoroutine);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnGripPerformed(SelectEnterEventArgs arg0)
|
private void OnGripPerformed(SelectEnterEventArgs arg0)
|
||||||
@@ -307,5 +333,35 @@ namespace _PROJECT.NewHandPresence
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IEnumerator InitializationInfoCoroutine()
|
||||||
|
{
|
||||||
|
string CombineMessage(TutorialInfoKey key, object value, string prefix)
|
||||||
|
{
|
||||||
|
bool isAvailable = initializationInfoStatus.GetValueOrDefault(key);
|
||||||
|
|
||||||
|
return prefix + ": " + (isAvailable ? value.ToString() : "NULL") + "\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isInitialized = initializationInfoStatus.GetValueOrDefault(TutorialInfoKey.Initialized);
|
||||||
|
while (!isInitialized)
|
||||||
|
{
|
||||||
|
isInitialized = initializationInfoStatus.GetValueOrDefault(TutorialInfoKey.Initialized);
|
||||||
|
|
||||||
|
string infoMessage = "Tutorial not yet initialized!" + "\r\n";
|
||||||
|
infoMessage += "(click me for more info)" + "\r\n";
|
||||||
|
infoMessage += "Hint controllers" + "\r\n";
|
||||||
|
infoMessage += CombineMessage(TutorialInfoKey.LeftHintController, _leftHintController, "Left");
|
||||||
|
infoMessage += CombineMessage(TutorialInfoKey.RightHintController, _rightHintController, "Right");
|
||||||
|
infoMessage += "Smart hand presence" + "\r\n";
|
||||||
|
infoMessage += CombineMessage(TutorialInfoKey.LeftSmartHandPresence, _leftSmartHandPresence, "Left");
|
||||||
|
infoMessage += CombineMessage(TutorialInfoKey.RightSmartHandPresence, _rightSmartHandPresence, "Right");
|
||||||
|
Debug.Log(infoMessage);
|
||||||
|
|
||||||
|
yield return new WaitForSeconds(7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,22 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class PlayAnimationOnTrigger : MonoBehaviour
|
public class PlayAnimationOnTrigger : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] public Animator animator; // Reference to the Animator component
|
public enum KnownAnimations
|
||||||
[SerializeField] public string animationName = "YourAnimation"; // Name of the animation to play
|
{
|
||||||
|
UFOFlight1
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Dictionary<KnownAnimations, string> animationNames = new Dictionary<KnownAnimations, string>();
|
||||||
|
|
||||||
|
[SerializeField] public Animator animator; // Reference to the Animator component
|
||||||
|
[SerializeField] public KnownAnimations animationName = KnownAnimations.UFOFlight1; // Name of the animation to play
|
||||||
|
|
||||||
|
protected void Awake()
|
||||||
|
{
|
||||||
|
animationNames[KnownAnimations.UFOFlight1] = "UFO group flight 1";
|
||||||
|
}
|
||||||
|
|
||||||
private void OnTriggerEnter(Collider other)
|
private void OnTriggerEnter(Collider other)
|
||||||
{
|
{
|
||||||
@@ -15,15 +27,16 @@ public class PlayAnimationOnTrigger : MonoBehaviour
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string animationNameString = animationNames[animationName];
|
||||||
|
|
||||||
// Check if the animation is already playing
|
// Check if the animation is already playing
|
||||||
if (animator.GetCurrentAnimatorStateInfo(0).IsName(animationName) && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1)
|
if (animator.GetCurrentAnimatorStateInfo(0).IsName(animationNameString) && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1)
|
||||||
{
|
{
|
||||||
Debug.Log("Animation is already playing.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Play the animation
|
// Play the animation
|
||||||
animator.Play(animationName, 0, 0f);
|
animator.Play(animationNameString, 0, 0f);
|
||||||
Debug.Log("Playing animation: " + animationName);
|
Debug.Log("Playing animation: " + animationNameString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,15 @@ namespace _PROJECT.Multiplayer.NewBow
|
|||||||
if (_notch == null)
|
if (_notch == null)
|
||||||
Debug.LogError("Notch not found");
|
Debug.LogError("Notch not found");
|
||||||
|
|
||||||
CreateArrowServer();
|
//CreateArrowServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnOwnershipServer(NetworkConnection prevOwner)
|
||||||
|
{
|
||||||
|
base.OnOwnershipServer(prevOwner);
|
||||||
|
|
||||||
|
if (Owner.IsValid)
|
||||||
|
CreateArrowServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnStartClient()
|
public override void OnStartClient()
|
||||||
|
|||||||
8
Assets/_PROJECT/Managers.meta
Normal file
8
Assets/_PROJECT/Managers.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7db8366967e9da242adbfd3af7e17fcd
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
197
Assets/_PROJECT/Managers/ConfigManager.cs
Normal file
197
Assets/_PROJECT/Managers/ConfigManager.cs
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
using FishNet.Component.Spawning;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.Serialization.Formatters.Binary;
|
||||||
|
using UnityEngine;
|
||||||
|
using Valve.Newtonsoft.Json;
|
||||||
|
using static ConfigManager;
|
||||||
|
|
||||||
|
public class ConfigManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
public static ConfigManager instance = null;
|
||||||
|
|
||||||
|
[System.Serializable]
|
||||||
|
public class Config
|
||||||
|
{
|
||||||
|
public bool isContinuousLocomotion = false;
|
||||||
|
public float continuousLocomotionSpeed = 3.0f;
|
||||||
|
public float volumeMaster = 0.5f;
|
||||||
|
public float volumeAmbient = 0.5f;
|
||||||
|
public float volumeMusic = 0.5f;
|
||||||
|
public float volumeSFX = 0.5f;
|
||||||
|
public float volumeUI = 0.5f;
|
||||||
|
public float volumeVO = 0.5f;
|
||||||
|
|
||||||
|
}
|
||||||
|
protected Config currentConfig = new Config();
|
||||||
|
protected string configFileName = "config.json";
|
||||||
|
protected string configFilePath;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (!instance) { instance = this; }
|
||||||
|
else if (instance != this) { Destroy(gameObject); }
|
||||||
|
|
||||||
|
DontDestroyOnLoad(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
configFilePath = Directory.GetCurrentDirectory() + "\\" + configFileName;
|
||||||
|
Debug.Log(configFilePath);
|
||||||
|
currentConfig = LoadConfigFromFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Config GetConfig()
|
||||||
|
{
|
||||||
|
return currentConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void SaveConfigToFile()
|
||||||
|
{
|
||||||
|
FileStream fileStream;
|
||||||
|
if (!File.Exists(configFilePath))
|
||||||
|
{
|
||||||
|
fileStream = File.Create(configFilePath);
|
||||||
|
fileStream.Close();
|
||||||
|
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
//fileStream = new FileStream(configFilePath, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
|
||||||
|
}
|
||||||
|
//StreamWriter writer = new StreamWriter(fileStream);
|
||||||
|
//writer.Write(JsonUtility.ToJson(currentConfig));
|
||||||
|
//writer.Close();
|
||||||
|
//fileStream.Close();
|
||||||
|
string json = JsonUtility.ToJson(currentConfig, true);
|
||||||
|
File.WriteAllText(configFilePath, json);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected Config LoadConfigFromFile()
|
||||||
|
{
|
||||||
|
if (!File.Exists(configFilePath))
|
||||||
|
{
|
||||||
|
CreateDefaultConfigFile(); // File did not exist, try to create an empty file
|
||||||
|
if (!File.Exists(configFilePath))
|
||||||
|
{
|
||||||
|
Debug.LogError("Config file was not found and could not be created: " + configFilePath);
|
||||||
|
return currentConfig;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Config config = JsonUtility.FromJson<Config>(File.ReadAllText(configFilePath));
|
||||||
|
|
||||||
|
/*FileStream fileStream = new FileStream(configFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||||
|
StreamReader reader = new StreamReader(fileStream);
|
||||||
|
Config config = JsonUtility.FromJson<Config>(reader.ReadToEnd());
|
||||||
|
reader.Close();
|
||||||
|
fileStream.Close();*/
|
||||||
|
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void CreateDefaultConfigFile()
|
||||||
|
{
|
||||||
|
currentConfig = new Config();
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RestoreDefaultConfig()
|
||||||
|
{
|
||||||
|
currentConfig = new Config();
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
|
||||||
|
public bool GetIsContinuousLocomotion()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.isContinuousLocomotion;
|
||||||
|
}
|
||||||
|
public void SetIsContinuousLocomotion(bool isContinuousLocomotion)
|
||||||
|
{
|
||||||
|
currentConfig.isContinuousLocomotion = isContinuousLocomotion;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float GetContinuousLocomotionSpeed()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.continuousLocomotionSpeed;
|
||||||
|
}
|
||||||
|
public void SetContinuousLocomotionSpeed(float continuousLocomotionSpeed)
|
||||||
|
{
|
||||||
|
currentConfig.continuousLocomotionSpeed = continuousLocomotionSpeed;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeMaster()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeMaster;
|
||||||
|
}
|
||||||
|
public void SetVolumeMaster(float masterVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeMaster = masterVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeAmbient()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeAmbient;
|
||||||
|
}
|
||||||
|
public void SetVolumeAmbient(float ambientVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeAmbient = ambientVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeMusic()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeMusic;
|
||||||
|
}
|
||||||
|
public void SetVolumeMusic(float musicVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeMusic = musicVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeSFX()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeSFX;
|
||||||
|
}
|
||||||
|
public void SetVolumeSFX(float sfxVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeSFX = sfxVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeUI()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeUI;
|
||||||
|
}
|
||||||
|
public void SetVolumeUI(float uiVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeUI = uiVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVolumeVO()
|
||||||
|
{
|
||||||
|
|
||||||
|
return currentConfig.volumeVO;
|
||||||
|
}
|
||||||
|
public void SetVolumeVO(float voVolume)
|
||||||
|
{
|
||||||
|
currentConfig.volumeVO = voVolume;
|
||||||
|
SaveConfigToFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/_PROJECT/Managers/ConfigManager.cs.meta
Normal file
11
Assets/_PROJECT/Managers/ConfigManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c7622588c230b4b448152a6dfd6c0588
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
46
Assets/_PROJECT/Managers/ConfigManager.prefab
Normal file
46
Assets/_PROJECT/Managers/ConfigManager.prefab
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8320216767994874586
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7021351325020055800}
|
||||||
|
- component: {fileID: 4493448285314379156}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: ConfigManager
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &7021351325020055800
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8320216767994874586}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -74.23521, y: 4.9800367, z: -13.716739}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 38
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &4493448285314379156
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8320216767994874586}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c7622588c230b4b448152a6dfd6c0588, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
7
Assets/_PROJECT/Managers/ConfigManager.prefab.meta
Normal file
7
Assets/_PROJECT/Managers/ConfigManager.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5d19b02089b931a469209b09142786a0
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
38
Assets/_PROJECT/Multiplayer/CustomNetworkManager.cs
Normal file
38
Assets/_PROJECT/Multiplayer/CustomNetworkManager.cs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
using FishNet.Component.Spawning;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class CustomNetworkManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
|
||||||
|
public static CustomNetworkManager instance = null;
|
||||||
|
|
||||||
|
public PlayerSpawner playerSpawner;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (!instance) { instance = this; }
|
||||||
|
else if (instance != this) { Destroy(gameObject); }
|
||||||
|
|
||||||
|
DontDestroyOnLoad(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (playerSpawner.Spawns.Length == 0) {
|
||||||
|
Debug.LogWarning("Player spawns undefined. Assign a player spawn to PlayerSpawner!");
|
||||||
|
} else {
|
||||||
|
bool hasSpawn = false;
|
||||||
|
foreach (Transform spawn in playerSpawner.Spawns)
|
||||||
|
{
|
||||||
|
hasSpawn |= spawn != null;
|
||||||
|
}
|
||||||
|
if (!hasSpawn)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Player spawns undefined. Assign a player spawn to PlayerSpawner!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
11
Assets/_PROJECT/Multiplayer/CustomNetworkManager.cs.meta
Normal file
11
Assets/_PROJECT/Multiplayer/CustomNetworkManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 067fc70e6bd1a024ba644f52017165fd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2212
Assets/_PROJECT/Multiplayer/Networking.prefab
Normal file
2212
Assets/_PROJECT/Multiplayer/Networking.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/_PROJECT/Multiplayer/Networking.prefab.meta
Normal file
7
Assets/_PROJECT/Multiplayer/Networking.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 67f163b4eb8c8df43b48aab810b8a0a8
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user