Compare commits
1 Commits
master
...
SamWorkset
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a13928a59 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -103,7 +103,3 @@ NetrworkManagerUI.prefab
|
||||
NetrworkManagerUI.prefab.meta
|
||||
CustomNetworkManager.prefab
|
||||
CustomNetworkManager.prefab.meta
|
||||
|
||||
|
||||
# Project-specific files
|
||||
config.json
|
||||
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
Normal file
61
Assets/Fish-Networking-Discovery-main/.gitignore
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4939e812d2cae8a448666fc57569da59
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e8cb728e8e288c947a1e0870382445bd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -81,7 +81,6 @@ public class NetworkMenuUI : MonoBehaviour
|
||||
}
|
||||
private void OnStartPlaying()
|
||||
{
|
||||
Debug.Log("START PRESSED");
|
||||
statusText.text = "Starting host...";
|
||||
StartCoroutine(HostAndSearchRoutine());
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49f99c1c0ae8c774eb6bdcbc83c2cfef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e928fc8fc03e26a46ad7f8520d468e41
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d77d91c1b4e73044b53ddce11333fea
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 474f76f05fac11a4e8e1ed68314fba90
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,23 +0,0 @@
|
||||
<?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>
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdec8b985bdf2364cac858b4136da794
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -319,12 +319,9 @@ namespace FishNet.Editing.PrefabCollectionGenerator
|
||||
{
|
||||
foreach (string path in GetPrefabFiles("Assets", excludedPaths, true))
|
||||
{
|
||||
|
||||
NetworkObject nob = AssetDatabase.LoadAssetAtPath<NetworkObject>(path);
|
||||
if (nob != null)
|
||||
foundNobs.Add(nob);
|
||||
else
|
||||
UnityEngine.Debug.LogWarning("Last loading error with: " + path);
|
||||
}
|
||||
}
|
||||
//Specific folders.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,7 +7,7 @@ TextureImporter:
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
@@ -54,7 +54,7 @@ TextureImporter:
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
|
||||
Binary file not shown.
@@ -1,124 +0,0 @@
|
||||
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.
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 262dce796e1903548b7a2a7909d20be4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,124 +0,0 @@
|
||||
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_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &2888630431832822380
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -128,7 +128,7 @@ RectTransform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 674832405591274748}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 6}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 6.199966}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
@@ -137,8 +137,8 @@ RectTransform:
|
||||
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: 25.8, y: -57.9}
|
||||
m_SizeDelta: {x: 485, y: 46.5}
|
||||
m_AnchoredPosition: {x: 198, y: 29.999985}
|
||||
m_SizeDelta: {x: 178.01, y: 338.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7009866660814900916
|
||||
CanvasRenderer:
|
||||
@@ -168,7 +168,9 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: High speeds may cause nausea!
|
||||
m_text: 'Warning:
|
||||
|
||||
High speeds may cause nausea'
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: d564a6b9a8a781b438125b614edcc297, type: 2}
|
||||
m_sharedMaterial: {fileID: 2467261418627247352, guid: d564a6b9a8a781b438125b614edcc297,
|
||||
@@ -203,7 +205,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 4
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -234,7 +236,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 1.8959656, y: 6.638962, z: 3.9048767, w: 1.7601442}
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -580,7 +582,6 @@ Transform:
|
||||
- {fileID: 7867682990484010893}
|
||||
- {fileID: 385502688868600332}
|
||||
- {fileID: 8911245181170312639}
|
||||
- {fileID: 4369549003892251738}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -710,8 +711,8 @@ RectTransform:
|
||||
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: -429.3, y: 0.000015258789}
|
||||
m_SizeDelta: {x: 319.7, y: 50.48}
|
||||
m_AnchoredPosition: {x: -371.7, y: 0.000015258789}
|
||||
m_SizeDelta: {x: 469.55, y: 50.48}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1756154180137300123
|
||||
CanvasRenderer:
|
||||
@@ -807,7 +808,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 2.8457031, y: 0, z: 2.8460312, w: 0}
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -1139,149 +1140,6 @@ RectTransform:
|
||||
m_AnchoredPosition: {x: -5.404525, y: 60.661545}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2361,6 +2219,7 @@ GameObject:
|
||||
- component: {fileID: 5495779272626688296}
|
||||
- component: {fileID: 270386226070323618}
|
||||
- component: {fileID: 7370795858478176567}
|
||||
- component: {fileID: 9192465668386235667}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
@@ -2487,6 +2346,19 @@ MonoBehaviour:
|
||||
minValue: 0
|
||||
maxValue: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2540,6 +2412,7 @@ GameObject:
|
||||
- component: {fileID: 5857106340495004348}
|
||||
- component: {fileID: 467034009919322666}
|
||||
- component: {fileID: 3954205046647893400}
|
||||
- component: {fileID: 8737582689073729793}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
@@ -2666,6 +2539,19 @@ MonoBehaviour:
|
||||
minValue: 0
|
||||
maxValue: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2972,153 +2858,6 @@ MonoBehaviour:
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3297,7 +3036,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -1849.8, y: 30}
|
||||
m_SizeDelta: {x: 89, y: 50.5}
|
||||
m_SizeDelta: {x: 90.1, y: 50.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1344781521441133505
|
||||
CanvasRenderer:
|
||||
@@ -3800,7 +3539,7 @@ RectTransform:
|
||||
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: -2600, y: 34.7}
|
||||
m_AnchoredPosition: {x: -2404.8, y: 34.7}
|
||||
m_SizeDelta: {x: 220, y: 49.6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2306375091028476275
|
||||
@@ -3866,7 +3605,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 4
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -3897,7 +3636,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 14.186401, y: 0, z: -0.9451599, w: 0}
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -3916,6 +3655,7 @@ GameObject:
|
||||
- component: {fileID: 4467346825075014904}
|
||||
- component: {fileID: 1078020185355697329}
|
||||
- component: {fileID: 7262865820799039206}
|
||||
- component: {fileID: 8463522706283787556}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
@@ -4042,6 +3782,19 @@ MonoBehaviour:
|
||||
minValue: 0
|
||||
maxValue: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -5621,7 +5374,6 @@ RectTransform:
|
||||
m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 3664260978476899140}
|
||||
- {fileID: 3355479367658290507}
|
||||
- {fileID: 4818343909123725175}
|
||||
m_Father: {fileID: 1774211016983706491}
|
||||
@@ -5677,14 +5429,13 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6798620428918177696}
|
||||
m_Enabled: 0
|
||||
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!1 &6976341305452677775
|
||||
GameObject:
|
||||
@@ -5712,7 +5463,7 @@ RectTransform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6976341305452677775}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 1.0000267}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
@@ -5721,8 +5472,8 @@ RectTransform:
|
||||
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: -446.3, y: 255.3}
|
||||
m_SizeDelta: {x: 327.3, y: 50.5}
|
||||
m_AnchoredPosition: {x: -406.48022, y: 260}
|
||||
m_SizeDelta: {x: 383.04, y: 50.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8334943640923905114
|
||||
CanvasRenderer:
|
||||
@@ -5818,7 +5569,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0.9477234, w: 0}
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -5874,6 +5625,7 @@ GameObject:
|
||||
- component: {fileID: 7392776148620295955}
|
||||
- component: {fileID: 623723497249906612}
|
||||
- component: {fileID: 8524569723447833986}
|
||||
- component: {fileID: 2518031444015721236}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
@@ -6000,6 +5752,19 @@ MonoBehaviour:
|
||||
minValue: 0
|
||||
maxValue: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -7085,7 +6850,7 @@ RectTransform:
|
||||
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: -2424, y: 30}
|
||||
m_AnchoredPosition: {x: -2404.8, y: 30}
|
||||
m_SizeDelta: {x: 186.1, y: 50.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6159749963066026057
|
||||
@@ -7151,7 +6916,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 4
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -7201,6 +6966,7 @@ GameObject:
|
||||
- component: {fileID: 4806540607707404536}
|
||||
- component: {fileID: 1263225200033619485}
|
||||
- component: {fileID: 512852062931003448}
|
||||
- component: {fileID: 5185990981600041478}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
@@ -7327,6 +7093,19 @@ MonoBehaviour:
|
||||
minValue: 0
|
||||
maxValue: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -8072,7 +7851,7 @@ RectTransform:
|
||||
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: -3897, y: 30}
|
||||
m_AnchoredPosition: {x: -3755, y: 30}
|
||||
m_SizeDelta: {x: 131.9, y: 50.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7891019527381773321
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8fe704cafb6cf2441a62a6497d58f229
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,10 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
abstract public class AbstractValueController : MonoBehaviour
|
||||
{
|
||||
abstract public void RestoreFromConfig();
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfd6e172b2a79944788029ce9d4220dd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -4,8 +4,87 @@ using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
public class AudioSliderDragHandler : AbstractSlider, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||
public class AudioSliderDragHandler : 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; }
|
||||
|
||||
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,14 +3,12 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
//using UnityEngine.UIElements;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
public class ContinuoslocomotionConfigurator : AbstractValueController
|
||||
public class ContinuoslocomotionConfigurator : MonoBehaviour
|
||||
{
|
||||
public Button turnOffButton;
|
||||
public Button turnOnButton;
|
||||
public MoveSliderDragHandler moveSpeedSlider;
|
||||
public ContinuousMoveProviderBase locomotion;
|
||||
|
||||
// Events for listeners
|
||||
@@ -21,28 +19,13 @@ public class ContinuoslocomotionConfigurator : AbstractValueController
|
||||
{
|
||||
turnOnButton.onClick.AddListener(enableLocomotion);
|
||||
turnOffButton.onClick.AddListener(disableLocomotion);
|
||||
|
||||
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;
|
||||
turnOffButton.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
public void UpdateSpeed(float speed)
|
||||
{
|
||||
locomotion.moveSpeed = speed;
|
||||
OnSpeedChanged?.Invoke(speed);
|
||||
WriteToConfig();
|
||||
}
|
||||
|
||||
private void enableLocomotion()
|
||||
@@ -52,7 +35,6 @@ public class ContinuoslocomotionConfigurator : AbstractValueController
|
||||
turnOnButton.gameObject.SetActive(false);
|
||||
turnOffButton.gameObject.SetActive(true);
|
||||
OnLocomotionToggled?.Invoke(true);
|
||||
WriteToConfig();
|
||||
}
|
||||
|
||||
private void disableLocomotion()
|
||||
@@ -62,12 +44,5 @@ public class ContinuoslocomotionConfigurator : AbstractValueController
|
||||
turnOnButton.gameObject.SetActive(true);
|
||||
turnOffButton.gameObject.SetActive(false);
|
||||
OnLocomotionToggled?.Invoke(false);
|
||||
WriteToConfig();
|
||||
}
|
||||
|
||||
protected void WriteToConfig()
|
||||
{
|
||||
ConfigManager.instance.SetIsContinuousLocomotion(locomotion.enabled);
|
||||
ConfigManager.instance.SetContinuousLocomotionSpeed(locomotion.moveSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,35 +3,82 @@ using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
using TMPro;
|
||||
|
||||
public class MoveSliderDragHandler : AbstractSlider, IDragHandler, IBeginDragHandler, IEndDragHandler
|
||||
public class MoveSliderDragHandler : MonoBehaviour, 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 float warningThreshholdValue = 0.65f;
|
||||
public float CurrentValue { get; private set; }
|
||||
|
||||
public ContinuoslocomotionConfigurator configurator;
|
||||
|
||||
override public void OnEndDrag(PointerEventData eventData)
|
||||
private RectTransform handleRect;
|
||||
private Vector2 backgroundStart;
|
||||
private float backgroundWidth;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
base.OnEndDrag(eventData);
|
||||
handleRect = GetComponent<RectTransform>();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
override protected void UpdateSlider(PointerEventData eventData, bool draggingEnded = false)
|
||||
{
|
||||
base.UpdateSlider(eventData, draggingEnded);
|
||||
DisplayWarningTextIfNecessary();
|
||||
EventSystem.current.SetSelectedGameObject(null);
|
||||
}
|
||||
|
||||
override protected void UpdateHandlePosition()
|
||||
private void UpdateSlider(PointerEventData eventData)
|
||||
{
|
||||
base.UpdateHandlePosition();
|
||||
DisplayWarningTextIfNecessary();
|
||||
}
|
||||
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);
|
||||
|
||||
// Displaying the warning.
|
||||
|
||||
if (CurrentValue > (warningThreshholdValue*(maxValue - minValue) + minValue)) warningText.gameObject.SetActive(true);
|
||||
|
||||
protected void DisplayWarningTextIfNecessary()
|
||||
{
|
||||
if (CurrentValue > (warningThreshholdValue * (maxValue - minValue) + minValue)) warningText.gameObject.SetActive(true);
|
||||
else warningText.gameObject.SetActive(false);
|
||||
|
||||
//Debug.Log(warningThreshholdValue);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c648a319c5c6aa47b3ef152a10657bf
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,20 +0,0 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1ebe1a3f8ef35a041a8ef39da672dd49
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,6 +1,6 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class SliderToVCA : AbstractValueController
|
||||
public class SliderToVCA : MonoBehaviour
|
||||
{
|
||||
public enum VCATarget
|
||||
{
|
||||
@@ -13,85 +13,76 @@ public class SliderToVCA : AbstractValueController
|
||||
}
|
||||
|
||||
public VCATarget target;
|
||||
public AudioSliderDragHandler slider;
|
||||
private AudioSliderDragHandler slider;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
slider = GetComponent<AudioSliderDragHandler>();
|
||||
slider.OnValueChanged += ApplyVolume;
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
RestoreFromConfig();
|
||||
}
|
||||
{
|
||||
float initialValue = GetInitialValueFromAudioManager();
|
||||
slider.SetHandlePosition(initialValue); // we will add this function
|
||||
}
|
||||
|
||||
override public void RestoreFromConfig()
|
||||
{
|
||||
float initialValue = GetInitialValue();
|
||||
slider.SetHandleValue(initialValue);
|
||||
}
|
||||
|
||||
private float GetInitialValue()
|
||||
private float GetInitialValueFromAudioManager()
|
||||
{
|
||||
switch (target)
|
||||
{
|
||||
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;
|
||||
}
|
||||
case VCATarget.Master:
|
||||
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, false);
|
||||
ApplyVolume(slider.CurrentValue);
|
||||
//Debug.Log("CurrentValue: " + slider.CurrentValue);
|
||||
}
|
||||
|
||||
private void ApplyVolume(float value, bool isLastChange)
|
||||
private void ApplyVolume(float value)
|
||||
{
|
||||
switch (target)
|
||||
{
|
||||
case VCATarget.Master:
|
||||
AudioManager.Instance.SetMasterVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeMaster(value);
|
||||
break;
|
||||
//Debug.LogError(value);
|
||||
break;
|
||||
|
||||
case VCATarget.Ambiences:
|
||||
AudioManager.Instance.SetAmbientVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeAmbient(value);
|
||||
break;
|
||||
|
||||
case VCATarget.Music:
|
||||
AudioManager.Instance.SetMusicVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeMusic(value);
|
||||
break;
|
||||
|
||||
case VCATarget.SFX:
|
||||
AudioManager.Instance.SetSFXVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeSFX(value);
|
||||
break;
|
||||
|
||||
case VCATarget.UI:
|
||||
AudioManager.Instance.SetUIVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeUI(value);
|
||||
break;
|
||||
|
||||
case VCATarget.Voiceovers:
|
||||
AudioManager.Instance.SetVoiceoverVCA(value);
|
||||
if (isLastChange) ConfigManager.instance.SetVolumeVO(value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
@@ -45,26 +44,6 @@ namespace _PROJECT.NewHandPresence
|
||||
|
||||
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()
|
||||
{
|
||||
if (_state == TutorialState.Initializing)
|
||||
@@ -198,33 +177,29 @@ namespace _PROJECT.NewHandPresence
|
||||
private void TryInitialize()
|
||||
{
|
||||
if (!CanInitialize()) return;
|
||||
if (null == initializationInfoCoroutine)
|
||||
{
|
||||
initializationInfoCoroutine = StartCoroutine(InitializationInfoCoroutine());
|
||||
}
|
||||
|
||||
_camera = Camera.main;
|
||||
|
||||
//Debug.Log("Initializing tutorial");
|
||||
Debug.Log("Initializing tutorial");
|
||||
|
||||
_leftHintController = leftHand.GetComponentInChildren<XRControllerHintController>();
|
||||
_rightHintController = rightHand.GetComponentInChildren<XRControllerHintController>();
|
||||
|
||||
initializationInfoStatus[TutorialInfoKey.LeftHintController] = null != _leftHintController;
|
||||
initializationInfoStatus[TutorialInfoKey.RightHintController] = null != _rightHintController;
|
||||
Debug.Log($"Left hint controller: {_leftHintController}");
|
||||
Debug.Log($"Right hint controller: {_rightHintController}");
|
||||
|
||||
_leftSmartHandPresence = leftHand.GetComponentInChildren<SmartHandPresence>();
|
||||
_rightSmartHandPresence = rightHand.GetComponentInChildren<SmartHandPresence>();
|
||||
|
||||
initializationInfoStatus[TutorialInfoKey.LeftSmartHandPresence] = null != _leftSmartHandPresence;
|
||||
initializationInfoStatus[TutorialInfoKey.RightSmartHandPresence] = null != _rightSmartHandPresence;
|
||||
Debug.Log($"Left smart hand presence: {_leftSmartHandPresence}");
|
||||
Debug.Log($"Right smart hand presence: {_rightSmartHandPresence}");
|
||||
|
||||
if (_leftHintController == null ||
|
||||
_rightHintController == null ||
|
||||
_leftSmartHandPresence == null ||
|
||||
_rightSmartHandPresence == null)
|
||||
{
|
||||
//Debug.Log("Hint controller or smart hand presence is null");
|
||||
Debug.Log("Hint controller or smart hand presence is null");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -241,7 +216,6 @@ namespace _PROJECT.NewHandPresence
|
||||
|
||||
UpdateState(_state.Next());
|
||||
Debug.Log("Tutorial initialized");
|
||||
StopCoroutine(initializationInfoCoroutine);
|
||||
}
|
||||
|
||||
private void OnGripPerformed(SelectEnterEventArgs arg0)
|
||||
@@ -333,35 +307,5 @@ 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,22 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayAnimationOnTrigger : MonoBehaviour
|
||||
{
|
||||
public enum KnownAnimations
|
||||
{
|
||||
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
|
||||
[SerializeField] public string animationName = "YourAnimation"; // Name of the animation to play
|
||||
|
||||
protected void Awake()
|
||||
{
|
||||
animationNames[KnownAnimations.UFOFlight1] = "UFO group flight 1";
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
@@ -27,16 +15,15 @@ public class PlayAnimationOnTrigger : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
string animationNameString = animationNames[animationName];
|
||||
|
||||
// Check if the animation is already playing
|
||||
if (animator.GetCurrentAnimatorStateInfo(0).IsName(animationNameString) && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1)
|
||||
if (animator.GetCurrentAnimatorStateInfo(0).IsName(animationName) && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1)
|
||||
{
|
||||
Debug.Log("Animation is already playing.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Play the animation
|
||||
animator.Play(animationNameString, 0, 0f);
|
||||
Debug.Log("Playing animation: " + animationNameString);
|
||||
animator.Play(animationName, 0, 0f);
|
||||
Debug.Log("Playing animation: " + animationName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,15 +29,7 @@ namespace _PROJECT.Multiplayer.NewBow
|
||||
if (_notch == null)
|
||||
Debug.LogError("Notch not found");
|
||||
|
||||
//CreateArrowServer();
|
||||
}
|
||||
|
||||
public override void OnOwnershipServer(NetworkConnection prevOwner)
|
||||
{
|
||||
base.OnOwnershipServer(prevOwner);
|
||||
|
||||
if (Owner.IsValid)
|
||||
CreateArrowServer();
|
||||
CreateArrowServer();
|
||||
}
|
||||
|
||||
public override void OnStartClient()
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7db8366967e9da242adbfd3af7e17fcd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,197 +0,0 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7622588c230b4b448152a6dfd6c0588
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,46 +0,0 @@
|
||||
%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:
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d19b02089b931a469209b09142786a0
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,38 +0,0 @@
|
||||
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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 067fc70e6bd1a024ba644f52017165fd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67f163b4eb8c8df43b48aab810b8a0a8
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -291,6 +291,11 @@ public class AudioManager : MonoBehaviour
|
||||
|
||||
}
|
||||
|
||||
public static void Pause()
|
||||
{
|
||||
musicEventInstance.setPaused(true);
|
||||
}
|
||||
|
||||
//=====//
|
||||
//=====//
|
||||
|
||||
@@ -323,6 +328,8 @@ public class AudioManager : MonoBehaviour
|
||||
// Set the callback for programmer sounds
|
||||
instance.setCallback(dialogueCallback);
|
||||
|
||||
bool managedByOcclusion = false;
|
||||
|
||||
// Add occlusion if available on the emitter
|
||||
if (emitter != null)
|
||||
{
|
||||
@@ -330,11 +337,16 @@ public class AudioManager : MonoBehaviour
|
||||
if (occlusion != null)
|
||||
{
|
||||
occlusion.InitialiseWithInstance(instance);
|
||||
managedByOcclusion = true;
|
||||
}
|
||||
}
|
||||
|
||||
instance.start();
|
||||
instance.release();
|
||||
|
||||
if (!managedByOcclusion)
|
||||
{
|
||||
instance.release();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -414,11 +426,6 @@ public class AudioManager : MonoBehaviour
|
||||
instance.setPaused(false);
|
||||
}
|
||||
|
||||
public static void Pause()
|
||||
{
|
||||
musicEventInstance.setPaused(true);
|
||||
}
|
||||
|
||||
public static void Pause(EventInstance instance)
|
||||
{
|
||||
instance.setPaused(true);
|
||||
@@ -430,8 +437,10 @@ public class AudioManager : MonoBehaviour
|
||||
{
|
||||
foreach (EventInstance eventInstance in eventInstances)
|
||||
{
|
||||
eventInstance.stop(FMOD.Studio.STOP_MODE.IMMEDIATE);
|
||||
eventInstance.release();
|
||||
if (eventInstance.isValid()) {
|
||||
eventInstance.stop(FMOD.Studio.STOP_MODE.IMMEDIATE);
|
||||
eventInstance.release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public class FirstPersonOcclusion : MonoBehaviour
|
||||
AudioOccluded.start();
|
||||
|
||||
// 4. Releasing Instance (This allows the event to self-manage its lifetime, which is fine)
|
||||
AudioOccluded.release();
|
||||
//AudioOccluded.release();
|
||||
|
||||
managedInstances.Add(AudioOccluded); // ADDED
|
||||
|
||||
@@ -205,4 +205,17 @@ public class FirstPersonOcclusion : MonoBehaviour
|
||||
}
|
||||
}
|
||||
}
|
||||
private void OnDestroy()
|
||||
{
|
||||
// Stop & release all instances when this object is destroyed
|
||||
foreach (var inst in managedInstances)
|
||||
{
|
||||
if (inst.isValid())
|
||||
{
|
||||
inst.stop(FMOD.Studio.STOP_MODE.IMMEDIATE);
|
||||
inst.release();
|
||||
}
|
||||
}
|
||||
managedInstances.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Doc/Readme-Footer.png
LFS
BIN
Doc/Readme-Footer.png
LFS
Binary file not shown.
BIN
Doc/Readme-Header.png
LFS
BIN
Doc/Readme-Header.png
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Door-Grabbing-Clip.gif
LFS
BIN
Doc/clips/Door-Grabbing-Clip.gif
LFS
Binary file not shown.
BIN
Doc/clips/Doors-Issue-Clip.gif
LFS
BIN
Doc/clips/Doors-Issue-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Explore-Clip.gif
LFS
BIN
Doc/clips/Explore-Clip.gif
LFS
Binary file not shown.
BIN
Doc/clips/Ghost-Hand-Clip.gif
LFS
BIN
Doc/clips/Ghost-Hand-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Old-menu.gif
LFS
BIN
Doc/clips/Old-menu.gif
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Quit-Clip.gif
LFS
BIN
Doc/clips/Quit-Clip.gif
LFS
Binary file not shown.
BIN
Doc/clips/Server-Room-Clip.gif
LFS
BIN
Doc/clips/Server-Room-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Skywalk-Clip.gif
LFS
BIN
Doc/clips/Skywalk-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/UFO-Bow-Game-Clip.gif
LFS
BIN
Doc/clips/UFO-Bow-Game-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
BIN
Doc/clips/Whiteboard-Clip.gif
LFS
BIN
Doc/clips/Whiteboard-Clip.gif
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/designs/Old-VR-Doorknob.png
LFS
BIN
Doc/designs/Old-VR-Doorknob.png
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/designs/Real-Doorknob.jpg
LFS
BIN
Doc/designs/Real-Doorknob.jpg
LFS
Binary file not shown.
BIN
Doc/designs/Two-Elevators.png
LFS
BIN
Doc/designs/Two-Elevators.png
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
87
README.md
87
README.md
@@ -1,86 +1,29 @@
|
||||

|
||||
# DeltaVR
|
||||
|
||||
DeltaVR is a virtual reality experience set in the [Delta Centre](https://delta.ut.ee/) of the [University of Tartu](https://ut.ee/). The virtual Delta Building includes several interactive scenes that demonstrate the teaching and research actively done in the Delta Centre.
|
||||
DeltaVR is a virtual reality experience set in the Delta Centre of the University of Tartu. It was designed and implemented in a over three theses. The proiect used the Delta Building Visualization project as a basis for the building and built upon it, adding missing
|
||||
details and improving the performance. DeltaVR has multiplayer support, which allows players to explore the building together in PCVR, Quest 2 and non-VR versions.
|
||||
|
||||
The application works on PCVR, Meta Quest 2 and 3, HTC Vive, and regular Windows PC platforms. There is cross-platform multiplayer functionality that enables several users to be in the same virtual environment from both VR and PC platforms.
|
||||
## Gameplay Sample Footage (DeltaVR 2021)
|
||||
|
||||
https://youtu.be/AoRN4eluiWY
|
||||
|
||||
## Features
|
||||
## History
|
||||
|
||||
### Exploration
|
||||
2023 version:
|
||||
|
||||
DeltaVR features the first two floors of the Delta Educational Building for **exploration and discovery**. There are many diegetic elements representing the studies and research conducted at the Delta Building, such as robotics, the high-performance computing server room, video game development, and student life.
|
||||
https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=77065&language=en
|
||||
|
||||

|
||||
(See Extras for build)
|
||||
|
||||
### UFO Bow Game
|
||||
2022 version:
|
||||
|
||||
At the terrace on the second floor, Delta explorers can defend the building from UFO-s using a bow and **achieve high scores**.
|
||||
https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=74390
|
||||
|
||||

|
||||
https://gitlab.com/Joonasp1/deltavr-multiplayer-builds
|
||||
|
||||
### Bolt Self-Driving Car
|
||||
2021 version:
|
||||
|
||||
The courtyard between the Educational and Entrepreneurial buildings of the Delta Centre, the explorers can see the Bolt Self-Driving Car. This car is developed by the [[http://adl.cs.ut.ee/|Autonomous Driving Lab]] of the [[https://cs.ut.ee|Institute of Computer Science]]. If one is brave enough, they can stop the car and catch a ride, simulating both the **feeling of being in a self-driving vehicle** as well as VR motion sickness.
|
||||
https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=71682
|
||||
|
||||

|
||||
https://drive.google.com/file/d/1n19_Wa69vCX6s6zKYoSYKirpHcfJHqaM/view?usp=sharing
|
||||
|
||||
### Space Walk
|
||||
|
||||
Where the actual Delta building has a set of skywalks connecting it with the entrepreneurship building, DeltaVR has a set of portals leading to the Space walk experience. In it, one can move in the **vastness of space** and experience **changes in gravity**. A fleet of UFO ships react to one's presence and come to investigate the arrival.
|
||||
|
||||

|
||||
|
||||
### Server Room
|
||||
|
||||
On the second floor, one can hear the humming of the servers. Should they investigate, they will find a room of server racks and a large red button. Should they push the button, they will trigger the **fire alarm** and have the server room fill with harmful invisible gas. This propms the player to escape the room. This largerly **auditory experience** is noted to be engaging and immersive. It represents the work of UT HPC in maintaining the servers of the University of Tartu.
|
||||
|
||||

|
||||
|
||||
### Interactive Map
|
||||
|
||||
To navigate the two floors of the large Delta Educational Building, explorers have an interactive map. This provides a clear overview of where they currently are and what other interactions are located across the building. Explorers can teleport to a **select interactive experiences**, while others are left for them to discover based on the hints on the map.
|
||||
|
||||

|
||||
|
||||
### Whiteboard
|
||||
|
||||
In the virtual Computer Graphics and Virtual Reality Study Lab, explorers can use spray paint cans to draw on a whiteboard. Surprisingly, this is one of the **more popular interactive experiences** of DeltaVR.
|
||||
|
||||

|
||||
|
||||
## Credits
|
||||
|
||||
**Ranno Samuel Adson**<br/>
|
||||
User experience design. Additional interactions. Interaction improvements.
|
||||
|
||||
**Toomas Tamm**<br/>
|
||||
Project architecture, model optimization, lighting. [Bachelor's Thesis](https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=71682) ([poster](https://courses.cs.ut.ee/student_projects/download/478.pdf)), [Master's Thesis](https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=77065&language=en).
|
||||
|
||||
**Joonas Püks**<br/>
|
||||
Multiplayer and cross-play functionality. [Bachelor's Thesis](https://comserv.cs.ut.ee/ati_thesis/datasheet.php?id=74390) ([poster](https://courses.cs.ut.ee/student_projects/download/534.pdf)).
|
||||
|
||||
**Timur Nizamov**<br/>
|
||||
Technical sound design.
|
||||
|
||||
**Raimond Tunnel**<br/>
|
||||
Project management, visual design.
|
||||
|
||||
Developed in the [Computer Graphcis and Virtual Reality Study Lab](https://cgvr.cs.ut.ee/) of the [Institute of Computer Science, University of Tartu](https://cs.ut.ee).
|
||||
|
||||
### Used Attributions
|
||||
|
||||
| Description | License | Source | Author |
|
||||
|-----------------------------------------------------|----------------------------------------------|---------------------------------------------------------------------------------------------|------------------|
|
||||
| Server rack model | Royalty Free, No AI License | [Link](https://www.cgtrader.com/free-3d-models/electronics/computer/simple-server-model) | anymelok |
|
||||
| Robot movement sound | Creative Commons 0 | [Link](https://freesound.org/people/Brazilio123/sounds/661435/) | Brazilio123 |
|
||||
| Spacewalk UFO sound | Attribution NonCommercial 4.0 | [Link](https://freesound.org/people/Speedenza/sounds/209366/) | Speedenza |
|
||||
| Keyboard icons | Creative Commons Attribution-NoDerivs 3.0 | [Link](https://icons8.com/) | icons8 |
|
||||
|
||||
-----
|
||||
|
||||
DeltaVR was moved to this repository in 2025. The previous repository is available here: [[https://gitlab.com/UT-CGVR/deltavr]]
|
||||
|
||||
-----
|
||||
|
||||

|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user