Compare commits
22 Commits
17ed6ba3cb
...
dylon
| Author | SHA1 | Date | |
|---|---|---|---|
| 9dfcee6159 | |||
| 9db5d65278 | |||
| 9948d82dc7 | |||
| 0e652c6cc0 | |||
| 7259fe8d67 | |||
| 8fef9c25d7 | |||
| aee3fe9ea7 | |||
| b414bd391c | |||
| 343a27936c | |||
| f4be1941d3 | |||
| a689d76de7 | |||
| 9ba1ff4a1f | |||
| 8dd61407cd | |||
| db47bc3768 | |||
| 46ec37309d | |||
| 77625e7ad5 | |||
| 54db4e4b73 | |||
| 6491a3df11 | |||
| 57b14d4ba9 | |||
| 6e22731e50 | |||
| 1e0ea14ae2 | |||
| 40af32939e |
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ed5850fb66a3fa4f85c608105dc712d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,144 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!243 &-5985036292871575848
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Music
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 5bdfe230200494b4dba2d07588c7c60d
|
||||
m_Children: []
|
||||
m_Volume: 831694893cecc104e83cd13eec93d28c
|
||||
m_Pitch: 5aeb6a175f195024a87861062e2ec1b0
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: -5067953075322291121}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &-5067953075322291121
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 87ce651d7c89cfa44afcecbb0fff4abd
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: df4b34f13069a454cb0de1361d5c4099
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!241 &24100000
|
||||
AudioMixerController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: AudioMixer
|
||||
m_OutputGroup: {fileID: 0}
|
||||
m_MasterGroup: {fileID: 24300002}
|
||||
m_Snapshots:
|
||||
- {fileID: 24500006}
|
||||
m_StartSnapshot: {fileID: 24500006}
|
||||
m_SuspendThreshold: -80
|
||||
m_EnableSuspend: 1
|
||||
m_UpdateMode: 0
|
||||
m_ExposedParameters:
|
||||
- guid: 8e54073feec66d24c8b5b5321b86da6f
|
||||
name: MasterVolume
|
||||
- guid: 831694893cecc104e83cd13eec93d28c
|
||||
name: MusicVolume
|
||||
- guid: 97cc39ce50c2b85439b8361ceae3f4c6
|
||||
name: SFXVolume
|
||||
m_AudioMixerGroupViews:
|
||||
- guids:
|
||||
- 1647cf21931ffb4409abd5f86b5ba22b
|
||||
- 5bdfe230200494b4dba2d07588c7c60d
|
||||
- 306f67f3e059d2c4aaaef306930b737e
|
||||
name: View
|
||||
m_CurrentViewIndex: 0
|
||||
m_TargetSnapshot: {fileID: 24500006}
|
||||
--- !u!243 &24300002
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Master
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 1647cf21931ffb4409abd5f86b5ba22b
|
||||
m_Children:
|
||||
- {fileID: -5985036292871575848}
|
||||
- {fileID: 3079392121493439853}
|
||||
m_Volume: 8e54073feec66d24c8b5b5321b86da6f
|
||||
m_Pitch: f023bc3b372a9df469e34b83fc9efc66
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 24400004}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &24400004
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: bdd917cc2a7b59c45a66df37be3e3489
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: c9d36b6a18286a8449cc204da4cc3140
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!245 &24500006
|
||||
AudioMixerSnapshotController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Snapshot
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_SnapshotID: 8474d9129ecb5954ea867453e7561687
|
||||
m_FloatValues: {}
|
||||
m_TransitionOverrides: {}
|
||||
--- !u!243 &3079392121493439853
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SFX
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 306f67f3e059d2c4aaaef306930b737e
|
||||
m_Children: []
|
||||
m_Volume: 97cc39ce50c2b85439b8361ceae3f4c6
|
||||
m_Pitch: 9119b1dfcb88e4e4c917090c57fa1680
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 5127884578886668124}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &5127884578886668124
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 0f75e42fe6e091c4ca36a6aa676fff0f
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 45c4e84286ed5a345b779472c0df9874
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3490106d3e6edc143b9179d3107780dd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 24100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!134 &13400000
|
||||
PhysicsMaterial:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: BouncyBall
|
||||
serializedVersion: 2
|
||||
m_DynamicFriction: 0.6
|
||||
m_StaticFriction: 0.6
|
||||
m_Bounciness: 1
|
||||
m_FrictionCombine: 0
|
||||
m_BounceCombine: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e11a0c91449cb044686c17715bd96f92
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,190 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4309010032443068981
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7306326942743672910}
|
||||
- component: {fileID: 1001616692551291424}
|
||||
- component: {fileID: 8608724141738220055}
|
||||
- component: {fileID: 5427514152406774277}
|
||||
m_Layer: 5
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7306326942743672910
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4309010032443068981}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2225573246702167059}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!223 &1001616692551291424
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4309010032443068981}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 0
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &8608724141738220055
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4309010032443068981}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 1
|
||||
m_MatchWidthOrHeight: 0.5
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!114 &5427514152406774277
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4309010032443068981}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!1001 &4657271629088206950
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7306326942743672910}
|
||||
m_Modifications:
|
||||
- target: {fileID: 818899427131401759, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1376587328550839904, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UI
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2975696880262954876, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4264548731807291060, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5101319162034548862, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5514935285560916770, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7535213278904715570, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
--- !u!4 &2225573246702167059 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6792308726050395253, guid: 6d1ef2b53d3ef0446852da522af66b73, type: 3}
|
||||
m_PrefabInstance: {fileID: 4657271629088206950}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bbc6f24d8835c954e9ac0321983d48f7
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,50 @@
|
||||
using UnityEngine;
|
||||
|
||||
public static class DebugUtilities
|
||||
{
|
||||
/// <summary>
|
||||
/// Draws a wire sphere using Debug.DrawLine for runtime visibility.
|
||||
/// </summary>
|
||||
public static void DrawWireSphere(Vector3 center, float radius, Color color, float duration, int quality = 3)
|
||||
{
|
||||
quality = Mathf.Clamp(quality, 1, 10);
|
||||
int segments = quality << 2;
|
||||
int subdivisions = quality << 3;
|
||||
int halfSegments = segments >> 1;
|
||||
float strideAngle = 360f / subdivisions;
|
||||
float segmentStride = 180f / segments;
|
||||
|
||||
Vector3 first;
|
||||
Vector3 next;
|
||||
|
||||
// Draw meridians (vertical circles)
|
||||
for (int i = 0; i < segments; i++)
|
||||
{
|
||||
first = (Vector3.forward * radius);
|
||||
first = Quaternion.AngleAxis(segmentStride * (i - halfSegments), Vector3.right) * first;
|
||||
|
||||
for (int j = 0; j < subdivisions; j++)
|
||||
{
|
||||
next = Quaternion.AngleAxis(strideAngle, Vector3.up) * first;
|
||||
Debug.DrawLine(first + center, next + center, color, duration);
|
||||
first = next;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw parallels (horizontal circles)
|
||||
Vector3 axis;
|
||||
for (int i = 0; i < segments; i++)
|
||||
{
|
||||
first = (Vector3.forward * radius);
|
||||
first = Quaternion.AngleAxis(segmentStride * (i - halfSegments), Vector3.up) * first;
|
||||
axis = Quaternion.AngleAxis(90f, Vector3.up) * first;
|
||||
|
||||
for (int j = 0; j < subdivisions; j++)
|
||||
{
|
||||
next = Quaternion.AngleAxis(strideAngle, axis) * first;
|
||||
Debug.DrawLine(first + center, next + center, color, duration);
|
||||
first = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 933aa2a82d546964cb7e1a8e7a1e007f
|
||||
+2653
-24
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,576 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2847588586743557754
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3234985867044947891}
|
||||
- component: {fileID: 2327288061446170596}
|
||||
- component: {fileID: 6609718028819421532}
|
||||
- component: {fileID: 4920865001359101263}
|
||||
- component: {fileID: 1290228147892549875}
|
||||
m_Layer: 0
|
||||
m_Name: DialogVoiceSources
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3234985867044947891
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2847588586743557754}
|
||||
serializedVersion: 2
|
||||
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: 5519027142145697695}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &2327288061446170596
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2847588586743557754}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 0}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!82 &6609718028819421532
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2847588586743557754}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 0}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!82 &4920865001359101263
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2847588586743557754}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 0}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!82 &1290228147892549875
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2847588586743557754}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 0}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!1 &8685480739473632986
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5519027142145697695}
|
||||
- component: {fileID: 7627266791993751843}
|
||||
- component: {fileID: 1126747780593280214}
|
||||
- component: {fileID: 6896780435732746551}
|
||||
- component: {fileID: 7681847596368765025}
|
||||
- component: {fileID: 4444498079052879519}
|
||||
- component: {fileID: 5173819118098093347}
|
||||
- component: {fileID: 1410439939888368689}
|
||||
m_Layer: 0
|
||||
m_Name: GameManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5519027142145697695
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
serializedVersion: 2
|
||||
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:
|
||||
- {fileID: 3234985867044947891}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &7627266791993751843
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 65dc1a5d5b17b874087eb45227f838f2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &1126747780593280214
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9741c059777b7a74681122aa761e2dee, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
nameText: {fileID: 0}
|
||||
dialogueText: {fileID: 0}
|
||||
itemText: {fileID: 0}
|
||||
pickupHint: {fileID: 0}
|
||||
animator: {fileID: 0}
|
||||
--- !u!114 &6896780435732746551
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cf9658f7202522245b3ac80235b98b50, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
CompletedQuests:
|
||||
ActiveQuests:
|
||||
--- !u!114 &7681847596368765025
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1b892c02d92dd70419f61cf0ae34b9d8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::TimeManager
|
||||
currentHour: 12
|
||||
--- !u!114 &4444498079052879519
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 40e5d5183cb59cf4d8603dca70c1a9b5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Inventory
|
||||
itemSlots:
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
- quantity: 0
|
||||
item: 0
|
||||
ownedBackpackType: 0
|
||||
--- !u!114 &5173819118098093347
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f9c9dde58f68b5e4d9fc0036b990c481, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerManager
|
||||
CurrentToolIndex: 0
|
||||
--- !u!114 &1410439939888368689
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8685480739473632986}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ab14394efecbd6540af369ced75e81d0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::SoundSettingManager
|
||||
audioMixer: {fileID: 24100000, guid: 3490106d3e6edc143b9179d3107780dd, type: 2}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f59bbee72927d649b032622c1c0f2f5
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,137 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Island_Temp_Shader
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.6226415, g: 0.56533194, b: 0.502225, a: 1}
|
||||
- _Color: {r: 0.62264144, g: 0.5653319, b: 0.5022249, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &4647237875860341337
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b74fa76d3c3551d478f93b2a251df8f8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d4389ebffbf7bd458488fd3ea3fc492
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea8f36f5e928823469cf3d0ebc62afc7
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eaa54bb6b383cee45b061dbca1a69945
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,50 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ParticlesUnlit Variant
|
||||
m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3}
|
||||
m_Parent: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords:
|
||||
- _FLIPBOOKBLENDING_OFF
|
||||
- _RECEIVE_SHADOWS_OFF
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- ALWAYS
|
||||
- SHADOWCASTER
|
||||
- DepthOnly
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors: []
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3897461806608698219
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64ca3a2884aa8954cb1fb6d2ce25a60c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,39 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!84 &8400000
|
||||
RenderTexture:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: MiniMapRenderTexture
|
||||
m_ImageContentsHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 6
|
||||
m_Width: 256
|
||||
m_Height: 256
|
||||
m_AntiAliasing: 1
|
||||
m_MipCount: -1
|
||||
m_DepthStencilFormat: 90
|
||||
m_ColorFormat: 4
|
||||
m_MipMap: 1
|
||||
m_GenerateMips: 1
|
||||
m_SRGB: 1
|
||||
m_UseDynamicScale: 0
|
||||
m_UseDynamicScaleExplicit: 0
|
||||
m_BindMS: 0
|
||||
m_EnableCompatibleFormat: 1
|
||||
m_EnableRandomWrite: 0
|
||||
m_TextureSettings:
|
||||
serializedVersion: 2
|
||||
m_FilterMode: 1
|
||||
m_Aniso: 0
|
||||
m_MipBias: 0
|
||||
m_WrapU: 1
|
||||
m_WrapV: 1
|
||||
m_WrapW: 1
|
||||
m_Dimension: 2
|
||||
m_VolumeDepth: 1
|
||||
m_ShadowSamplingMode: 2
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93d78654fc891634d9bbf8c77c58e435
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 8400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,141 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: OccludeTest
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
|
||||
- _Color: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3531991361068812674
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78be8f8bd251f244ab82d30f189c8824
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,142 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7664016258760507437
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1726613362671065430}
|
||||
- component: {fileID: 1753263962729783047}
|
||||
- component: {fileID: 6205312924763433350}
|
||||
- component: {fileID: 7350486210546925347}
|
||||
- component: {fileID: 2968305615973019778}
|
||||
m_Layer: 0
|
||||
m_Name: RubberBall
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1726613362671065430
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7664016258760507437}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -1.327, y: 3.81, z: -2.626}
|
||||
m_LocalScale: {x: 0.089599, y: 0.089599, z: 0.089599}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1753263962729783047
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7664016258760507437}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6205312924763433350
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7664016258760507437}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!135 &7350486210546925347
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7664016258760507437}
|
||||
m_Material: {fileID: 13400000, guid: e11a0c91449cb044686c17715bd96f92, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!54 &2968305615973019778
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7664016258760507437}
|
||||
serializedVersion: 5
|
||||
m_Mass: 1
|
||||
m_LinearDamping: 0
|
||||
m_AngularDamping: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b0365667a94c474bb3cc42312aac1db
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+631
-4630
File diff suppressed because it is too large
Load Diff
+117
-4173
File diff suppressed because it is too large
Load Diff
+2644
-117
File diff suppressed because it is too large
Load Diff
@@ -1,53 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
private float camTargetRotation = 0;
|
||||
private bool isCamRotating = false;
|
||||
|
||||
public Transform playerCamHome;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
HandleCamRotation();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Trigger cam rotation
|
||||
/// </summary>
|
||||
public void RotateCam()
|
||||
{
|
||||
if (!isCamRotating)
|
||||
{
|
||||
float currentY = playerCamHome.transform.rotation.eulerAngles.y;
|
||||
camTargetRotation = currentY + 90f;
|
||||
isCamRotating = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move cam to desired rotation (every frame)
|
||||
/// </summary>
|
||||
void HandleCamRotation()
|
||||
{
|
||||
float currentY = playerCamHome.transform.rotation.eulerAngles.y;
|
||||
|
||||
float step = 200 * Time.deltaTime;
|
||||
|
||||
float newY = Mathf.MoveTowardsAngle(currentY, camTargetRotation, step);
|
||||
|
||||
playerCamHome.RotateAround(
|
||||
transform.position,
|
||||
Vector3.up,
|
||||
newY - currentY
|
||||
);
|
||||
|
||||
if (Mathf.Abs(Mathf.DeltaAngle(newY, camTargetRotation)) < 0.01f)
|
||||
{
|
||||
isCamRotating = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,15 @@ public class Dialogue
|
||||
public string charName;
|
||||
public bool isActive = false;
|
||||
|
||||
[TextArea(3,10)]
|
||||
public string[] sentences;
|
||||
public DialogueLine[] sentences;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class DialogueLine
|
||||
{
|
||||
// is Doug or the character talking? Let's convo have 2 sides
|
||||
public bool isDoug;
|
||||
|
||||
[TextArea(3, 10)]
|
||||
public string line;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
public class DialogueManager : MonoBehaviour
|
||||
{
|
||||
private Queue<string> sentences;
|
||||
private Queue<DialogueLine> sentences;
|
||||
private Dialogue currentDialogue;
|
||||
private DialogueVoice currentDialogueVoice;
|
||||
private float maxDialogueWaitTime = 1.0f;
|
||||
@@ -25,7 +25,7 @@ public class DialogueManager : MonoBehaviour
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
sentences = new Queue<string>();
|
||||
sentences = new Queue<DialogueLine>();
|
||||
voiceSourcePool = GetComponentsInChildren<AudioSource>();
|
||||
}
|
||||
|
||||
@@ -45,9 +45,8 @@ public void StartDialogue(Dialogue dialogue, DialogueVoice dialogueVoice)
|
||||
sentences.Clear();
|
||||
currentDialogue = dialogue;
|
||||
currentDialogueVoice = dialogueVoice;
|
||||
nameText.text = dialogue.charName;
|
||||
|
||||
foreach (string sentence in dialogue.sentences)
|
||||
foreach (DialogueLine sentence in dialogue.sentences)
|
||||
{
|
||||
sentences.Enqueue(sentence);
|
||||
}
|
||||
@@ -64,7 +63,7 @@ public void DisplayNextSentence()
|
||||
return;
|
||||
}
|
||||
|
||||
string sentence = sentences.Dequeue();
|
||||
DialogueLine sentence = sentences.Dequeue();
|
||||
StopAllCoroutines();
|
||||
StopVoices();
|
||||
StartCoroutine(TypeSentence(sentence));
|
||||
@@ -82,34 +81,51 @@ public void EndDialogue()
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator TypeSentence(string sentence)
|
||||
IEnumerator TypeSentence(DialogueLine sentence)
|
||||
{
|
||||
dialogueText.text = "";
|
||||
char[] sentenceCharArray = sentence.ToCharArray();
|
||||
|
||||
if (sentence.isDoug)
|
||||
{
|
||||
nameText.text = "Doug";
|
||||
}
|
||||
else
|
||||
{
|
||||
nameText.text = currentDialogue.charName;
|
||||
}
|
||||
|
||||
char[] sentenceCharArray = sentence.line.ToCharArray();
|
||||
for (int i = 0; i < sentenceCharArray.Length; i++)
|
||||
{
|
||||
dialogueText.text += sentenceCharArray[i];
|
||||
|
||||
if (currentDialogueVoice != null && currentDialogueVoice.voice != Voices.None)
|
||||
if (sentence.isDoug)
|
||||
{
|
||||
if (i % currentDialogueVoice.speechInterval == 0)
|
||||
{
|
||||
AudioClip voiceToPlay = currentDialogueVoice.GetClipFromChar(char.ToLower(sentenceCharArray[i]));
|
||||
|
||||
if (voiceToPlay != null)
|
||||
{
|
||||
PlayNextClip(voiceToPlay);
|
||||
}
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(maxDialogueWaitTime - currentDialogueVoice.talkSpeed * maxDialogueWaitTime);
|
||||
// TODO: Add Doug voice
|
||||
yield return new WaitForSeconds(0.03f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Add speed variable to non-voices (Talkable.cs)
|
||||
yield return new WaitForSeconds(0.03f);
|
||||
if (currentDialogueVoice != null && currentDialogueVoice.voice != Voices.None)
|
||||
{
|
||||
if (i % currentDialogueVoice.speechInterval == 0)
|
||||
{
|
||||
AudioClip voiceToPlay = currentDialogueVoice.GetClipFromChar(char.ToLower(sentenceCharArray[i]));
|
||||
|
||||
if (voiceToPlay != null)
|
||||
{
|
||||
PlayNextClip(voiceToPlay);
|
||||
}
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(maxDialogueWaitTime - currentDialogueVoice.talkSpeed * maxDialogueWaitTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Add speed variable to non-voices (Talkable.cs)
|
||||
yield return new WaitForSeconds(0.03f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,352 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using static Unity.Cinemachine.CinemachineTargetGroup;
|
||||
using static UnityEngine.GraphicsBuffer;
|
||||
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
public float camTargetRotation { get; private set; } = 0;
|
||||
public CameraControlMode CamControlMode { get; private set; } = CameraControlMode.SnapRotate;
|
||||
public Camera MainCamera;
|
||||
|
||||
private bool isCamRotating = false;
|
||||
|
||||
[Header("Rotation")]
|
||||
public float mouseSensitivity = 200f;
|
||||
public float minPitch = -30f;
|
||||
public float maxPitch = 60f;
|
||||
public float distance = 5f;
|
||||
private float yaw;
|
||||
private float pitch;
|
||||
|
||||
[Header("Zoom")]
|
||||
public float followSpeed = 10f;
|
||||
public float maxDistance = 6f;
|
||||
public float minDistance = 1f;
|
||||
public float zoomSpeed = 5f;
|
||||
public float heightOffset = -0.5f;
|
||||
private float currentDistance;
|
||||
private float distanceVelocity;
|
||||
|
||||
[Header("Collision")]
|
||||
public float collisionRadius = 0.3f;
|
||||
public float collisionOffset = 0.2f;
|
||||
public LayerMask collisionMask;
|
||||
|
||||
[Header("Occlusion Settings")]
|
||||
public LayerMask obstructionMask;
|
||||
public float fadedAlpha = 0.25f;
|
||||
public float fadeSpeed = 5f;
|
||||
|
||||
private Dictionary<Renderer, float> currentAlpha =
|
||||
new Dictionary<Renderer, float>();
|
||||
|
||||
private Dictionary<Renderer, float> targetAlpha =
|
||||
new Dictionary<Renderer, float>();
|
||||
|
||||
public Transform playerCamHome;
|
||||
Transform dougBody;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
UpdateOcclusion();
|
||||
UpdateFade();
|
||||
|
||||
if (Input.GetMouseButton(1))
|
||||
{
|
||||
HandleFreeCamRotation();
|
||||
}
|
||||
else
|
||||
{
|
||||
CamAvoidCollisions();
|
||||
}
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
Vector3 angles = playerCamHome.transform.eulerAngles;
|
||||
|
||||
yaw = angles.y;
|
||||
pitch = angles.x;
|
||||
currentDistance = distance;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Trigger cam rotation
|
||||
/// </summary>
|
||||
public void RotateCam()
|
||||
{
|
||||
if (!isCamRotating)
|
||||
{
|
||||
float currentY = playerCamHome.transform.rotation.eulerAngles.y;
|
||||
camTargetRotation = currentY + 90f;
|
||||
isCamRotating = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set cam rotation immediately
|
||||
/// </summary>
|
||||
void SnapToRotation(float rotation)
|
||||
{
|
||||
if (CamControlMode == CameraControlMode.SnapRotate)
|
||||
{
|
||||
playerCamHome.RotateAround(
|
||||
transform.position,
|
||||
Vector3.up,
|
||||
rotation
|
||||
);
|
||||
|
||||
camTargetRotation = rotation;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move cam to desired rotation (every frame)
|
||||
/// </summary>
|
||||
void HandleSnapCamRotation()
|
||||
{
|
||||
float currentY = playerCamHome.transform.rotation.eulerAngles.y;
|
||||
float step = 200 * Time.deltaTime;
|
||||
float newY = Mathf.MoveTowardsAngle(currentY, camTargetRotation, step);
|
||||
|
||||
playerCamHome.RotateAround(
|
||||
transform.position,
|
||||
Vector3.up,
|
||||
newY - currentY
|
||||
);
|
||||
|
||||
if (Mathf.Abs(Mathf.DeltaAngle(newY, camTargetRotation)) < 0.01f)
|
||||
{
|
||||
isCamRotating = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move cam to desired free rotation (every frame)
|
||||
/// </summary>
|
||||
void HandleFreeCamRotation()
|
||||
{
|
||||
if (dougBody == null)
|
||||
{
|
||||
if (GameManager.Instance.PlayerController.DougBody != null)
|
||||
dougBody = GameManager.Instance.PlayerController.DougBody.transform;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 target = new Vector3(dougBody.position.x, dougBody.position.y + heightOffset, dougBody.position.z);
|
||||
|
||||
// Mouse Input
|
||||
float mouseX = Input.GetAxis("Mouse X");
|
||||
float mouseY = Input.GetAxis("Mouse Y");
|
||||
|
||||
yaw += mouseX * mouseSensitivity * Time.deltaTime;
|
||||
pitch -= mouseY * mouseSensitivity * Time.deltaTime;
|
||||
|
||||
pitch = Mathf.Clamp(pitch, minPitch, maxPitch);
|
||||
|
||||
// Rotation
|
||||
Quaternion rotation = Quaternion.Euler(pitch, yaw, 0);
|
||||
|
||||
// Zoom
|
||||
float scroll = Input.GetAxis("Mouse ScrollWheel");
|
||||
|
||||
if (Mathf.Abs(scroll) > 0.0001f)
|
||||
{
|
||||
distance -= scroll * zoomSpeed;
|
||||
distance = Mathf.Clamp(distance, minDistance, maxDistance);
|
||||
}
|
||||
|
||||
currentDistance = Mathf.SmoothDamp(
|
||||
currentDistance,
|
||||
distance,
|
||||
ref distanceVelocity,
|
||||
0.05f);
|
||||
|
||||
float adjustedDistance = currentDistance;
|
||||
|
||||
Vector3 desiredDirection =
|
||||
rotation * Vector3.back;
|
||||
|
||||
// Camera obstruction handling
|
||||
if (Physics.SphereCast(
|
||||
target,
|
||||
collisionRadius,
|
||||
desiredDirection,
|
||||
out RaycastHit hit,
|
||||
currentDistance,
|
||||
collisionMask,
|
||||
QueryTriggerInteraction.Ignore))
|
||||
{
|
||||
adjustedDistance =
|
||||
Mathf.Max(
|
||||
hit.distance - collisionOffset,
|
||||
minDistance);
|
||||
}
|
||||
|
||||
// Desired Position
|
||||
Vector3 offset = rotation * Vector3.forward * -adjustedDistance;
|
||||
Vector3 desiredPosition = target + offset;
|
||||
|
||||
if (desiredPosition.y < dougBody.position.y)
|
||||
{
|
||||
desiredPosition.y = dougBody.position.y;
|
||||
}
|
||||
|
||||
// Smooth Follow
|
||||
playerCamHome.transform.position = Vector3.Lerp(
|
||||
playerCamHome.transform.position,
|
||||
desiredPosition,
|
||||
followSpeed * Time.deltaTime
|
||||
);
|
||||
|
||||
// Look at player
|
||||
playerCamHome.transform.LookAt(target + Vector3.up);
|
||||
}
|
||||
|
||||
void CamAvoidCollisions()
|
||||
{
|
||||
if (dougBody == null)
|
||||
{
|
||||
if (GameManager.Instance.PlayerController.DougBody != null)
|
||||
dougBody = GameManager.Instance.PlayerController.DougBody.transform;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 target = new Vector3(dougBody.position.x, dougBody.position.y + heightOffset, dougBody.position.z);
|
||||
Quaternion rotation = Quaternion.Euler(pitch, yaw, 0);
|
||||
Vector3 desiredDirection = rotation * Vector3.back;
|
||||
|
||||
float adjustedDistance = currentDistance;
|
||||
|
||||
if (Physics.SphereCast(
|
||||
target,
|
||||
collisionRadius,
|
||||
desiredDirection,
|
||||
out RaycastHit hit,
|
||||
currentDistance,
|
||||
collisionMask,
|
||||
QueryTriggerInteraction.Ignore))
|
||||
{
|
||||
adjustedDistance =
|
||||
Mathf.Max(
|
||||
hit.distance - collisionOffset,
|
||||
minDistance);
|
||||
}
|
||||
|
||||
// Desired Position
|
||||
Vector3 offset = rotation * Vector3.forward * -adjustedDistance;
|
||||
Vector3 desiredPosition = target + offset;
|
||||
|
||||
if (desiredPosition.y < dougBody.position.y)
|
||||
{
|
||||
desiredPosition.y = dougBody.position.y;
|
||||
}
|
||||
|
||||
// Smooth Follow
|
||||
playerCamHome.transform.position = Vector3.Lerp(
|
||||
playerCamHome.transform.position,
|
||||
desiredPosition,
|
||||
followSpeed * Time.deltaTime
|
||||
);
|
||||
|
||||
// Look at player
|
||||
playerCamHome.transform.LookAt(target + Vector3.up);
|
||||
}
|
||||
|
||||
void UpdateOcclusion()
|
||||
{
|
||||
if (dougBody == null)
|
||||
{
|
||||
if (GameManager.Instance.PlayerController.DougBody != null)
|
||||
dougBody = GameManager.Instance.PlayerController.DougBody.transform;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// Reset all renderers to visible
|
||||
foreach (Renderer r in new List<Renderer>(targetAlpha.Keys))
|
||||
{
|
||||
targetAlpha[r] = 1f;
|
||||
}
|
||||
|
||||
Vector3 dir =
|
||||
MainCamera.transform.position - dougBody.position;
|
||||
|
||||
float dist = dir.magnitude;
|
||||
|
||||
RaycastHit[] hits = Physics.RaycastAll(
|
||||
dougBody.position,
|
||||
dir.normalized,
|
||||
dist,
|
||||
obstructionMask,
|
||||
QueryTriggerInteraction.Ignore);
|
||||
|
||||
foreach (RaycastHit hit in hits)
|
||||
{
|
||||
Renderer r = hit.collider.GetComponent<Renderer>();
|
||||
|
||||
if (r == null)
|
||||
continue;
|
||||
|
||||
if (!currentAlpha.ContainsKey(r))
|
||||
{
|
||||
currentAlpha[r] = 1f;
|
||||
targetAlpha[r] = 1f;
|
||||
}
|
||||
|
||||
targetAlpha[r] = fadedAlpha;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateFade()
|
||||
{
|
||||
List<Renderer> renderers =
|
||||
new List<Renderer>(currentAlpha.Keys);
|
||||
|
||||
foreach (Renderer r in renderers)
|
||||
{
|
||||
float current = currentAlpha[r];
|
||||
float target = targetAlpha[r];
|
||||
|
||||
current = Mathf.Lerp(
|
||||
current,
|
||||
target,
|
||||
Time.deltaTime * fadeSpeed);
|
||||
|
||||
currentAlpha[r] = current;
|
||||
|
||||
foreach (Material mat in r.materials)
|
||||
{
|
||||
Color c = mat.color;
|
||||
c.a = current;
|
||||
|
||||
if (Mathf.Abs(current - targetAlpha[r]) < 0.05f)
|
||||
{
|
||||
c.a = targetAlpha[r];
|
||||
}
|
||||
|
||||
mat.color = c;
|
||||
}
|
||||
|
||||
// Cleanup once fully restored
|
||||
if (Mathf.Abs(current - 1f) < 0.01f &&
|
||||
Mathf.Abs(target - 1f) < 0.01f)
|
||||
{
|
||||
currentAlpha.Remove(r);
|
||||
targetAlpha.Remove(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum CameraControlMode
|
||||
{
|
||||
SnapRotate,
|
||||
FreeRotate
|
||||
}
|
||||
@@ -11,13 +11,17 @@ public class GameManager : MonoBehaviour
|
||||
public static GameManager Instance { get; private set; }
|
||||
public DialogueManager DialogueManager { get; private set; }
|
||||
public TimeManager TimeManager { get; private set; }
|
||||
public PlayerManager PlayerManager { get; private set; }
|
||||
public Inventory Inventory { get; private set; }
|
||||
public Storybools Storybools { get; private set; }
|
||||
public MenuController MenuController { get; private set; }
|
||||
public SoundSettingManager SoundSettingManager { get; private set; }
|
||||
public PlayerController PlayerController { get; private set; }
|
||||
public Image BlackScreen { get; private set; }
|
||||
|
||||
// Are we currently in a scene transition?
|
||||
private bool isTransitioningScenes = false;
|
||||
private Image blackScreen;
|
||||
private PlayerController playerController;
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -26,6 +30,7 @@ private void Awake()
|
||||
if (Instance != null && Instance != this)
|
||||
{
|
||||
Destroy(this.gameObject);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -35,9 +40,11 @@ private void Awake()
|
||||
DontDestroyOnLoad(gameObject);
|
||||
|
||||
ReloadReferences();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
SaveSystem.Load();
|
||||
SaveSystem.Save(); // save off any corruption fixes
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -45,15 +52,109 @@ private void Awake()
|
||||
/// </summary>
|
||||
private void ReloadReferences()
|
||||
{
|
||||
Instance.blackScreen = GameObject.FindWithTag("BlackScreen").GetComponent<Image>();
|
||||
Instance.playerController = GameObject.FindWithTag("Player").GetComponent<PlayerController>();
|
||||
Instance.BlackScreen = GameObject.FindWithTag("BlackScreen").GetComponent<Image>();
|
||||
Instance.PlayerController = GameObject.FindWithTag("Player").GetComponent<PlayerController>();
|
||||
Instance.DialogueManager = GetComponent<DialogueManager>();
|
||||
Instance.DialogueManager.ReloadReferences();
|
||||
|
||||
Instance.Inventory = GetComponent<Inventory>();
|
||||
Instance.TimeManager = GetComponent<TimeManager>();
|
||||
Instance.PlayerManager = GetComponent<PlayerManager>();
|
||||
|
||||
Instance.SoundSettingManager = GetComponent<SoundSettingManager>();
|
||||
Instance.SoundSettingManager.ReloadReferences();
|
||||
|
||||
Instance.MenuController = GameObject.FindWithTag("MenuController").GetComponent<MenuController>();
|
||||
Instance.MenuController.HideAllScreens();
|
||||
}
|
||||
|
||||
#region Map Load Handling
|
||||
/// <summary>
|
||||
/// Triggers transition to a map point
|
||||
/// </summary>
|
||||
public void GoToMapPoint(MapPoint mapPoint, bool instantBlackScreen = false)
|
||||
{
|
||||
StartCoroutine(GoToMapPointCoroutine(mapPoint, instantBlackScreen));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes transition to map point (scene and location)
|
||||
/// </summary>
|
||||
private IEnumerator GoToMapPointCoroutine(MapPoint mapPoint, bool instantBlackScreen)
|
||||
{
|
||||
Instance.isTransitioningScenes = true;
|
||||
Instance.PlayerController.SetCharacterControl(false);
|
||||
|
||||
// Fade to black
|
||||
float fadeDuration = 0.2f; // how long to fade to/from black
|
||||
float moveDuration = 0.4f; // how long to auto walk into room from the door
|
||||
float fadeTime = 0;
|
||||
Color blackScreenColor = Color.black;
|
||||
|
||||
// Fade to black when instantBlackScreen is false
|
||||
if (!instantBlackScreen)
|
||||
{
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
fadeTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
fadeTime = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// instantly make screen black before scene transition
|
||||
blackScreenColor.a = 1;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
}
|
||||
|
||||
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(mapPoint.Scene);
|
||||
while (!asyncLoad.isDone)
|
||||
{
|
||||
// Optional: Update a loading bar with asyncLoad.progress
|
||||
yield return null;
|
||||
}
|
||||
|
||||
ReloadReferences();
|
||||
|
||||
// Make sure screen is black in new scene
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
|
||||
if (Instance.PlayerController != null && GameSceneManager.Instance != null)
|
||||
{
|
||||
Instance.PlayerController.CharacterControllerMove(mapPoint.SpawnPosition - PlayerController.transform.position);
|
||||
}
|
||||
|
||||
// Fade back in
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(1, 0, fadeTime / fadeDuration);
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
fadeTime += Time.deltaTime;
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
blackScreenColor.a = 0;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
|
||||
// move character a little more
|
||||
while (fadeTime < moveDuration)
|
||||
{
|
||||
fadeTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
fadeTime = 0;
|
||||
|
||||
Instance.isTransitioningScenes = false;
|
||||
Instance.PlayerController.SetCharacterControl(true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Scene Door Handling
|
||||
/// <summary>
|
||||
/// Triggers transition to specified scene at the door with the specified ID
|
||||
/// </summary>
|
||||
@@ -68,7 +169,7 @@ public void EnterSceneDoor(string scene, int door)
|
||||
private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||
{
|
||||
Instance.isTransitioningScenes = true;
|
||||
Instance.playerController.SetCharacterControl(false);
|
||||
Instance.PlayerController.SetCharacterControl(false);
|
||||
|
||||
// Fade to black
|
||||
float fadeDuration = 0.2f; // how long to fade to/from black
|
||||
@@ -79,7 +180,7 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
||||
blackScreen.color = blackScreenColor;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
fadeTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
@@ -96,16 +197,17 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||
ReloadReferences();
|
||||
|
||||
// Make sure screen is black in new scene
|
||||
blackScreen.color = blackScreenColor;
|
||||
blackScreenColor.a = 1;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
|
||||
SceneDoor door = GameSceneManager.Instance.GetDoorWithId(doorId);
|
||||
|
||||
if (Instance.playerController != null && GameSceneManager.Instance != null)
|
||||
if (Instance.PlayerController != null && GameSceneManager.Instance != null)
|
||||
{
|
||||
if (door != null)
|
||||
{
|
||||
Instance.playerController.CharacterControllerMove(door.gameObject.transform.position - playerController.transform.position);
|
||||
Instance.playerController.DougBody.transform.rotation = door.gameObject.transform.rotation;
|
||||
Instance.PlayerController.CharacterControllerMove(door.gameObject.transform.position - PlayerController.transform.position);
|
||||
Instance.PlayerController.DougBody.transform.rotation = door.gameObject.transform.rotation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,17 +215,20 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(1, 0, fadeTime / fadeDuration);
|
||||
Instance.blackScreen.color = blackScreenColor;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
fadeTime += Time.deltaTime;
|
||||
|
||||
Instance.playerController.WalkInDirection((door.WalkDirection.position - playerController.transform.position).normalized);
|
||||
Instance.PlayerController.WalkInDirection((door.WalkDirection.position - PlayerController.transform.position).normalized);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
blackScreenColor.a = 0;
|
||||
Instance.BlackScreen.color = blackScreenColor;
|
||||
|
||||
// move character a little more
|
||||
while (fadeTime < moveDuration)
|
||||
{
|
||||
Instance.playerController.WalkInDirection((door.WalkDirection.position - playerController.transform.position).normalized);
|
||||
Instance.PlayerController.WalkInDirection((door.WalkDirection.position - PlayerController.transform.position).normalized);
|
||||
fadeTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
@@ -131,8 +236,9 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||
fadeTime = 0;
|
||||
|
||||
Instance.isTransitioningScenes = false;
|
||||
Instance.playerController.SetCharacterControl(true);
|
||||
Instance.PlayerController.SetCharacterControl(true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Are we currently in the middle of a scene transition?
|
||||
@@ -142,14 +248,6 @@ public bool InSceneTransition()
|
||||
return Instance.isTransitioningScenes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the blackscreen object reference
|
||||
/// </summary>
|
||||
public Image GetBlackScreen()
|
||||
{
|
||||
return Instance.blackScreen;
|
||||
}
|
||||
|
||||
#region Storybool Save/Load
|
||||
public void SaveStoryBools(ref StoryboolSaveData data)
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@ MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: -1
|
||||
executionOrder: -500
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using UnityEngine;
|
||||
|
||||
// Gives a location to be teleported to and displayed on a map. This will be used by
|
||||
// the game manager to allow for fast travel
|
||||
[System.Serializable]
|
||||
public class MapPoint
|
||||
{
|
||||
public string Scene;
|
||||
public Vector3 SpawnPosition;
|
||||
|
||||
public MapPoint(string scene, Vector3 spawnPosition)
|
||||
{
|
||||
this.Scene = scene;
|
||||
this.SpawnPosition = spawnPosition;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c03ccad2a919f74d95b0d3a409412b9
|
||||
+147
-40
@@ -1,60 +1,84 @@
|
||||
using System.Collections;
|
||||
using Unity.VisualScripting.Antlr3.Runtime;
|
||||
using UnityEngine;
|
||||
using static UnityEngine.GraphicsBuffer;
|
||||
|
||||
public class PlayerController : MonoBehaviour
|
||||
{
|
||||
public GameObject DougBody;
|
||||
public Shovel Shovel;
|
||||
|
||||
public Tool[] tools;
|
||||
float toolUseTimestamp = 0;
|
||||
|
||||
public float walkSpeed;
|
||||
public float sprintMultiplier = 1.5f;
|
||||
public float gravity = 10;
|
||||
|
||||
float digTime = 0.9f;
|
||||
float digTimestamp = 0;
|
||||
bool isDigging = false;
|
||||
|
||||
Interactable nearestInteractable;
|
||||
public CameraController cameraController;
|
||||
private CharacterController characterController;
|
||||
private CameraController cameraController;
|
||||
private Vector3 moveDir;
|
||||
private bool hasControl = true; // set this to false if we want to stop reading player inputs
|
||||
private bool canUseTools = true; // set this to false if we want to stop reading player tool use
|
||||
private bool isSprinting = false;
|
||||
private bool paused = false;
|
||||
|
||||
// Mathematical plane used to catch the raycast from camera to get direction for
|
||||
// looking at the mouse
|
||||
private Plane groundPlane;
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
groundPlane = new Plane(Vector3.up, -DougBody.transform.position.y);
|
||||
characterController = GetComponent<CharacterController>();
|
||||
cameraController = GetComponent<CameraController>();
|
||||
SwitchTools(GameManager.Instance.PlayerManager.CurrentToolIndex);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
moveDir = Vector3.zero;
|
||||
groundPlane.distance = -DougBody.transform.position.y;
|
||||
|
||||
// TODO: Move input detection somewhere else
|
||||
if (Input.GetKeyDown(KeyCode.Escape))
|
||||
{
|
||||
if (!paused)
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
Time.timeScale = 0;
|
||||
canUseTools = false;
|
||||
hasControl = false;
|
||||
GameManager.Instance.MenuController.ShowScreen("Pause");
|
||||
}
|
||||
else
|
||||
{
|
||||
Time.timeScale = 1;
|
||||
canUseTools = true;
|
||||
hasControl = true;
|
||||
GameManager.Instance.MenuController.HideAllScreens();
|
||||
}
|
||||
|
||||
paused = !paused;
|
||||
}
|
||||
|
||||
if (hasControl)
|
||||
{
|
||||
if (!isDigging)
|
||||
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||
{
|
||||
RotatePlayerTowardMouse();
|
||||
TryInteract();
|
||||
}
|
||||
|
||||
DigDetector();
|
||||
CheckWeaponChange();
|
||||
ApplyWalk();
|
||||
}
|
||||
|
||||
// TODO: This is just for testing, remove or clean up if used
|
||||
if (Input.GetKeyDown(KeyCode.Q))
|
||||
{
|
||||
cameraController.RotateCam();
|
||||
}
|
||||
|
||||
// TODO: Add actual save feature later, this is just for test
|
||||
if (Input.GetKeyDown(KeyCode.I))
|
||||
{
|
||||
SaveSystem.Save();
|
||||
}
|
||||
if (canUseTools)
|
||||
{
|
||||
ToolUseDetector();
|
||||
}
|
||||
|
||||
CheckSprint();
|
||||
@@ -77,6 +101,24 @@ private void CheckSprint()
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if weapon is being switched by scroll wheel
|
||||
/// </summary>
|
||||
private void CheckWeaponChange()
|
||||
{
|
||||
if (!Input.GetMouseButton(1))
|
||||
{
|
||||
if (Input.mouseScrollDelta.y > 0)
|
||||
{
|
||||
SwitchTools(true);
|
||||
}
|
||||
else if (Input.mouseScrollDelta.y < 0)
|
||||
{
|
||||
SwitchTools(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Apply walking inputs to moveDir
|
||||
/// </summary>
|
||||
@@ -85,7 +127,7 @@ void ApplyWalk()
|
||||
float verticalMovement = 0;
|
||||
float horizontalMovement = 0;
|
||||
|
||||
if (!isDigging)
|
||||
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||
{
|
||||
verticalMovement = Input.GetAxisRaw("Vertical");
|
||||
horizontalMovement = Input.GetAxisRaw("Horizontal");
|
||||
@@ -113,10 +155,7 @@ void ApplyGravity()
|
||||
else
|
||||
moveDir *= walkSpeed;
|
||||
|
||||
if (!characterController.isGrounded)
|
||||
{
|
||||
moveDir.y = -gravity;
|
||||
}
|
||||
moveDir.y += -gravity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -151,24 +190,30 @@ public void WalkInDirection(Vector3 direction)
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Detect input for digging (will eventually be tool agnostic)
|
||||
/// Detect input for tool use
|
||||
/// </summary>
|
||||
void DigDetector()
|
||||
void ToolUseDetector()
|
||||
{
|
||||
if (!isDigging)
|
||||
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||
{
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
Shovel.Dig();
|
||||
isDigging = true;
|
||||
digTimestamp = Time.time + digTime; // fuck coroutines fr fr
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].Use();
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse = true;
|
||||
toolUseTimestamp = Time.time + tools[GameManager.Instance.PlayerManager.CurrentToolIndex].useTimeSec; // fuck coroutines fr fr
|
||||
}
|
||||
else if (Input.GetMouseButtonDown(1))
|
||||
{
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].UseAlt();
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse = true;
|
||||
toolUseTimestamp = Time.time + tools[GameManager.Instance.PlayerManager.CurrentToolIndex].altUseTimeSec;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Time.time > digTimestamp)
|
||||
if (Time.time > toolUseTimestamp)
|
||||
{
|
||||
isDigging = false;
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -179,17 +224,12 @@ void DigDetector()
|
||||
void RotatePlayerTowardMouse()
|
||||
{
|
||||
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||||
RaycastHit hit;
|
||||
|
||||
if (Physics.Raycast(ray, out hit, Mathf.Infinity))
|
||||
if (groundPlane.Raycast(ray, out var distance))
|
||||
{
|
||||
Vector3 targetPosition = hit.point;
|
||||
targetPosition.y = transform.position.y;
|
||||
Vector3 hitPoint = ray.GetPoint(distance);
|
||||
|
||||
Vector3 direction = targetPosition - transform.position;
|
||||
Quaternion targetRotation = Quaternion.LookRotation(direction, Vector3.up);
|
||||
|
||||
DougBody.transform.rotation = targetRotation;
|
||||
DougBody.transform.LookAt(new Vector3(hitPoint.x, DougBody.transform.position.y, hitPoint.z));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,6 +277,14 @@ public void SetCharacterControl(bool hasControl)
|
||||
this.hasControl = hasControl;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the character's "canUseTools" bool. Tool use input is ignored when false
|
||||
/// </summary>
|
||||
public void SetCharacterCanUseTools(bool canUseTools)
|
||||
{
|
||||
this.canUseTools = canUseTools;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the character's "hasControl" bool. All input is ignored when false
|
||||
/// </summary>
|
||||
@@ -244,4 +292,63 @@ public bool GetCharacterHasControl()
|
||||
{
|
||||
return hasControl;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Expose the character controller's velocity
|
||||
/// </summary>
|
||||
public Vector3 GetVelocity()
|
||||
{
|
||||
return characterController.velocity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Switches the tools in hand by taking an index
|
||||
///
|
||||
/// <param name="toolIndex">Index of the tool to switch to</param>
|
||||
/// </summary>
|
||||
private void SwitchTools(int toolIndex)
|
||||
{
|
||||
if (toolIndex < 0 || toolIndex >= tools.Length)
|
||||
{
|
||||
toolIndex = 0;
|
||||
}
|
||||
|
||||
// disable all tools
|
||||
foreach (Tool tool in tools)
|
||||
{
|
||||
tool.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
// load new tool
|
||||
GameManager.Instance.PlayerManager.CurrentToolIndex = toolIndex;
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Switches the tools in hand by moving up or down the list
|
||||
///
|
||||
/// <param name="up">Are we moving up (-1) the list?</param>
|
||||
/// </summary>
|
||||
private void SwitchTools(bool up)
|
||||
{
|
||||
// calculate index of next tool
|
||||
int newIndex = up ? GameManager.Instance.PlayerManager.CurrentToolIndex - 1 : GameManager.Instance.PlayerManager.CurrentToolIndex + 1;
|
||||
|
||||
if (newIndex < 0)
|
||||
{
|
||||
newIndex = tools.Length + newIndex;
|
||||
}
|
||||
else if (newIndex >= tools.Length)
|
||||
{
|
||||
newIndex = newIndex % tools.Length;
|
||||
}
|
||||
|
||||
// disable current tool
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].gameObject.SetActive(false);
|
||||
|
||||
// load new tool
|
||||
GameManager.Instance.PlayerManager.CurrentToolIndex = newIndex;
|
||||
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
// Handles scene-persistent player data
|
||||
public class PlayerManager : MonoBehaviour
|
||||
{
|
||||
public int CurrentToolIndex;
|
||||
|
||||
#region Player Data Save/Load
|
||||
public void SavePlayerData(ref PlayerSaveData data)
|
||||
{
|
||||
data.activeToolIndex = GameManager.Instance.PlayerManager.CurrentToolIndex;
|
||||
data.dougPosition = GameManager.Instance.PlayerController.transform.position;
|
||||
data.currentScene = SceneManager.GetActiveScene().name;
|
||||
}
|
||||
|
||||
public void LoadPlayerData(PlayerSaveData data)
|
||||
{
|
||||
if (data.currentScene != null && data.currentScene != SceneManager.GetActiveScene().name)
|
||||
{
|
||||
GameManager.Instance.GoToMapPoint(new MapPoint(data.currentScene, data.dougPosition), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
GameManager.Instance.PlayerManager.CurrentToolIndex = data.activeToolIndex;
|
||||
GameManager.Instance.PlayerController.transform.position = data.dougPosition;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct PlayerSaveData
|
||||
{
|
||||
public int activeToolIndex;
|
||||
public Vector3 dougPosition;
|
||||
public string currentScene;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9c9dde58f68b5e4d9fc0036b990c481
|
||||
@@ -5,9 +5,9 @@ public class Quest : MonoBehaviour
|
||||
public bool hasStarted = false;
|
||||
public bool hasCompleted = false;
|
||||
|
||||
public string[] askText; // ask the player to complete the task
|
||||
public string[] duringText; // what to say to the player when the task is complete
|
||||
public string[] completionText; // what to say to the player upon completion
|
||||
public DialogueLine[] askText; // ask the player to complete the task
|
||||
public DialogueLine[] duringText; // what to say to the player when the task is complete
|
||||
public DialogueLine[] completionText; // what to say to the player upon completion
|
||||
|
||||
public int questID = 0; // connects the quest to the registry, which gives us conditions
|
||||
|
||||
|
||||
@@ -53,9 +53,40 @@ private void Awake()
|
||||
questBoolMap.Add(1, QID1_List);
|
||||
#endregion
|
||||
|
||||
#region 2 - (Story Quest #1) No More Freeloading
|
||||
// This is the first time we talk to grandma. She wants help around the house.
|
||||
// Quest is complete after we talk to the shop keeper and complete quest 3.
|
||||
|
||||
QuestBool[] QID2_List = new QuestBool[1];
|
||||
|
||||
// QID2_1_completedQuest3
|
||||
QID2_List[0] = new QuestBool(() =>
|
||||
{
|
||||
return CompletedQuests.Contains(3);
|
||||
});
|
||||
|
||||
questBoolMap.Add(2, QID2_List);
|
||||
#endregion
|
||||
|
||||
#region 3 - (Story Quest #1.5) First Paycheck
|
||||
// This is the first time we talk to the shopkeeper. He tells us to find a star
|
||||
// shard and bring it to him.
|
||||
|
||||
QuestBool[] QID3_List = new QuestBool[1];
|
||||
|
||||
// QID3_1_hasEnoughStarshards
|
||||
QID3_List[0] = new QuestBool(() =>
|
||||
{
|
||||
return GameManager.Instance.Inventory.GetItemQuantity(ItemIdEnum.STAR_SHARD) > 0;
|
||||
});
|
||||
|
||||
questBoolMap.Add(3, QID3_List);
|
||||
#endregion
|
||||
|
||||
return questBoolMap;
|
||||
}
|
||||
|
||||
#region Save/Load Quest Data
|
||||
// Save completed quests to disk
|
||||
public void SaveQuestData(ref QuestSaveData data)
|
||||
{
|
||||
@@ -83,6 +114,7 @@ public void LoadQuestData(QuestSaveData data)
|
||||
Instance.CompletedQuests = new List<int>();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class QuestBool
|
||||
|
||||
@@ -4,7 +4,7 @@ MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: -2
|
||||
executionOrder: -501
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
|
||||
@@ -7,4 +7,8 @@ public class Storybools
|
||||
#region QID1
|
||||
public bool hasHelpedSam = false;
|
||||
#endregion
|
||||
|
||||
#region QID3
|
||||
public bool talkedToShopkeep = false;
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ public struct SaveData
|
||||
public StoryboolSaveData StoryboolData;
|
||||
public InventorySaveData InventorySaveData;
|
||||
public TimeSaveData TimeSaveData;
|
||||
public PlayerSaveData PlayerSaveData;
|
||||
public SoundSettingSaveData SoundSettingSaveData;
|
||||
}
|
||||
|
||||
public static string SaveFileName()
|
||||
@@ -40,12 +42,27 @@ public static void Save()
|
||||
File.WriteAllText(SaveFileName(), JsonUtility.ToJson(_saveData, true));
|
||||
}
|
||||
|
||||
public static void ClearSave()
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(SaveFileName());
|
||||
Debug.Log("File deleted successfully. Stop and restart player.");
|
||||
}
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
// file doesn't exist, don't need to do anything
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleSaveData()
|
||||
{
|
||||
GameManager.Instance.SaveStoryBools(ref _saveData.StoryboolData);
|
||||
GameManager.Instance.Inventory.SaveInventory(ref _saveData.InventorySaveData);
|
||||
GameManager.Instance.TimeManager.SaveTime(ref _saveData.TimeSaveData);
|
||||
GameManager.Instance.PlayerManager.SavePlayerData(ref _saveData.PlayerSaveData);
|
||||
QuestRegistry.Instance.SaveQuestData(ref _saveData.QuestData);
|
||||
GameManager.Instance.SoundSettingManager.SaveSoundSettingsData(ref _saveData.SoundSettingSaveData);
|
||||
}
|
||||
|
||||
public static void Load()
|
||||
@@ -84,6 +101,8 @@ public static void HandleLoadData()
|
||||
GameManager.Instance.LoadStoryBools(_saveData.StoryboolData);
|
||||
GameManager.Instance.Inventory.LoadInventory(_saveData.InventorySaveData);
|
||||
GameManager.Instance.TimeManager.LoadTime(_saveData.TimeSaveData);
|
||||
GameManager.Instance.PlayerManager.LoadPlayerData(_saveData.PlayerSaveData);
|
||||
QuestRegistry.Instance.LoadQuestData(_saveData.QuestData);
|
||||
GameManager.Instance.SoundSettingManager.LoadSoundSettingsData(_saveData.SoundSettingSaveData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class SoundSettingManager : MonoBehaviour
|
||||
{
|
||||
public AudioMixer audioMixer;
|
||||
|
||||
float masterVolume;
|
||||
float musicVolume;
|
||||
float sfxVolume;
|
||||
|
||||
Slider MasterSlider;
|
||||
Slider SfxSlider;
|
||||
Slider MusicSlider;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
MasterSlider.value = masterVolume;
|
||||
SfxSlider.value = sfxVolume;
|
||||
MusicSlider.value = musicVolume;
|
||||
}
|
||||
|
||||
public void ReloadReferences()
|
||||
{
|
||||
MasterSlider = GameObject.FindWithTag("MasterSlider").GetComponent<Slider>();
|
||||
SfxSlider = GameObject.FindWithTag("SfxSlider").GetComponent<Slider>();
|
||||
MusicSlider = GameObject.FindWithTag("MusicSlider").GetComponent<Slider>();
|
||||
|
||||
MasterSlider.onValueChanged.AddListener(OnMasterValueChanged);
|
||||
SfxSlider.onValueChanged.AddListener(OnSfxValueChanged);
|
||||
MusicSlider.onValueChanged.AddListener(OnMusicValueChanged);
|
||||
|
||||
MasterSlider.value = masterVolume;
|
||||
SfxSlider.value = sfxVolume;
|
||||
MusicSlider.value = musicVolume;
|
||||
}
|
||||
|
||||
public void OnMasterValueChanged(float newValue)
|
||||
{
|
||||
masterVolume = newValue;
|
||||
SetVolumeFloat(newValue, "MasterVolume");
|
||||
}
|
||||
|
||||
public void OnSfxValueChanged(float newValue)
|
||||
{
|
||||
sfxVolume = newValue;
|
||||
SetVolumeFloat(newValue, "SFXVolume");
|
||||
}
|
||||
|
||||
public void OnMusicValueChanged(float newValue)
|
||||
{
|
||||
musicVolume = newValue;
|
||||
SetVolumeFloat(newValue, "MusicVolume");
|
||||
}
|
||||
|
||||
private void SetVolumeFloat(float sliderVal, string mixerGroup)
|
||||
{
|
||||
// Convert linear 0-1 to dB (-80 to 0 range)
|
||||
float dbValue = Mathf.Log10(sliderVal) * 20;
|
||||
if (sliderVal == 0)
|
||||
{
|
||||
dbValue = -80;
|
||||
}
|
||||
|
||||
audioMixer.SetFloat(mixerGroup, dbValue);
|
||||
}
|
||||
|
||||
#region Sound Settings Data Save/Load
|
||||
public void SaveSoundSettingsData(ref SoundSettingSaveData data)
|
||||
{
|
||||
data.musicVolume = musicVolume;
|
||||
data.sfxVolume = sfxVolume;
|
||||
data.masterVolume = masterVolume;
|
||||
}
|
||||
|
||||
public void LoadSoundSettingsData(SoundSettingSaveData data)
|
||||
{
|
||||
musicVolume = data.musicVolume;
|
||||
sfxVolume = data.sfxVolume;
|
||||
masterVolume = data.masterVolume;
|
||||
|
||||
MasterSlider.value = masterVolume;
|
||||
SfxSlider.value = sfxVolume;
|
||||
MusicSlider.value = musicVolume;
|
||||
|
||||
SetVolumeFloat(masterVolume, "MasterVolume");
|
||||
SetVolumeFloat(musicVolume, "MusicVolume");
|
||||
SetVolumeFloat(sfxVolume, "SFXVolume");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct SoundSettingSaveData
|
||||
{
|
||||
public float musicVolume;
|
||||
public float sfxVolume;
|
||||
public float masterVolume;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab14394efecbd6540af369ced75e81d0
|
||||
@@ -6,12 +6,10 @@
|
||||
// Handle room and scene transitions
|
||||
public class TeleportHandler : MonoBehaviour
|
||||
{
|
||||
Image blackScreenObject;
|
||||
PlayerController playerController;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
blackScreenObject = GameManager.Instance.GetBlackScreen();
|
||||
playerController = GetComponent<PlayerController>();
|
||||
}
|
||||
|
||||
@@ -43,7 +41,7 @@ IEnumerator EnterRoomCoroutine(RoomDoor door)
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
||||
blackScreenObject.color = blackScreenColor;
|
||||
GameManager.Instance.BlackScreen.color = blackScreenColor;
|
||||
fadeTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
@@ -55,7 +53,7 @@ IEnumerator EnterRoomCoroutine(RoomDoor door)
|
||||
while (fadeTime < fadeDuration)
|
||||
{
|
||||
blackScreenColor.a = Mathf.Lerp(1, 0, fadeTime / fadeDuration);
|
||||
blackScreenObject.color = blackScreenColor;
|
||||
GameManager.Instance.BlackScreen.color = blackScreenColor;
|
||||
playerController.WalkInDirection((door.linkedDoor.WalkDirection.position - playerController.transform.position).normalized);
|
||||
|
||||
fadeTime += Time.deltaTime;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20c8faa2469f8aa45be8aae9439949d1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,27 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Ballgun : Tool
|
||||
{
|
||||
[Header("Ball Gun Parameters")]
|
||||
public float shootForce = 10;
|
||||
public GameObject ball;
|
||||
public float ballLifeTime = 5;
|
||||
|
||||
public override void Use()
|
||||
{
|
||||
GameObject newBall = Instantiate(ball);
|
||||
newBall.transform.position = transform.position;
|
||||
|
||||
Vector3 direction = transform.forward * shootForce;
|
||||
direction += GameManager.Instance.PlayerController.GetVelocity();
|
||||
|
||||
newBall.GetComponent<Rigidbody>().AddForce(direction, ForceMode.Impulse);
|
||||
|
||||
Destroy(newBall, ballLifeTime);
|
||||
}
|
||||
|
||||
public override void UseAlt()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8adaf1de0b489444189e21893ccde9b5
|
||||
@@ -0,0 +1,17 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Flashlight : Tool
|
||||
{
|
||||
[Header("Flashlight Parameters")]
|
||||
public Light lightSrc;
|
||||
|
||||
public override void Use()
|
||||
{
|
||||
lightSrc.enabled = !lightSrc.enabled;
|
||||
}
|
||||
|
||||
public override void UseAlt()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: edd0364a446d1fd489dd8bbb53de613a
|
||||
@@ -0,0 +1,128 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public class GrappleGun : Tool
|
||||
{
|
||||
[Header("Grapple Gun Parameters")]
|
||||
public float range;
|
||||
public float hookStickTime;
|
||||
public GameObject hook;
|
||||
|
||||
bool isMoving = false;
|
||||
bool stuckInTarget = false;
|
||||
private Vector3 hookBaseLocation;
|
||||
private Transform hookParent;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
hookBaseLocation = hook.transform.localPosition;
|
||||
hookParent = hook.transform.parent;
|
||||
}
|
||||
|
||||
IEnumerator GoToTarget(Vector3 target)
|
||||
{
|
||||
GameManager.Instance.PlayerController.SetCharacterControl(false);
|
||||
isMoving = true;
|
||||
Vector3 startPosition = hook.transform.position;
|
||||
float elapsedTime = 0f;
|
||||
|
||||
while (elapsedTime < hookStickTime)
|
||||
{
|
||||
float t = elapsedTime / hookStickTime;
|
||||
hook.transform.position = Vector3.Lerp(startPosition, target, t);
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// Ensure final position is exact
|
||||
hook.transform.position = target;
|
||||
hook.transform.parent = null;
|
||||
isMoving = false;
|
||||
stuckInTarget = true;
|
||||
|
||||
StartCoroutine(MovePlayerToTarget(target));
|
||||
}
|
||||
|
||||
IEnumerator MovePlayerToTarget(Vector3 target)
|
||||
{
|
||||
Transform player = GameManager.Instance.PlayerController.transform;
|
||||
Vector3 startPosition = player.position;
|
||||
float elapsedTime = 0f;
|
||||
|
||||
while (elapsedTime < hookStickTime)
|
||||
{
|
||||
float t = elapsedTime / hookStickTime;
|
||||
player.position = Vector3.Lerp(startPosition, target, t);
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// Ensure final position is exact
|
||||
player.position = target;
|
||||
stuckInTarget = false;
|
||||
|
||||
hook.transform.parent = hookParent;
|
||||
hook.transform.localPosition = hookBaseLocation;
|
||||
isMoving = false;
|
||||
stuckInTarget = false;
|
||||
|
||||
GameManager.Instance.PlayerController.SetCharacterControl(true);
|
||||
}
|
||||
|
||||
IEnumerator ShootAndMiss()
|
||||
{
|
||||
GameManager.Instance.PlayerController.SetCharacterControl(false);
|
||||
|
||||
isMoving = true;
|
||||
|
||||
// move to edge of range and don't stick anywhere
|
||||
Vector3 startPosition = hook.transform.position;
|
||||
Vector3 target = transform.position + (transform.forward * range);
|
||||
float elapsedTime = 0f;
|
||||
|
||||
while (elapsedTime < hookStickTime)
|
||||
{
|
||||
float t = elapsedTime / hookStickTime;
|
||||
hook.transform.position = Vector3.Lerp(startPosition, target, t);
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
hook.transform.localPosition = hookBaseLocation;
|
||||
isMoving = false;
|
||||
stuckInTarget = false;
|
||||
|
||||
GameManager.Instance.PlayerController.SetCharacterControl(true);
|
||||
}
|
||||
|
||||
public override void Use()
|
||||
{
|
||||
if (stuckInTarget || isMoving)
|
||||
{
|
||||
StopAllCoroutines();
|
||||
hook.transform.parent = hookParent;
|
||||
hook.transform.localPosition = hookBaseLocation;
|
||||
isMoving = false;
|
||||
stuckInTarget = false;
|
||||
|
||||
GameManager.Instance.PlayerController.SetCharacterControl(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
RaycastHit hit;
|
||||
if (Physics.Raycast(transform.position, transform.forward, out hit, range))
|
||||
{
|
||||
StartCoroutine(GoToTarget(hit.point));
|
||||
}
|
||||
else
|
||||
{
|
||||
StartCoroutine(ShootAndMiss());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void UseAlt()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70102eddcaad3044d9ac0ec62519caad
|
||||
@@ -1,14 +1,20 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Shovel : MonoBehaviour
|
||||
public class Shovel : Tool
|
||||
{
|
||||
[Header("Shovel Parameters")]
|
||||
public Animator shovelAnimator;
|
||||
|
||||
public void Dig()
|
||||
public override void Use()
|
||||
{
|
||||
shovelAnimator.SetTrigger("Dig");
|
||||
}
|
||||
|
||||
public override void UseAlt()
|
||||
{
|
||||
// no tool
|
||||
}
|
||||
|
||||
// this only works if this script is sitting on the object with the collider!!
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
@@ -0,0 +1,86 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
using static UnityEngine.GraphicsBuffer;
|
||||
|
||||
public class ThrowableHand : Tool
|
||||
{
|
||||
[Header("Throwable Hand Parameters")]
|
||||
public float range;
|
||||
public float forceModifier;
|
||||
public float loft;
|
||||
public GameObject testBomb;
|
||||
|
||||
// Mathematical plane used to catch the raycast from camera to get direction for
|
||||
// looking at the mouse
|
||||
private Plane handGroundPlane;
|
||||
private DecalProjector targetProjection;
|
||||
private float throwForce;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (GameManager.Instance.PlayerController != null)
|
||||
{
|
||||
SetGroundPlane();
|
||||
DrawTargetProjection();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetGroundPlane()
|
||||
{
|
||||
if (handGroundPlane == null)
|
||||
{
|
||||
handGroundPlane = new Plane(Vector3.up, -GameManager.Instance.PlayerController.DougBody.transform.position.y);
|
||||
}
|
||||
|
||||
handGroundPlane.distance = -GameManager.Instance.PlayerController.DougBody.transform.position.y;
|
||||
handGroundPlane.normal = Vector3.up;
|
||||
}
|
||||
|
||||
private void DrawTargetProjection()
|
||||
{
|
||||
if (targetProjection == null)
|
||||
{
|
||||
targetProjection = GetComponentInChildren<DecalProjector>();
|
||||
}
|
||||
|
||||
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||||
|
||||
if (handGroundPlane.Raycast(ray, out var distance))
|
||||
{
|
||||
Vector3 hitPoint = ray.GetPoint(distance);
|
||||
|
||||
float distanceFromPoint = Vector3.Distance(hitPoint, transform.position);
|
||||
if (distanceFromPoint > range)
|
||||
{
|
||||
Vector3 directionTowardMouse = (hitPoint - transform.position).normalized;
|
||||
targetProjection.transform.position = new Vector3(transform.position.x, hitPoint.y, transform.position.z);
|
||||
targetProjection.transform.position += directionTowardMouse * range;
|
||||
|
||||
throwForce = range;
|
||||
}
|
||||
else
|
||||
{
|
||||
targetProjection.gameObject.SetActive(true);
|
||||
targetProjection.transform.position = hitPoint;
|
||||
throwForce = distanceFromPoint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Use()
|
||||
{
|
||||
GameObject newBomb = Instantiate(testBomb);
|
||||
newBomb.transform.position = transform.position;
|
||||
|
||||
Vector3 direction = transform.forward * throwForce * forceModifier;
|
||||
direction += GameManager.Instance.PlayerController.GetVelocity();
|
||||
direction.y = loft;
|
||||
|
||||
newBomb.GetComponent<Rigidbody>().AddForce(direction, ForceMode.Impulse);
|
||||
}
|
||||
|
||||
public override void UseAlt()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe5aedf75d904534296ad0d07fe55622
|
||||
@@ -0,0 +1,16 @@
|
||||
using UnityEngine;
|
||||
|
||||
public abstract class Tool : MonoBehaviour
|
||||
{
|
||||
|
||||
[Header("Base Tool Parameters")]
|
||||
public float useTimeSec;
|
||||
public float altUseTimeSec;
|
||||
public bool inUse;
|
||||
|
||||
// primary (left click)
|
||||
public abstract void Use();
|
||||
|
||||
// secondary (right click)
|
||||
public abstract void UseAlt();
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72d72769aaaeff0479ea6b811b94d1df
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83ac1cbbc254d804499b8f2508119340
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,30 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class MenuController : MonoBehaviour
|
||||
{
|
||||
public List<MenuScreen> screens;
|
||||
|
||||
public void ShowScreen(string screenName)
|
||||
{
|
||||
HideAllScreens();
|
||||
|
||||
MenuScreen selScreen = screens.Find(x => x.screenName == screenName);
|
||||
if (selScreen != null)
|
||||
{
|
||||
selScreen.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new System.Exception("Screen name was not found in list of screens!");
|
||||
}
|
||||
}
|
||||
|
||||
public void HideAllScreens()
|
||||
{
|
||||
foreach (var screen in screens)
|
||||
{
|
||||
screen.Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2289f767f0db35c459c4aae4d94b05c5
|
||||
@@ -0,0 +1,16 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class MenuScreen : MonoBehaviour
|
||||
{
|
||||
public string screenName;
|
||||
|
||||
public void Show()
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
public void Hide()
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ba23d5f6c337c34caaac9a4d8aab191
|
||||
@@ -0,0 +1,25 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class MiniMapCam : MonoBehaviour
|
||||
{
|
||||
Transform playerTransform;
|
||||
Transform camHomeTransform;
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if (playerTransform == null)
|
||||
{
|
||||
playerTransform = GameManager.Instance.PlayerController.transform;
|
||||
}
|
||||
if (camHomeTransform == null)
|
||||
{
|
||||
camHomeTransform = GameManager.Instance.PlayerController.cameraController.playerCamHome;
|
||||
}
|
||||
|
||||
Vector3 newPosition = playerTransform.position;
|
||||
newPosition.y = transform.position.y;
|
||||
transform.position = newPosition;
|
||||
|
||||
transform.rotation = Quaternion.Euler(90, camHomeTransform.eulerAngles.y, 0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64af30c5f595a904b9beb633d468cbff
|
||||
@@ -0,0 +1,15 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class PauseMenu : MonoBehaviour
|
||||
{
|
||||
public Button SaveButton;
|
||||
public Button DeleteSaveButton;
|
||||
public Button QuitButton;
|
||||
|
||||
void Start()
|
||||
{
|
||||
SaveButton.onClick.AddListener(SaveSystem.Save);
|
||||
DeleteSaveButton.onClick.AddListener(SaveSystem.ClearSave);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9657fbe2c0c3ae74b8f542c62a1f38a2
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a123f00b4942dc4091340ce72744309
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,30 @@
|
||||
using UnityEngine;
|
||||
|
||||
// Very simple script, just takes a light on start and slowly fades it to 0
|
||||
// over the duration specified.
|
||||
[RequireComponent(typeof(Light))]
|
||||
public class FadingLight : MonoBehaviour
|
||||
{
|
||||
|
||||
Light lightObj;
|
||||
|
||||
public float duration;
|
||||
public bool isFading;
|
||||
|
||||
float timer;
|
||||
float startIntensity;
|
||||
|
||||
void Start()
|
||||
{
|
||||
lightObj = GetComponent<Light>();
|
||||
startIntensity = lightObj.intensity;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
float t = timer / duration;
|
||||
t = Mathf.Clamp01(t);
|
||||
lightObj.intensity = Mathf.Lerp(startIntensity, 0, t);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2742aa9b9a50a9d458a4daef485a3956
|
||||
@@ -0,0 +1,33 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Tnt : MonoBehaviour
|
||||
{
|
||||
public Light explodeLight;
|
||||
public ParticleSystem explodeParticle;
|
||||
|
||||
public float fuseTime;
|
||||
public float explosionLengthTime;
|
||||
float timer = 0;
|
||||
private bool exploded = false;
|
||||
|
||||
void Update()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
|
||||
if (!exploded && timer > fuseTime)
|
||||
{
|
||||
exploded = true;
|
||||
explodeLight.gameObject.SetActive(true);
|
||||
explodeLight.transform.parent = null;
|
||||
explodeParticle.gameObject.SetActive(true);
|
||||
explodeParticle.transform.parent = null;
|
||||
explodeParticle.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);
|
||||
explodeParticle.Play();
|
||||
|
||||
Destroy(explodeLight.gameObject, explosionLengthTime);
|
||||
Destroy(explodeParticle.gameObject, explosionLengthTime);
|
||||
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f876d4c98cbd6c8499fa411ab2468058
|
||||
@@ -342,6 +342,9 @@ MonoBehaviour:
|
||||
skyOcclusionIntensityMultiplier:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
worldOffset:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &-1216621516061285780
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
@@ -376,6 +379,9 @@ MonoBehaviour:
|
||||
highQualityFiltering:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
filter:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
downscale:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
@@ -462,8 +468,6 @@ MonoBehaviour:
|
||||
- {fileID: -6288072647309666549}
|
||||
- {fileID: 7518938298396184218}
|
||||
- {fileID: -1410297666881709256}
|
||||
- {fileID: -7750755424749557576}
|
||||
- {fileID: -5139089513906902183}
|
||||
--- !u!114 &853819529557874667
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd94efce2613467429ba62d5e1847e88
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,158 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-4433539903371689466
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TntSmoke
|
||||
m_Shader: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords:
|
||||
- _FLIPBOOKBLENDING_OFF
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EmissionEnabled: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _FlipbookBlending: 0
|
||||
- _FlipbookMode: 0
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _LightingEnabled: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SoftParticlesEnabled: 0
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 0.28692925, b: 0.21226418, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user