Compare commits
22 Commits
17ed6ba3cb
...
trey
| 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 string charName;
|
||||||
public bool isActive = false;
|
public bool isActive = false;
|
||||||
|
|
||||||
[TextArea(3,10)]
|
public DialogueLine[] sentences;
|
||||||
public string[] 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
|
public class DialogueManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
private Queue<string> sentences;
|
private Queue<DialogueLine> sentences;
|
||||||
private Dialogue currentDialogue;
|
private Dialogue currentDialogue;
|
||||||
private DialogueVoice currentDialogueVoice;
|
private DialogueVoice currentDialogueVoice;
|
||||||
private float maxDialogueWaitTime = 1.0f;
|
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
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
sentences = new Queue<string>();
|
sentences = new Queue<DialogueLine>();
|
||||||
voiceSourcePool = GetComponentsInChildren<AudioSource>();
|
voiceSourcePool = GetComponentsInChildren<AudioSource>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,9 +45,8 @@ public void StartDialogue(Dialogue dialogue, DialogueVoice dialogueVoice)
|
|||||||
sentences.Clear();
|
sentences.Clear();
|
||||||
currentDialogue = dialogue;
|
currentDialogue = dialogue;
|
||||||
currentDialogueVoice = dialogueVoice;
|
currentDialogueVoice = dialogueVoice;
|
||||||
nameText.text = dialogue.charName;
|
|
||||||
|
|
||||||
foreach (string sentence in dialogue.sentences)
|
foreach (DialogueLine sentence in dialogue.sentences)
|
||||||
{
|
{
|
||||||
sentences.Enqueue(sentence);
|
sentences.Enqueue(sentence);
|
||||||
}
|
}
|
||||||
@@ -64,7 +63,7 @@ public void DisplayNextSentence()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string sentence = sentences.Dequeue();
|
DialogueLine sentence = sentences.Dequeue();
|
||||||
StopAllCoroutines();
|
StopAllCoroutines();
|
||||||
StopVoices();
|
StopVoices();
|
||||||
StartCoroutine(TypeSentence(sentence));
|
StartCoroutine(TypeSentence(sentence));
|
||||||
@@ -82,34 +81,51 @@ public void EndDialogue()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator TypeSentence(string sentence)
|
IEnumerator TypeSentence(DialogueLine sentence)
|
||||||
{
|
{
|
||||||
dialogueText.text = "";
|
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++)
|
for (int i = 0; i < sentenceCharArray.Length; i++)
|
||||||
{
|
{
|
||||||
dialogueText.text += sentenceCharArray[i];
|
dialogueText.text += sentenceCharArray[i];
|
||||||
|
|
||||||
if (currentDialogueVoice != null && currentDialogueVoice.voice != Voices.None)
|
if (sentence.isDoug)
|
||||||
{
|
{
|
||||||
if (i % currentDialogueVoice.speechInterval == 0)
|
// TODO: Add Doug voice
|
||||||
{
|
yield return new WaitForSeconds(0.03f);
|
||||||
AudioClip voiceToPlay = currentDialogueVoice.GetClipFromChar(char.ToLower(sentenceCharArray[i]));
|
|
||||||
|
|
||||||
if (voiceToPlay != null)
|
|
||||||
{
|
|
||||||
PlayNextClip(voiceToPlay);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return new WaitForSeconds(maxDialogueWaitTime - currentDialogueVoice.talkSpeed * maxDialogueWaitTime);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO: Add speed variable to non-voices (Talkable.cs)
|
if (currentDialogueVoice != null && currentDialogueVoice.voice != Voices.None)
|
||||||
yield return new WaitForSeconds(0.03f);
|
{
|
||||||
}
|
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 static GameManager Instance { get; private set; }
|
||||||
public DialogueManager DialogueManager { get; private set; }
|
public DialogueManager DialogueManager { get; private set; }
|
||||||
public TimeManager TimeManager { get; private set; }
|
public TimeManager TimeManager { get; private set; }
|
||||||
|
public PlayerManager PlayerManager { get; private set; }
|
||||||
public Inventory Inventory { get; private set; }
|
public Inventory Inventory { get; private set; }
|
||||||
public Storybools Storybools { 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?
|
// Are we currently in a scene transition?
|
||||||
private bool isTransitioningScenes = false;
|
private bool isTransitioningScenes = false;
|
||||||
private Image blackScreen;
|
|
||||||
private PlayerController playerController;
|
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@@ -26,6 +30,7 @@ private void Awake()
|
|||||||
if (Instance != null && Instance != this)
|
if (Instance != null && Instance != this)
|
||||||
{
|
{
|
||||||
Destroy(this.gameObject);
|
Destroy(this.gameObject);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -35,9 +40,11 @@ private void Awake()
|
|||||||
DontDestroyOnLoad(gameObject);
|
DontDestroyOnLoad(gameObject);
|
||||||
|
|
||||||
ReloadReferences();
|
ReloadReferences();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
SaveSystem.Load();
|
SaveSystem.Load();
|
||||||
SaveSystem.Save(); // save off any corruption fixes
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -45,15 +52,109 @@ private void Awake()
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void ReloadReferences()
|
private void ReloadReferences()
|
||||||
{
|
{
|
||||||
Instance.blackScreen = GameObject.FindWithTag("BlackScreen").GetComponent<Image>();
|
Instance.BlackScreen = GameObject.FindWithTag("BlackScreen").GetComponent<Image>();
|
||||||
Instance.playerController = GameObject.FindWithTag("Player").GetComponent<PlayerController>();
|
Instance.PlayerController = GameObject.FindWithTag("Player").GetComponent<PlayerController>();
|
||||||
Instance.DialogueManager = GetComponent<DialogueManager>();
|
Instance.DialogueManager = GetComponent<DialogueManager>();
|
||||||
Instance.DialogueManager.ReloadReferences();
|
Instance.DialogueManager.ReloadReferences();
|
||||||
|
|
||||||
Instance.Inventory = GetComponent<Inventory>();
|
Instance.Inventory = GetComponent<Inventory>();
|
||||||
Instance.TimeManager = GetComponent<TimeManager>();
|
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>
|
/// <summary>
|
||||||
/// Triggers transition to specified scene at the door with the specified ID
|
/// Triggers transition to specified scene at the door with the specified ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -68,7 +169,7 @@ public void EnterSceneDoor(string scene, int door)
|
|||||||
private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
||||||
{
|
{
|
||||||
Instance.isTransitioningScenes = true;
|
Instance.isTransitioningScenes = true;
|
||||||
Instance.playerController.SetCharacterControl(false);
|
Instance.PlayerController.SetCharacterControl(false);
|
||||||
|
|
||||||
// Fade to black
|
// Fade to black
|
||||||
float fadeDuration = 0.2f; // how long to fade to/from 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)
|
while (fadeTime < fadeDuration)
|
||||||
{
|
{
|
||||||
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
||||||
blackScreen.color = blackScreenColor;
|
Instance.BlackScreen.color = blackScreenColor;
|
||||||
fadeTime += Time.deltaTime;
|
fadeTime += Time.deltaTime;
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
@@ -96,16 +197,17 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
|||||||
ReloadReferences();
|
ReloadReferences();
|
||||||
|
|
||||||
// Make sure screen is black in new scene
|
// Make sure screen is black in new scene
|
||||||
blackScreen.color = blackScreenColor;
|
blackScreenColor.a = 1;
|
||||||
|
Instance.BlackScreen.color = blackScreenColor;
|
||||||
|
|
||||||
SceneDoor door = GameSceneManager.Instance.GetDoorWithId(doorId);
|
SceneDoor door = GameSceneManager.Instance.GetDoorWithId(doorId);
|
||||||
|
|
||||||
if (Instance.playerController != null && GameSceneManager.Instance != null)
|
if (Instance.PlayerController != null && GameSceneManager.Instance != null)
|
||||||
{
|
{
|
||||||
if (door != null)
|
if (door != null)
|
||||||
{
|
{
|
||||||
Instance.playerController.CharacterControllerMove(door.gameObject.transform.position - playerController.transform.position);
|
Instance.PlayerController.CharacterControllerMove(door.gameObject.transform.position - PlayerController.transform.position);
|
||||||
Instance.playerController.DougBody.transform.rotation = door.gameObject.transform.rotation;
|
Instance.PlayerController.DougBody.transform.rotation = door.gameObject.transform.rotation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,17 +215,20 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
|||||||
while (fadeTime < fadeDuration)
|
while (fadeTime < fadeDuration)
|
||||||
{
|
{
|
||||||
blackScreenColor.a = Mathf.Lerp(1, 0, fadeTime / fadeDuration);
|
blackScreenColor.a = Mathf.Lerp(1, 0, fadeTime / fadeDuration);
|
||||||
Instance.blackScreen.color = blackScreenColor;
|
Instance.BlackScreen.color = blackScreenColor;
|
||||||
fadeTime += Time.deltaTime;
|
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;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blackScreenColor.a = 0;
|
||||||
|
Instance.BlackScreen.color = blackScreenColor;
|
||||||
|
|
||||||
// move character a little more
|
// move character a little more
|
||||||
while (fadeTime < moveDuration)
|
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;
|
fadeTime += Time.deltaTime;
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
@@ -131,8 +236,9 @@ private IEnumerator EnterSceneDoorCoroutine(string scene, int doorId)
|
|||||||
fadeTime = 0;
|
fadeTime = 0;
|
||||||
|
|
||||||
Instance.isTransitioningScenes = false;
|
Instance.isTransitioningScenes = false;
|
||||||
Instance.playerController.SetCharacterControl(true);
|
Instance.PlayerController.SetCharacterControl(true);
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Are we currently in the middle of a scene transition?
|
/// Are we currently in the middle of a scene transition?
|
||||||
@@ -142,14 +248,6 @@ public bool InSceneTransition()
|
|||||||
return Instance.isTransitioningScenes;
|
return Instance.isTransitioningScenes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get the blackscreen object reference
|
|
||||||
/// </summary>
|
|
||||||
public Image GetBlackScreen()
|
|
||||||
{
|
|
||||||
return Instance.blackScreen;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Storybool Save/Load
|
#region Storybool Save/Load
|
||||||
public void SaveStoryBools(ref StoryboolSaveData data)
|
public void SaveStoryBools(ref StoryboolSaveData data)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ MonoImporter:
|
|||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
executionOrder: -1
|
executionOrder: -500
|
||||||
icon: {instanceID: 0}
|
icon: {instanceID: 0}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
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 System.Collections;
|
||||||
|
using Unity.VisualScripting.Antlr3.Runtime;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using static UnityEngine.GraphicsBuffer;
|
using static UnityEngine.GraphicsBuffer;
|
||||||
|
|
||||||
public class PlayerController : MonoBehaviour
|
public class PlayerController : MonoBehaviour
|
||||||
{
|
{
|
||||||
public GameObject DougBody;
|
public GameObject DougBody;
|
||||||
public Shovel Shovel;
|
|
||||||
|
public Tool[] tools;
|
||||||
|
float toolUseTimestamp = 0;
|
||||||
|
|
||||||
public float walkSpeed;
|
public float walkSpeed;
|
||||||
public float sprintMultiplier = 1.5f;
|
public float sprintMultiplier = 1.5f;
|
||||||
public float gravity = 10;
|
public float gravity = 10;
|
||||||
|
|
||||||
float digTime = 0.9f;
|
|
||||||
float digTimestamp = 0;
|
|
||||||
bool isDigging = false;
|
|
||||||
|
|
||||||
Interactable nearestInteractable;
|
Interactable nearestInteractable;
|
||||||
|
public CameraController cameraController;
|
||||||
private CharacterController characterController;
|
private CharacterController characterController;
|
||||||
private CameraController cameraController;
|
|
||||||
private Vector3 moveDir;
|
private Vector3 moveDir;
|
||||||
private bool hasControl = true; // set this to false if we want to stop reading player inputs
|
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 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
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
groundPlane = new Plane(Vector3.up, -DougBody.transform.position.y);
|
||||||
characterController = GetComponent<CharacterController>();
|
characterController = GetComponent<CharacterController>();
|
||||||
cameraController = GetComponent<CameraController>();
|
cameraController = GetComponent<CameraController>();
|
||||||
|
SwitchTools(GameManager.Instance.PlayerManager.CurrentToolIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
moveDir = Vector3.zero;
|
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 (hasControl)
|
||||||
{
|
{
|
||||||
if (!isDigging)
|
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||||
{
|
{
|
||||||
RotatePlayerTowardMouse();
|
RotatePlayerTowardMouse();
|
||||||
TryInteract();
|
TryInteract();
|
||||||
}
|
}
|
||||||
|
|
||||||
DigDetector();
|
CheckWeaponChange();
|
||||||
ApplyWalk();
|
ApplyWalk();
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: This is just for testing, remove or clean up if used
|
if (canUseTools)
|
||||||
if (Input.GetKeyDown(KeyCode.Q))
|
{
|
||||||
{
|
ToolUseDetector();
|
||||||
cameraController.RotateCam();
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Add actual save feature later, this is just for test
|
|
||||||
if (Input.GetKeyDown(KeyCode.I))
|
|
||||||
{
|
|
||||||
SaveSystem.Save();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckSprint();
|
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>
|
/// <summary>
|
||||||
/// Apply walking inputs to moveDir
|
/// Apply walking inputs to moveDir
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -85,7 +127,7 @@ void ApplyWalk()
|
|||||||
float verticalMovement = 0;
|
float verticalMovement = 0;
|
||||||
float horizontalMovement = 0;
|
float horizontalMovement = 0;
|
||||||
|
|
||||||
if (!isDigging)
|
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||||
{
|
{
|
||||||
verticalMovement = Input.GetAxisRaw("Vertical");
|
verticalMovement = Input.GetAxisRaw("Vertical");
|
||||||
horizontalMovement = Input.GetAxisRaw("Horizontal");
|
horizontalMovement = Input.GetAxisRaw("Horizontal");
|
||||||
@@ -113,10 +155,7 @@ void ApplyGravity()
|
|||||||
else
|
else
|
||||||
moveDir *= walkSpeed;
|
moveDir *= walkSpeed;
|
||||||
|
|
||||||
if (!characterController.isGrounded)
|
moveDir.y += -gravity;
|
||||||
{
|
|
||||||
moveDir.y = -gravity;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -151,24 +190,30 @@ public void WalkInDirection(Vector3 direction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Detect input for digging (will eventually be tool agnostic)
|
/// Detect input for tool use
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void DigDetector()
|
void ToolUseDetector()
|
||||||
{
|
{
|
||||||
if (!isDigging)
|
if (!tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse)
|
||||||
{
|
{
|
||||||
if (Input.GetMouseButtonDown(0))
|
if (Input.GetMouseButtonDown(0))
|
||||||
{
|
{
|
||||||
Shovel.Dig();
|
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].Use();
|
||||||
isDigging = true;
|
tools[GameManager.Instance.PlayerManager.CurrentToolIndex].inUse = true;
|
||||||
digTimestamp = Time.time + digTime; // fuck coroutines fr fr
|
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
|
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()
|
void RotatePlayerTowardMouse()
|
||||||
{
|
{
|
||||||
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
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;
|
Vector3 hitPoint = ray.GetPoint(distance);
|
||||||
targetPosition.y = transform.position.y;
|
|
||||||
|
|
||||||
Vector3 direction = targetPosition - transform.position;
|
DougBody.transform.LookAt(new Vector3(hitPoint.x, DougBody.transform.position.y, hitPoint.z));
|
||||||
Quaternion targetRotation = Quaternion.LookRotation(direction, Vector3.up);
|
|
||||||
|
|
||||||
DougBody.transform.rotation = targetRotation;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,6 +277,14 @@ public void SetCharacterControl(bool hasControl)
|
|||||||
this.hasControl = 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>
|
/// <summary>
|
||||||
/// Gets the character's "hasControl" bool. All input is ignored when false
|
/// Gets the character's "hasControl" bool. All input is ignored when false
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -244,4 +292,63 @@ public bool GetCharacterHasControl()
|
|||||||
{
|
{
|
||||||
return hasControl;
|
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 hasStarted = false;
|
||||||
public bool hasCompleted = false;
|
public bool hasCompleted = false;
|
||||||
|
|
||||||
public string[] askText; // ask the player to complete the task
|
public DialogueLine[] askText; // ask the player to complete the task
|
||||||
public string[] duringText; // what to say to the player when the task is complete
|
public DialogueLine[] 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[] completionText; // what to say to the player upon completion
|
||||||
|
|
||||||
public int questID = 0; // connects the quest to the registry, which gives us conditions
|
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);
|
questBoolMap.Add(1, QID1_List);
|
||||||
#endregion
|
#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;
|
return questBoolMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region Save/Load Quest Data
|
||||||
// Save completed quests to disk
|
// Save completed quests to disk
|
||||||
public void SaveQuestData(ref QuestSaveData data)
|
public void SaveQuestData(ref QuestSaveData data)
|
||||||
{
|
{
|
||||||
@@ -83,6 +114,7 @@ public void LoadQuestData(QuestSaveData data)
|
|||||||
Instance.CompletedQuests = new List<int>();
|
Instance.CompletedQuests = new List<int>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
public class QuestBool
|
public class QuestBool
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ MonoImporter:
|
|||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
executionOrder: -2
|
executionOrder: -501
|
||||||
icon: {instanceID: 0}
|
icon: {instanceID: 0}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|||||||
@@ -7,4 +7,8 @@ public class Storybools
|
|||||||
#region QID1
|
#region QID1
|
||||||
public bool hasHelpedSam = false;
|
public bool hasHelpedSam = false;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region QID3
|
||||||
|
public bool talkedToShopkeep = false;
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ public struct SaveData
|
|||||||
public StoryboolSaveData StoryboolData;
|
public StoryboolSaveData StoryboolData;
|
||||||
public InventorySaveData InventorySaveData;
|
public InventorySaveData InventorySaveData;
|
||||||
public TimeSaveData TimeSaveData;
|
public TimeSaveData TimeSaveData;
|
||||||
|
public PlayerSaveData PlayerSaveData;
|
||||||
|
public SoundSettingSaveData SoundSettingSaveData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string SaveFileName()
|
public static string SaveFileName()
|
||||||
@@ -40,12 +42,27 @@ public static void Save()
|
|||||||
File.WriteAllText(SaveFileName(), JsonUtility.ToJson(_saveData, true));
|
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()
|
private static void HandleSaveData()
|
||||||
{
|
{
|
||||||
GameManager.Instance.SaveStoryBools(ref _saveData.StoryboolData);
|
GameManager.Instance.SaveStoryBools(ref _saveData.StoryboolData);
|
||||||
GameManager.Instance.Inventory.SaveInventory(ref _saveData.InventorySaveData);
|
GameManager.Instance.Inventory.SaveInventory(ref _saveData.InventorySaveData);
|
||||||
GameManager.Instance.TimeManager.SaveTime(ref _saveData.TimeSaveData);
|
GameManager.Instance.TimeManager.SaveTime(ref _saveData.TimeSaveData);
|
||||||
|
GameManager.Instance.PlayerManager.SavePlayerData(ref _saveData.PlayerSaveData);
|
||||||
QuestRegistry.Instance.SaveQuestData(ref _saveData.QuestData);
|
QuestRegistry.Instance.SaveQuestData(ref _saveData.QuestData);
|
||||||
|
GameManager.Instance.SoundSettingManager.SaveSoundSettingsData(ref _saveData.SoundSettingSaveData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Load()
|
public static void Load()
|
||||||
@@ -84,6 +101,8 @@ public static void HandleLoadData()
|
|||||||
GameManager.Instance.LoadStoryBools(_saveData.StoryboolData);
|
GameManager.Instance.LoadStoryBools(_saveData.StoryboolData);
|
||||||
GameManager.Instance.Inventory.LoadInventory(_saveData.InventorySaveData);
|
GameManager.Instance.Inventory.LoadInventory(_saveData.InventorySaveData);
|
||||||
GameManager.Instance.TimeManager.LoadTime(_saveData.TimeSaveData);
|
GameManager.Instance.TimeManager.LoadTime(_saveData.TimeSaveData);
|
||||||
|
GameManager.Instance.PlayerManager.LoadPlayerData(_saveData.PlayerSaveData);
|
||||||
QuestRegistry.Instance.LoadQuestData(_saveData.QuestData);
|
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
|
// Handle room and scene transitions
|
||||||
public class TeleportHandler : MonoBehaviour
|
public class TeleportHandler : MonoBehaviour
|
||||||
{
|
{
|
||||||
Image blackScreenObject;
|
|
||||||
PlayerController playerController;
|
PlayerController playerController;
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
blackScreenObject = GameManager.Instance.GetBlackScreen();
|
|
||||||
playerController = GetComponent<PlayerController>();
|
playerController = GetComponent<PlayerController>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +41,7 @@ IEnumerator EnterRoomCoroutine(RoomDoor door)
|
|||||||
while (fadeTime < fadeDuration)
|
while (fadeTime < fadeDuration)
|
||||||
{
|
{
|
||||||
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
blackScreenColor.a = Mathf.Lerp(0, 1, fadeTime / fadeDuration);
|
||||||
blackScreenObject.color = blackScreenColor;
|
GameManager.Instance.BlackScreen.color = blackScreenColor;
|
||||||
fadeTime += Time.deltaTime;
|
fadeTime += Time.deltaTime;
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
@@ -55,7 +53,7 @@ IEnumerator EnterRoomCoroutine(RoomDoor door)
|
|||||||
while (fadeTime < fadeDuration)
|
while (fadeTime < fadeDuration)
|
||||||
{
|
{
|
||||||
blackScreenColor.a = Mathf.Lerp(1, 0, 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);
|
playerController.WalkInDirection((door.linkedDoor.WalkDirection.position - playerController.transform.position).normalized);
|
||||||
|
|
||||||
fadeTime += Time.deltaTime;
|
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;
|
using UnityEngine;
|
||||||
|
|
||||||
public class Shovel : MonoBehaviour
|
public class Shovel : Tool
|
||||||
{
|
{
|
||||||
|
[Header("Shovel Parameters")]
|
||||||
public Animator shovelAnimator;
|
public Animator shovelAnimator;
|
||||||
|
|
||||||
public void Dig()
|
public override void Use()
|
||||||
{
|
{
|
||||||
shovelAnimator.SetTrigger("Dig");
|
shovelAnimator.SetTrigger("Dig");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void UseAlt()
|
||||||
|
{
|
||||||
|
// no tool
|
||||||
|
}
|
||||||
|
|
||||||
// this only works if this script is sitting on the object with the collider!!
|
// this only works if this script is sitting on the object with the collider!!
|
||||||
private void OnTriggerEnter(Collider other)
|
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:
|
skyOcclusionIntensityMultiplier:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 1
|
m_Value: 1
|
||||||
|
worldOffset:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &-1216621516061285780
|
--- !u!114 &-1216621516061285780
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 3
|
m_ObjectHideFlags: 3
|
||||||
@@ -376,6 +379,9 @@ MonoBehaviour:
|
|||||||
highQualityFiltering:
|
highQualityFiltering:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
|
filter:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
downscale:
|
downscale:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
@@ -462,8 +468,6 @@ MonoBehaviour:
|
|||||||
- {fileID: -6288072647309666549}
|
- {fileID: -6288072647309666549}
|
||||||
- {fileID: 7518938298396184218}
|
- {fileID: 7518938298396184218}
|
||||||
- {fileID: -1410297666881709256}
|
- {fileID: -1410297666881709256}
|
||||||
- {fileID: -7750755424749557576}
|
|
||||||
- {fileID: -5139089513906902183}
|
|
||||||
--- !u!114 &853819529557874667
|
--- !u!114 &853819529557874667
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 3
|
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