Compare commits

...

11 Commits

Author SHA1 Message Date
e1df65bce2 added headshots and enemy's shooting 2026-02-18 00:40:22 +00:00
27f2931ce1 added inventory and stamina system 2026-02-17 15:38:46 +00:00
Dan Foster
8b975163a0 Sealing kester's soul 2026-02-12 22:30:55 +00:00
Dan Foster
13ccde8e96 Moving some things over to the InputData system. 2026-02-12 00:02:53 +00:00
Dan Foster
2abadf0b3e Turning off resident drawerer until we are CPU limited. 2026-02-11 22:59:14 +00:00
Dan Foster
4ec887c93c Swapping input systems and using a class called InputData to store player's input 2026-02-11 22:55:17 +00:00
Dan Foster
22c44647cd Fixing some materials 2026-02-11 22:29:08 +00:00
Dan Foster
bd036cb8fb Swapping to Univeral Render Pipeline and testing out some stylised lighting@ 2026-02-11 22:26:26 +00:00
Dan Foster
f1154113c0 Added some colliders. 2026-02-11 19:50:44 +00:00
Dan Foster
6450534fba Everything else??? 2026-02-11 19:48:19 +00:00
Dan Foster
8b1b276a28 Big scan 2026-02-11 19:47:59 +00:00
154 changed files with 16024 additions and 7846 deletions

6
.vsconfig Normal file
View File

@@ -0,0 +1,6 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.ManagedGame"
]
}

View File

@@ -0,0 +1,798 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-9138390308513581429
MonoBehaviour:
m_ObjectHideFlags: 3
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: 558a8e2b6826cf840aae193990ba9f2e, type: 3}
m_Name: ShadowsMidtonesHighlights
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ShadowsMidtonesHighlights
active: 1
shadows:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
midtones:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
highlights:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
shadowsStart:
m_OverrideState: 1
m_Value: 0
shadowsEnd:
m_OverrideState: 1
m_Value: 0.3
highlightsStart:
m_OverrideState: 1
m_Value: 0.55
highlightsEnd:
m_OverrideState: 1
m_Value: 1
--- !u!114 &-5093229520778900182
MonoBehaviour:
m_ObjectHideFlags: 3
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: 29fa0085f50d5e54f8144f766051a691, type: 3}
m_Name: FilmGrain
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.FilmGrain
active: 1
type:
m_OverrideState: 1
m_Value: 0
intensity:
m_OverrideState: 1
m_Value: 0
response:
m_OverrideState: 1
m_Value: 0.8
texture:
m_OverrideState: 1
m_Value: {fileID: 0}
--- !u!114 &-4521294960856653006
MonoBehaviour:
m_ObjectHideFlags: 3
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: 0b2db86121404754db890f4c8dfe81b2, type: 3}
m_Name: Bloom
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Bloom
active: 1
skipIterations:
m_OverrideState: 1
m_Value: 1
threshold:
m_OverrideState: 1
m_Value: 0.9
intensity:
m_OverrideState: 1
m_Value: 0
scatter:
m_OverrideState: 1
m_Value: 0.7
clamp:
m_OverrideState: 1
m_Value: 65472
tint:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
highQualityFiltering:
m_OverrideState: 1
m_Value: 0
filter:
m_OverrideState: 1
m_Value: 0
downscale:
m_OverrideState: 1
m_Value: 0
maxIterations:
m_OverrideState: 1
m_Value: 6
dirtTexture:
m_OverrideState: 1
m_Value: {fileID: 0}
dimension: 1
dirtIntensity:
m_OverrideState: 1
m_Value: 0
--- !u!114 &-4251159032619590866
MonoBehaviour:
m_ObjectHideFlags: 3
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: 6bd486065ce11414fa40e631affc4900, type: 3}
m_Name: ProbeVolumesOptions
m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.ProbeVolumesOptions
active: 1
normalBias:
m_OverrideState: 1
m_Value: 0.05
viewBias:
m_OverrideState: 1
m_Value: 0.1
scaleBiasWithMinProbeDistance:
m_OverrideState: 1
m_Value: 0
samplingNoise:
m_OverrideState: 1
m_Value: 0.1
animateSamplingNoise:
m_OverrideState: 1
m_Value: 1
leakReductionMode:
m_OverrideState: 1
m_Value: 2
minValidDotProductValue:
m_OverrideState: 1
m_Value: 0.1
occlusionOnlyReflectionNormalization:
m_OverrideState: 1
m_Value: 1
intensityMultiplier:
m_OverrideState: 1
m_Value: 1
skyOcclusionIntensityMultiplier:
m_OverrideState: 1
m_Value: 1
worldOffset:
m_OverrideState: 1
m_Value: {x: 0, y: 0, z: 0}
--- !u!114 &-2449601751533526906
MonoBehaviour:
m_ObjectHideFlags: 3
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: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3}
m_Name: LensDistortion
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.LensDistortion
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
xMultiplier:
m_OverrideState: 1
m_Value: 1
yMultiplier:
m_OverrideState: 1
m_Value: 1
center:
m_OverrideState: 1
m_Value: {x: 0.5, y: 0.5}
scale:
m_OverrideState: 1
m_Value: 1
--- !u!114 &-1290739413702878337
MonoBehaviour:
m_ObjectHideFlags: 3
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: 3eb4b772797da9440885e8bd939e9560, type: 3}
m_Name: ColorCurves
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorCurves
active: 1
master:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
red:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
green:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
blue:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
hueVsHue:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 1
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
hueVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 1
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
satVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 0
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
lumVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 0
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &-1069858583827820031
MonoBehaviour:
m_ObjectHideFlags: 3
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: 97c23e3b12dc18c42a140437e53d3951, type: 3}
m_Name: Tonemapping
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Tonemapping
active: 1
mode:
m_OverrideState: 1
m_Value: 0
neutralHDRRangeReductionMode:
m_OverrideState: 1
m_Value: 2
acesPreset:
m_OverrideState: 1
m_Value: 3
hueShiftAmount:
m_OverrideState: 1
m_Value: 0
detectPaperWhite:
m_OverrideState: 1
m_Value: 0
paperWhite:
m_OverrideState: 1
m_Value: 300
detectBrightnessLimits:
m_OverrideState: 1
m_Value: 1
minNits:
m_OverrideState: 1
m_Value: 0.005
maxNits:
m_OverrideState: 1
m_Value: 1000
--- !u!114 &-904412891646815567
MonoBehaviour:
m_ObjectHideFlags: 3
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: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3}
m_Name: LiftGammaGain
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.LiftGammaGain
active: 1
lift:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
gamma:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
gain:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: d7fd9488000d3734a9e00ee676215985, type: 3}
m_Name: DefaultVolumeProfile
m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.VolumeProfile
components:
- {fileID: 5720897899088706062}
- {fileID: 157805039585820844}
- {fileID: 194758528001664651}
- {fileID: 6636296204168921130}
- {fileID: 5863705632089739114}
- {fileID: -2449601751533526906}
- {fileID: 896700427002735059}
- {fileID: -1069858583827820031}
- {fileID: -9138390308513581429}
- {fileID: -4521294960856653006}
- {fileID: 2274471435090336262}
- {fileID: 8441495705403214197}
- {fileID: -5093229520778900182}
- {fileID: -904412891646815567}
- {fileID: 7334568110661972947}
- {fileID: 4217776667626900556}
- {fileID: -1290739413702878337}
- {fileID: 1783073231936547908}
- {fileID: -4251159032619590866}
--- !u!114 &157805039585820844
MonoBehaviour:
m_ObjectHideFlags: 3
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: 66f335fb1ffd8684294ad653bf1c7564, type: 3}
m_Name: ColorAdjustments
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorAdjustments
active: 1
postExposure:
m_OverrideState: 1
m_Value: 0
contrast:
m_OverrideState: 1
m_Value: 0
colorFilter:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
hueShift:
m_OverrideState: 1
m_Value: 0
saturation:
m_OverrideState: 1
m_Value: 0
--- !u!114 &194758528001664651
MonoBehaviour:
m_ObjectHideFlags: 3
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: ccf1aba9553839d41ae37dd52e9ebcce, type: 3}
m_Name: MotionBlur
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.MotionBlur
active: 1
mode:
m_OverrideState: 1
m_Value: 0
quality:
m_OverrideState: 1
m_Value: 0
intensity:
m_OverrideState: 1
m_Value: 0
clamp:
m_OverrideState: 1
m_Value: 0.05
--- !u!114 &896700427002735059
MonoBehaviour:
m_ObjectHideFlags: 3
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: 06437c1ff663d574d9447842ba0a72e4, type: 3}
m_Name: ScreenSpaceLensFlare
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ScreenSpaceLensFlare
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
tintColor:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
bloomMip:
m_OverrideState: 1
m_Value: 1
firstFlareIntensity:
m_OverrideState: 1
m_Value: 1
secondaryFlareIntensity:
m_OverrideState: 1
m_Value: 1
warpedFlareIntensity:
m_OverrideState: 1
m_Value: 1
warpedFlareScale:
m_OverrideState: 1
m_Value: {x: 1, y: 1}
samples:
m_OverrideState: 1
m_Value: 1
sampleDimmer:
m_OverrideState: 1
m_Value: 0.5
vignetteEffect:
m_OverrideState: 1
m_Value: 1
startingPosition:
m_OverrideState: 1
m_Value: 1.25
scale:
m_OverrideState: 1
m_Value: 1.5
streaksIntensity:
m_OverrideState: 1
m_Value: 0
streaksLength:
m_OverrideState: 1
m_Value: 0.5
streaksOrientation:
m_OverrideState: 1
m_Value: 0
streaksThreshold:
m_OverrideState: 1
m_Value: 0.25
resolution:
m_OverrideState: 1
m_Value: 4
chromaticAbberationIntensity:
m_OverrideState: 1
m_Value: 0.5
--- !u!114 &1783073231936547908
MonoBehaviour:
m_ObjectHideFlags: 3
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: fb60a22f311433c4c962b888d1393f88, type: 3}
m_Name: PaniniProjection
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.PaniniProjection
active: 1
distance:
m_OverrideState: 1
m_Value: 0
cropToFit:
m_OverrideState: 1
m_Value: 1
--- !u!114 &2274471435090336262
MonoBehaviour:
m_ObjectHideFlags: 3
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: 81180773991d8724ab7f2d216912b564, type: 3}
m_Name: ChromaticAberration
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ChromaticAberration
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
--- !u!114 &4217776667626900556
MonoBehaviour:
m_ObjectHideFlags: 3
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: 221518ef91623a7438a71fef23660601, type: 3}
m_Name: WhiteBalance
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.WhiteBalance
active: 1
temperature:
m_OverrideState: 1
m_Value: 0
tint:
m_OverrideState: 1
m_Value: 0
--- !u!114 &5720897899088706062
MonoBehaviour:
m_ObjectHideFlags: 3
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: e021b4c809a781e468c2988c016ebbea, type: 3}
m_Name: ColorLookup
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorLookup
active: 1
texture:
m_OverrideState: 1
m_Value: {fileID: 0}
dimension: 1
contribution:
m_OverrideState: 1
m_Value: 0
--- !u!114 &5863705632089739114
MonoBehaviour:
m_ObjectHideFlags: 3
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: c01700fd266d6914ababb731e09af2eb, type: 3}
m_Name: DepthOfField
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.DepthOfField
active: 1
mode:
m_OverrideState: 1
m_Value: 0
gaussianStart:
m_OverrideState: 1
m_Value: 10
gaussianEnd:
m_OverrideState: 1
m_Value: 30
gaussianMaxRadius:
m_OverrideState: 1
m_Value: 1
highQualitySampling:
m_OverrideState: 1
m_Value: 0
focusDistance:
m_OverrideState: 1
m_Value: 10
aperture:
m_OverrideState: 1
m_Value: 5.6
focalLength:
m_OverrideState: 1
m_Value: 50
bladeCount:
m_OverrideState: 1
m_Value: 5
bladeCurvature:
m_OverrideState: 1
m_Value: 1
bladeRotation:
m_OverrideState: 1
m_Value: 0
--- !u!114 &6636296204168921130
MonoBehaviour:
m_ObjectHideFlags: 3
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: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3}
m_Name: SplitToning
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.SplitToning
active: 1
shadows:
m_OverrideState: 1
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
highlights:
m_OverrideState: 1
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
balance:
m_OverrideState: 1
m_Value: 0
--- !u!114 &7334568110661972947
MonoBehaviour:
m_ObjectHideFlags: 3
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: 899c54efeace73346a0a16faa3afe726, type: 3}
m_Name: Vignette
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Vignette
active: 1
color:
m_OverrideState: 1
m_Value: {r: 0, g: 0, b: 0, a: 1}
center:
m_OverrideState: 1
m_Value: {x: 0.5, y: 0.5}
intensity:
m_OverrideState: 1
m_Value: 0
smoothness:
m_OverrideState: 1
m_Value: 0.2
rounded:
m_OverrideState: 1
m_Value: 0
--- !u!114 &8441495705403214197
MonoBehaviour:
m_ObjectHideFlags: 3
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: cdfbdbb87d3286943a057f7791b43141, type: 3}
m_Name: ChannelMixer
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ChannelMixer
active: 1
redOutRedIn:
m_OverrideState: 1
m_Value: 100
redOutGreenIn:
m_OverrideState: 1
m_Value: 0
redOutBlueIn:
m_OverrideState: 1
m_Value: 0
greenOutRedIn:
m_OverrideState: 1
m_Value: 0
greenOutGreenIn:
m_OverrideState: 1
m_Value: 100
greenOutBlueIn:
m_OverrideState: 1
m_Value: 0
blueOutRedIn:
m_OverrideState: 1
m_Value: 0
blueOutGreenIn:
m_OverrideState: 1
m_Value: 0
blueOutBlueIn:
m_OverrideState: 1
m_Value: 100

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6875bba3681544c439017e0b498f3cc3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

743
Assets/InputConfig.cs Normal file
View File

@@ -0,0 +1,743 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
// version 1.14.2
// from Assets/Settings/InputConfig.inputactions
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;
/// <summary>
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/Settings/InputConfig.inputactions".
/// </summary>
/// <remarks>
/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
/// </remarks>
/// <example>
/// <code>
/// using namespace UnityEngine;
/// using UnityEngine.InputSystem;
///
/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
/// public class Example : MonoBehaviour, MyActions.IPlayerActions
/// {
/// private MyActions_Actions m_Actions; // Source code representation of asset.
/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
///
/// void Awake()
/// {
/// m_Actions = new MyActions_Actions(); // Create asset object.
/// m_Player = m_Actions.Player; // Extract action map object.
/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
/// }
///
/// void OnDestroy()
/// {
/// m_Actions.Dispose(); // Destroy asset object.
/// }
///
/// void OnEnable()
/// {
/// m_Player.Enable(); // Enable all actions within map.
/// }
///
/// void OnDisable()
/// {
/// m_Player.Disable(); // Disable all actions within map.
/// }
///
/// #region Interface implementation of MyActions.IPlayerActions
///
/// // Invoked when "Move" action is either started, performed or canceled.
/// public void OnMove(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnMove: {context.ReadValue&lt;Vector2&gt;()}");
/// }
///
/// // Invoked when "Attack" action is either started, performed or canceled.
/// public void OnAttack(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnAttack: {context.ReadValue&lt;float&gt;()}");
/// }
///
/// #endregion
/// }
/// </code>
/// </example>
public partial class @InputConfig: IInputActionCollection2, IDisposable
{
/// <summary>
/// Provides access to the underlying asset instance.
/// </summary>
public InputActionAsset asset { get; }
/// <summary>
/// Constructs a new instance.
/// </summary>
public @InputConfig()
{
asset = InputActionAsset.FromJson(@"{
""version"": 1,
""name"": ""InputConfig"",
""maps"": [
{
""name"": ""Default"",
""id"": ""0625d9c0-43b5-4745-824b-9fda8ba30fee"",
""actions"": [
{
""name"": ""Camera Horizontal"",
""type"": ""Value"",
""id"": ""c07137df-45a6-4c7f-a7a9-4a0308e41992"",
""expectedControlType"": ""Axis"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
},
{
""name"": ""Camera Vertical"",
""type"": ""Value"",
""id"": ""65ba5ae5-0f08-4c90-85ef-ff497cb253b9"",
""expectedControlType"": ""Axis"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
}
],
""bindings"": [
{
""name"": """",
""id"": ""9ec96503-2099-45d3-aaf2-cf1475edb473"",
""path"": ""<Gamepad>/leftStick/x"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Horizontal"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": ""1D Axis"",
""id"": ""ed76a404-3e05-4d45-a021-05844bc10505"",
""path"": ""1DAxis"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Horizontal"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""negative"",
""id"": ""d655a04f-766a-439d-901d-794696b1ec89"",
""path"": ""<Keyboard>/a"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Horizontal"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""positive"",
""id"": ""b0d947fc-bec7-46a7-9704-afc08a1e2886"",
""path"": ""<Keyboard>/d"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Horizontal"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": """",
""id"": ""ede8a471-011b-444f-aea7-3079794926f1"",
""path"": ""<Gamepad>/leftStick/y"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Vertical"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": ""1D Axis"",
""id"": ""e9f01183-aa1d-4ebf-9799-09aec02d3cf8"",
""path"": ""1DAxis"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Vertical"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""negative"",
""id"": ""908edb1a-3d82-4454-9d8e-2020aafd0714"",
""path"": ""<Keyboard>/s"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Vertical"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""positive"",
""id"": ""34639f79-f10f-4950-96dc-b2a5ab43c4a7"",
""path"": ""<Keyboard>/w"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Camera Vertical"",
""isComposite"": false,
""isPartOfComposite"": true
}
]
},
{
""name"": ""Marketing"",
""id"": ""56f2eb0a-da06-47a3-9123-f39cfe90e6a1"",
""actions"": [
{
""name"": ""CameraFOV"",
""type"": ""Value"",
""id"": ""970c903e-bdb9-42ab-b5e5-0e5019ac0994"",
""expectedControlType"": ""Axis"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
},
{
""name"": ""CameraUpDown"",
""type"": ""Value"",
""id"": ""ad16855f-155a-4c1c-9557-171868403461"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
},
{
""name"": ""CameraRotationX"",
""type"": ""Value"",
""id"": ""f47fc852-b65d-4ae3-8ee4-c4e948103760"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
},
{
""name"": ""CameraRotationY"",
""type"": ""Value"",
""id"": ""54a4cdd3-92f4-4562-bc26-932f1ecf3961"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
}
],
""bindings"": [
{
""name"": ""1D Axis"",
""id"": ""5b23e3c8-fa10-4d03-81ba-247c869d1e57"",
""path"": ""1DAxis"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraFOV"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""negative"",
""id"": ""ebd13f12-54ac-4f07-b24b-8794856068a5"",
""path"": ""<Keyboard>/o"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraFOV"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""positive"",
""id"": ""6e9ad397-b3d9-4b84-ab9c-fc1621b99e13"",
""path"": ""<Keyboard>/p"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraFOV"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": """",
""id"": ""c0c2a08a-f7cc-4b85-bfc0-d645d7b3f48f"",
""path"": ""<Gamepad>/dpad/x"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraFOV"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""8d66cc2f-effa-47c4-8d9c-f1f89c9fbebc"",
""path"": ""<Gamepad>/dpad/y"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraUpDown"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": ""1D Axis"",
""id"": ""77e92290-0b17-41f7-a044-9109ddfb1149"",
""path"": ""1DAxis"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraUpDown"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""negative"",
""id"": ""1797a6a8-20e6-420a-9623-f49123d9c18a"",
""path"": ""<Keyboard>/k"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraUpDown"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""positive"",
""id"": ""77a25d8f-be60-4403-84a5-b32f4199555b"",
""path"": ""<Keyboard>/l"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""CameraUpDown"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": """",
""id"": ""1a68b1f2-634e-47f5-b88c-29be850e1a75"",
""path"": ""<Gamepad>/rightStick/x"",
""interactions"": """",
""processors"": ""Invert"",
""groups"": """",
""action"": ""CameraRotationX"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""222a9167-cf4e-473e-bcd8-173c4084fa81"",
""path"": ""<Gamepad>/rightStick/y"",
""interactions"": """",
""processors"": ""Invert"",
""groups"": """",
""action"": ""CameraRotationY"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
}
],
""controlSchemes"": []
}");
// Default
m_Default = asset.FindActionMap("Default", throwIfNotFound: true);
m_Default_CameraHorizontal = m_Default.FindAction("Camera Horizontal", throwIfNotFound: true);
m_Default_CameraVertical = m_Default.FindAction("Camera Vertical", throwIfNotFound: true);
// Marketing
m_Marketing = asset.FindActionMap("Marketing", throwIfNotFound: true);
m_Marketing_CameraFOV = m_Marketing.FindAction("CameraFOV", throwIfNotFound: true);
m_Marketing_CameraUpDown = m_Marketing.FindAction("CameraUpDown", throwIfNotFound: true);
m_Marketing_CameraRotationX = m_Marketing.FindAction("CameraRotationX", throwIfNotFound: true);
m_Marketing_CameraRotationY = m_Marketing.FindAction("CameraRotationY", throwIfNotFound: true);
}
~@InputConfig()
{
UnityEngine.Debug.Assert(!m_Default.enabled, "This will cause a leak and performance issues, InputConfig.Default.Disable() has not been called.");
UnityEngine.Debug.Assert(!m_Marketing.enabled, "This will cause a leak and performance issues, InputConfig.Marketing.Disable() has not been called.");
}
/// <summary>
/// Destroys this asset and all associated <see cref="InputAction"/> instances.
/// </summary>
public void Dispose()
{
UnityEngine.Object.Destroy(asset);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindingMask" />
public InputBinding? bindingMask
{
get => asset.bindingMask;
set => asset.bindingMask = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.devices" />
public ReadOnlyArray<InputDevice>? devices
{
get => asset.devices;
set => asset.devices = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.controlSchemes" />
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Contains(InputAction)" />
public bool Contains(InputAction action)
{
return asset.Contains(action);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.GetEnumerator()" />
public IEnumerator<InputAction> GetEnumerator()
{
return asset.GetEnumerator();
}
/// <inheritdoc cref="IEnumerable.GetEnumerator()" />
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Enable()" />
public void Enable()
{
asset.Enable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Disable()" />
public void Disable()
{
asset.Disable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindings" />
public IEnumerable<InputBinding> bindings => asset.bindings;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindAction(string, bool)" />
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
{
return asset.FindAction(actionNameOrId, throwIfNotFound);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindBinding(InputBinding, out InputAction)" />
public int FindBinding(InputBinding bindingMask, out InputAction action)
{
return asset.FindBinding(bindingMask, out action);
}
// Default
private readonly InputActionMap m_Default;
private List<IDefaultActions> m_DefaultActionsCallbackInterfaces = new List<IDefaultActions>();
private readonly InputAction m_Default_CameraHorizontal;
private readonly InputAction m_Default_CameraVertical;
/// <summary>
/// Provides access to input actions defined in input action map "Default".
/// </summary>
public struct DefaultActions
{
private @InputConfig m_Wrapper;
/// <summary>
/// Construct a new instance of the input action map wrapper class.
/// </summary>
public DefaultActions(@InputConfig wrapper) { m_Wrapper = wrapper; }
/// <summary>
/// Provides access to the underlying input action "Default/CameraHorizontal".
/// </summary>
public InputAction @CameraHorizontal => m_Wrapper.m_Default_CameraHorizontal;
/// <summary>
/// Provides access to the underlying input action "Default/CameraVertical".
/// </summary>
public InputAction @CameraVertical => m_Wrapper.m_Default_CameraVertical;
/// <summary>
/// Provides access to the underlying input action map instance.
/// </summary>
public InputActionMap Get() { return m_Wrapper.m_Default; }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Enable()" />
public void Enable() { Get().Enable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Disable()" />
public void Disable() { Get().Disable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.enabled" />
public bool enabled => Get().enabled;
/// <summary>
/// Implicitly converts an <see ref="DefaultActions" /> to an <see ref="InputActionMap" /> instance.
/// </summary>
public static implicit operator InputActionMap(DefaultActions set) { return set.Get(); }
/// <summary>
/// Adds <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <param name="instance">Callback instance.</param>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c> or <paramref name="instance"/> have already been added this method does nothing.
/// </remarks>
/// <seealso cref="DefaultActions" />
public void AddCallbacks(IDefaultActions instance)
{
if (instance == null || m_Wrapper.m_DefaultActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_DefaultActionsCallbackInterfaces.Add(instance);
@CameraHorizontal.started += instance.OnCameraHorizontal;
@CameraHorizontal.performed += instance.OnCameraHorizontal;
@CameraHorizontal.canceled += instance.OnCameraHorizontal;
@CameraVertical.started += instance.OnCameraVertical;
@CameraVertical.performed += instance.OnCameraVertical;
@CameraVertical.canceled += instance.OnCameraVertical;
}
/// <summary>
/// Removes <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <remarks>
/// Calling this method when <paramref name="instance" /> have not previously been registered has no side-effects.
/// </remarks>
/// <seealso cref="DefaultActions" />
private void UnregisterCallbacks(IDefaultActions instance)
{
@CameraHorizontal.started -= instance.OnCameraHorizontal;
@CameraHorizontal.performed -= instance.OnCameraHorizontal;
@CameraHorizontal.canceled -= instance.OnCameraHorizontal;
@CameraVertical.started -= instance.OnCameraVertical;
@CameraVertical.performed -= instance.OnCameraVertical;
@CameraVertical.canceled -= instance.OnCameraVertical;
}
/// <summary>
/// Unregisters <param cref="instance" /> and unregisters all input action callbacks via <see cref="DefaultActions.UnregisterCallbacks(IDefaultActions)" />.
/// </summary>
/// <seealso cref="DefaultActions.UnregisterCallbacks(IDefaultActions)" />
public void RemoveCallbacks(IDefaultActions instance)
{
if (m_Wrapper.m_DefaultActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
/// <summary>
/// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via <param cref="instance" />.
/// </summary>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c>, calling this method will only unregister all existing callbacks but not register any new callbacks.
/// </remarks>
/// <seealso cref="DefaultActions.AddCallbacks(IDefaultActions)" />
/// <seealso cref="DefaultActions.RemoveCallbacks(IDefaultActions)" />
/// <seealso cref="DefaultActions.UnregisterCallbacks(IDefaultActions)" />
public void SetCallbacks(IDefaultActions instance)
{
foreach (var item in m_Wrapper.m_DefaultActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_DefaultActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
/// <summary>
/// Provides a new <see cref="DefaultActions" /> instance referencing this action map.
/// </summary>
public DefaultActions @Default => new DefaultActions(this);
// Marketing
private readonly InputActionMap m_Marketing;
private List<IMarketingActions> m_MarketingActionsCallbackInterfaces = new List<IMarketingActions>();
private readonly InputAction m_Marketing_CameraFOV;
private readonly InputAction m_Marketing_CameraUpDown;
private readonly InputAction m_Marketing_CameraRotationX;
private readonly InputAction m_Marketing_CameraRotationY;
/// <summary>
/// Provides access to input actions defined in input action map "Marketing".
/// </summary>
public struct MarketingActions
{
private @InputConfig m_Wrapper;
/// <summary>
/// Construct a new instance of the input action map wrapper class.
/// </summary>
public MarketingActions(@InputConfig wrapper) { m_Wrapper = wrapper; }
/// <summary>
/// Provides access to the underlying input action "Marketing/CameraFOV".
/// </summary>
public InputAction @CameraFOV => m_Wrapper.m_Marketing_CameraFOV;
/// <summary>
/// Provides access to the underlying input action "Marketing/CameraUpDown".
/// </summary>
public InputAction @CameraUpDown => m_Wrapper.m_Marketing_CameraUpDown;
/// <summary>
/// Provides access to the underlying input action "Marketing/CameraRotationX".
/// </summary>
public InputAction @CameraRotationX => m_Wrapper.m_Marketing_CameraRotationX;
/// <summary>
/// Provides access to the underlying input action "Marketing/CameraRotationY".
/// </summary>
public InputAction @CameraRotationY => m_Wrapper.m_Marketing_CameraRotationY;
/// <summary>
/// Provides access to the underlying input action map instance.
/// </summary>
public InputActionMap Get() { return m_Wrapper.m_Marketing; }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Enable()" />
public void Enable() { Get().Enable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Disable()" />
public void Disable() { Get().Disable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.enabled" />
public bool enabled => Get().enabled;
/// <summary>
/// Implicitly converts an <see ref="MarketingActions" /> to an <see ref="InputActionMap" /> instance.
/// </summary>
public static implicit operator InputActionMap(MarketingActions set) { return set.Get(); }
/// <summary>
/// Adds <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <param name="instance">Callback instance.</param>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c> or <paramref name="instance"/> have already been added this method does nothing.
/// </remarks>
/// <seealso cref="MarketingActions" />
public void AddCallbacks(IMarketingActions instance)
{
if (instance == null || m_Wrapper.m_MarketingActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_MarketingActionsCallbackInterfaces.Add(instance);
@CameraFOV.started += instance.OnCameraFOV;
@CameraFOV.performed += instance.OnCameraFOV;
@CameraFOV.canceled += instance.OnCameraFOV;
@CameraUpDown.started += instance.OnCameraUpDown;
@CameraUpDown.performed += instance.OnCameraUpDown;
@CameraUpDown.canceled += instance.OnCameraUpDown;
@CameraRotationX.started += instance.OnCameraRotationX;
@CameraRotationX.performed += instance.OnCameraRotationX;
@CameraRotationX.canceled += instance.OnCameraRotationX;
@CameraRotationY.started += instance.OnCameraRotationY;
@CameraRotationY.performed += instance.OnCameraRotationY;
@CameraRotationY.canceled += instance.OnCameraRotationY;
}
/// <summary>
/// Removes <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <remarks>
/// Calling this method when <paramref name="instance" /> have not previously been registered has no side-effects.
/// </remarks>
/// <seealso cref="MarketingActions" />
private void UnregisterCallbacks(IMarketingActions instance)
{
@CameraFOV.started -= instance.OnCameraFOV;
@CameraFOV.performed -= instance.OnCameraFOV;
@CameraFOV.canceled -= instance.OnCameraFOV;
@CameraUpDown.started -= instance.OnCameraUpDown;
@CameraUpDown.performed -= instance.OnCameraUpDown;
@CameraUpDown.canceled -= instance.OnCameraUpDown;
@CameraRotationX.started -= instance.OnCameraRotationX;
@CameraRotationX.performed -= instance.OnCameraRotationX;
@CameraRotationX.canceled -= instance.OnCameraRotationX;
@CameraRotationY.started -= instance.OnCameraRotationY;
@CameraRotationY.performed -= instance.OnCameraRotationY;
@CameraRotationY.canceled -= instance.OnCameraRotationY;
}
/// <summary>
/// Unregisters <param cref="instance" /> and unregisters all input action callbacks via <see cref="MarketingActions.UnregisterCallbacks(IMarketingActions)" />.
/// </summary>
/// <seealso cref="MarketingActions.UnregisterCallbacks(IMarketingActions)" />
public void RemoveCallbacks(IMarketingActions instance)
{
if (m_Wrapper.m_MarketingActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
/// <summary>
/// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via <param cref="instance" />.
/// </summary>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c>, calling this method will only unregister all existing callbacks but not register any new callbacks.
/// </remarks>
/// <seealso cref="MarketingActions.AddCallbacks(IMarketingActions)" />
/// <seealso cref="MarketingActions.RemoveCallbacks(IMarketingActions)" />
/// <seealso cref="MarketingActions.UnregisterCallbacks(IMarketingActions)" />
public void SetCallbacks(IMarketingActions instance)
{
foreach (var item in m_Wrapper.m_MarketingActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_MarketingActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
/// <summary>
/// Provides a new <see cref="MarketingActions" /> instance referencing this action map.
/// </summary>
public MarketingActions @Marketing => new MarketingActions(this);
/// <summary>
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Default" which allows adding and removing callbacks.
/// </summary>
/// <seealso cref="DefaultActions.AddCallbacks(IDefaultActions)" />
/// <seealso cref="DefaultActions.RemoveCallbacks(IDefaultActions)" />
public interface IDefaultActions
{
/// <summary>
/// Method invoked when associated input action "Camera Horizontal" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraHorizontal(InputAction.CallbackContext context);
/// <summary>
/// Method invoked when associated input action "Camera Vertical" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraVertical(InputAction.CallbackContext context);
}
/// <summary>
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Marketing" which allows adding and removing callbacks.
/// </summary>
/// <seealso cref="MarketingActions.AddCallbacks(IMarketingActions)" />
/// <seealso cref="MarketingActions.RemoveCallbacks(IMarketingActions)" />
public interface IMarketingActions
{
/// <summary>
/// Method invoked when associated input action "CameraFOV" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraFOV(InputAction.CallbackContext context);
/// <summary>
/// Method invoked when associated input action "CameraUpDown" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraUpDown(InputAction.CallbackContext context);
/// <summary>
/// Method invoked when associated input action "CameraRotationX" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraRotationX(InputAction.CallbackContext context);
/// <summary>
/// Method invoked when associated input action "CameraRotationY" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnCameraRotationY(InputAction.CallbackContext context);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 24f8ebac435e83c4c9a5f76647590d28

View File

@@ -0,0 +1,275 @@
{
"version": 1,
"name": "InputConfig",
"maps": [
{
"name": "Default",
"id": "0625d9c0-43b5-4745-824b-9fda8ba30fee",
"actions": [
{
"name": "Camera Horizontal",
"type": "Value",
"id": "c07137df-45a6-4c7f-a7a9-4a0308e41992",
"expectedControlType": "Axis",
"processors": "",
"interactions": "",
"initialStateCheck": true
},
{
"name": "Camera Vertical",
"type": "Value",
"id": "65ba5ae5-0f08-4c90-85ef-ff497cb253b9",
"expectedControlType": "Axis",
"processors": "",
"interactions": "",
"initialStateCheck": true
}
],
"bindings": [
{
"name": "",
"id": "9ec96503-2099-45d3-aaf2-cf1475edb473",
"path": "<Gamepad>/leftStick/x",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Horizontal",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "1D Axis",
"id": "ed76a404-3e05-4d45-a021-05844bc10505",
"path": "1DAxis",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Horizontal",
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "negative",
"id": "d655a04f-766a-439d-901d-794696b1ec89",
"path": "<Keyboard>/a",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Horizontal",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "positive",
"id": "b0d947fc-bec7-46a7-9704-afc08a1e2886",
"path": "<Keyboard>/d",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Horizontal",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "",
"id": "ede8a471-011b-444f-aea7-3079794926f1",
"path": "<Gamepad>/leftStick/y",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Vertical",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "1D Axis",
"id": "e9f01183-aa1d-4ebf-9799-09aec02d3cf8",
"path": "1DAxis",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Vertical",
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "negative",
"id": "908edb1a-3d82-4454-9d8e-2020aafd0714",
"path": "<Keyboard>/s",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Vertical",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "positive",
"id": "34639f79-f10f-4950-96dc-b2a5ab43c4a7",
"path": "<Keyboard>/w",
"interactions": "",
"processors": "",
"groups": "",
"action": "Camera Vertical",
"isComposite": false,
"isPartOfComposite": true
}
]
},
{
"name": "Marketing",
"id": "56f2eb0a-da06-47a3-9123-f39cfe90e6a1",
"actions": [
{
"name": "CameraFOV",
"type": "Value",
"id": "970c903e-bdb9-42ab-b5e5-0e5019ac0994",
"expectedControlType": "Axis",
"processors": "",
"interactions": "",
"initialStateCheck": true
},
{
"name": "CameraUpDown",
"type": "Value",
"id": "ad16855f-155a-4c1c-9557-171868403461",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": true
},
{
"name": "CameraRotationX",
"type": "Value",
"id": "f47fc852-b65d-4ae3-8ee4-c4e948103760",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": true
},
{
"name": "CameraRotationY",
"type": "Value",
"id": "54a4cdd3-92f4-4562-bc26-932f1ecf3961",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": true
}
],
"bindings": [
{
"name": "1D Axis",
"id": "5b23e3c8-fa10-4d03-81ba-247c869d1e57",
"path": "1DAxis",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraFOV",
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "negative",
"id": "ebd13f12-54ac-4f07-b24b-8794856068a5",
"path": "<Keyboard>/o",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraFOV",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "positive",
"id": "6e9ad397-b3d9-4b84-ab9c-fc1621b99e13",
"path": "<Keyboard>/p",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraFOV",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "",
"id": "c0c2a08a-f7cc-4b85-bfc0-d645d7b3f48f",
"path": "<Gamepad>/dpad/x",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraFOV",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "8d66cc2f-effa-47c4-8d9c-f1f89c9fbebc",
"path": "<Gamepad>/dpad/y",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraUpDown",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "1D Axis",
"id": "77e92290-0b17-41f7-a044-9109ddfb1149",
"path": "1DAxis",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraUpDown",
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "negative",
"id": "1797a6a8-20e6-420a-9623-f49123d9c18a",
"path": "<Keyboard>/k",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraUpDown",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "positive",
"id": "77a25d8f-be60-4403-84a5-b32f4199555b",
"path": "<Keyboard>/l",
"interactions": "",
"processors": "",
"groups": "",
"action": "CameraUpDown",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "",
"id": "1a68b1f2-634e-47f5-b88c-29be850e1a75",
"path": "<Gamepad>/rightStick/x",
"interactions": "",
"processors": "Invert",
"groups": "",
"action": "CameraRotationX",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "222a9167-cf4e-473e-bcd8-173c4084fa81",
"path": "<Gamepad>/rightStick/y",
"interactions": "",
"processors": "Invert",
"groups": "",
"action": "CameraRotationY",
"isComposite": false,
"isPartOfComposite": false
}
]
}
],
"controlSchemes": []
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0c7b9246b90bb9c4ab7519d0cb909720
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Items.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 94c8f7f884ccd0e47a66f83dc8fe8b0e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,20 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: b549159f64e1b164082e2e4ae4d28ac1, type: 3}
m_Name: BhopBoots_Item
m_EditorClassIdentifier: Assembly-CSharp::ItemDefinition
itemName: Bunny Hop Boots
icon: {fileID: 0}
type: 0
weaponPrefab: {fileID: 0}
isEquippable: 1
description: Illegal footwear. Gives 200 stamina while worn. Do not wear near cliffs.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e09f7b05a155ba8449a0f0d8412ebe9d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: b549159f64e1b164082e2e4ae4d28ac1, type: 3}
m_Name: GunSplat_Item
m_EditorClassIdentifier: Assembly-CSharp::ItemDefinition
itemName: Gun Splat
icon: {fileID: 0}
type: 2
weaponPrefab: {fileID: 8985654986098955209, guid: aa9cce2c129fa1a41bf5a539b136f7a6, type: 3}
description: A janky lidar-scanned sidearm. Shoots first, looks weird always.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2b5a641a42945604c9ffa88754a9f6d1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

141
Assets/Materials/Floor.mat Normal file
View File

@@ -0,0 +1,141 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-2139459358593467739
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: Floor
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, 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
- _GlossinessSource: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SmoothnessTextureChannel: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.3647059, g: 0.34901962, b: 0.31764707, a: 1}
- _Color: {r: 0.36470586, g: 0.3490196, b: 0.31764704, 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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7774fb860d668e74595c439baaced081
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,139 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7195067082122230545
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: Player Material
m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, 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
- _BlendOp: 0
- _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
- _SampleGI: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 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}
- _Color: {r: 1, g: 1, b: 1, 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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 934901a6cc251ea4cb28620f9a14909e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

144
Assets/Materials/Skybox.mat Normal file
View File

@@ -0,0 +1,144 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3811865396803065012
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: Skybox
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _SUNDISK_SIMPLE
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
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
- _AtmosphereThickness: 0.55
- _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
- _Exposure: 1.08
- _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
- _SunDisk: 1
- _SunSize: 0.39
- _SunSizeConvergence: 5
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _GroundColor: {r: 0.15294118, g: 0.30588236, b: 0.9921569, a: 1}
- _SkyTint: {r: 0.15294118, g: 0.30588236, b: 0.9921569, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a72ba91539afe3e4f9676bdfb666801f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,7 +12,7 @@ ScriptedImporter:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 1
animationMethod: 2
animationMethod: 0
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729

Binary file not shown.

View File

@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 220b65233f75f478bad0dc3b0ad499be
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
editorImportSettings:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 1
animationMethod: 0
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729
defaultMagFilterMode: 9729
anisotropicFilterLevel: 1
instantiationSettings:
mask: -1
layer: 0
skinUpdateWhenOffscreen: 1
lightIntensityFactor: 1
sceneObjectCreation: 2
assetDependencies: []
reportItems:
- type: 2
code: 19
messages: []
- type: 2
code: 19
messages: []

Binary file not shown.

View File

@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 24bb6e32322f940e59304941b7849582
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
editorImportSettings:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 1
animationMethod: 2
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729
defaultMagFilterMode: 9729
anisotropicFilterLevel: 1
instantiationSettings:
mask: -1
layer: 0
skinUpdateWhenOffscreen: 1
lightIntensityFactor: 1
sceneObjectCreation: 2
assetDependencies: []
reportItems:
- type: 2
code: 19
messages: []
- type: 2
code: 19
messages: []

Binary file not shown.

View File

@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: d26387bf4a33f4f03b916907f6b50828
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
editorImportSettings:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 1
animationMethod: 2
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729
defaultMagFilterMode: 9729
anisotropicFilterLevel: 1
instantiationSettings:
mask: -1
layer: 0
skinUpdateWhenOffscreen: 1
lightIntensityFactor: 1
sceneObjectCreation: 2
assetDependencies: []
reportItems:
- type: 2
code: 19
messages: []
- type: 2
code: 19
messages: []

View File

@@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: _ 1
m_Shader: {fileID: -6465566751694194690, guid: c87047c884d9843f5b0f4cce282aa760, type: 3}
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -16,18 +16,79 @@ Material:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -6415030177954417433, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
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}
- _ClearCoatMap:
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: -6415030177954417433, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -6415030177954417433, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- clearcoatNormalTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- clearcoatRoughnessTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- clearcoatTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- emissiveTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -44,8 +105,31 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- specularGlossinessTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- transmissionTexture:
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 0
@@ -57,14 +141,55 @@ Material:
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BlendOp: 0
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 0
- _CullMode: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0.5
- _GlossinessSource: 0
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _SampleGI: 0
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SmoothnessTextureChannel: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
- clearcoatFactor: 0
- clearcoatNormalTexture_Scale: 0
- clearcoatNormalTexture_texCoord: 0
- clearcoatRoughnessFactor: 0
- clearcoatRoughnessTexture_texCoord: 0
- clearcoatTexture_texCoord: 0
- emissiveExposureWeight: 0
- emissiveTexture_texCoord: 0
- glossinessFactor: 1
- metallicFactor: 0
- metallicRoughnessTexture_texCoord: 0
- normalTexture_scale: 1
@@ -72,14 +197,25 @@ Material:
- occlusionTexture_strength: 1
- occlusionTexture_texCoord: 0
- roughnessFactor: 1
- specularGlossinessTexture_texCoord: 0
- transmissionFactor: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- clearcoatNormalTextureRotation: {r: 0, g: 0, b: 0, a: 0}
- clearcoatRoughnessTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- clearcoatTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- emissiveFactor: {r: 0, g: 0, b: 0, a: 1}
- emissiveTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- metallicRoughnessTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- normalTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- occlusionTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- specularFactor: {r: 1, g: 1, b: 1, a: 1}
- specularGlossinessTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4108730641724470590
@@ -95,3 +231,16 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0
--- !u!114 &7316401691956898335
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: -1

View File

@@ -1,5 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-231608885353986799
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
@@ -8,22 +21,43 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: _ 2
m_Shader: {fileID: -6465566751694194690, guid: c87047c884d9843f5b0f4cce282aa760, type: 3}
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -2579531893600430538, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
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}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -2579531893600430538, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -2579531893600430538, guid: 9e848a421785b4212abcb7cf4ae082f3, type: 3}
m_Scale: {x: 1, y: 1}
@@ -44,8 +78,23 @@ Material:
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 0
@@ -57,11 +106,32 @@ Material:
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CastShadows: 1
- _Cull: 2
- _CullMode: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _DstBlendAlpha: 0
- _GlossinessSource: 0
- _Mode: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _XRMotionVectorsPass: 1
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
- emissiveTexture_texCoord: 0
@@ -73,6 +143,10 @@ Material:
- occlusionTexture_texCoord: 0
- roughnessFactor: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- emissiveFactor: {r: 0, g: 0, b: 0, a: 1}

View File

@@ -1,5 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-6294594540876436397
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
@@ -8,22 +21,43 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: _
m_Shader: {fileID: -6465566751694194690, guid: c87047c884d9843f5b0f4cce282aa760, type: 3}
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: 3c8a5d44028bd40d3abe5e22cafcb901, type: 3}
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}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -5390149515647955136, guid: 3c8a5d44028bd40d3abe5e22cafcb901, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 3c8a5d44028bd40d3abe5e22cafcb901, type: 3}
m_Scale: {x: 1, y: 1}
@@ -44,8 +78,23 @@ Material:
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 0
@@ -57,11 +106,32 @@ Material:
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CastShadows: 1
- _Cull: 2
- _CullMode: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _DstBlendAlpha: 0
- _GlossinessSource: 0
- _Mode: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _XRMotionVectorsPass: 1
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
- emissiveTexture_texCoord: 0
@@ -73,6 +143,10 @@ Material:
- occlusionTexture_texCoord: 0
- roughnessFactor: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
- emissiveFactor: {r: 0, g: 0, b: 0, a: 1}

View File

@@ -0,0 +1,170 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5751280290511241764
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: kester material
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:
MotionVector: User
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: 24bb6e32322f940e59304941b7849582, type: 3}
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: -5390149515647955136, guid: 24bb6e32322f940e59304941b7849582, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 24bb6e32322f940e59304941b7849582, type: 3}
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 2
- _BUILTIN_DstBlend: 0
- _BUILTIN_QueueControl: 1
- _BUILTIN_QueueOffset: 0
- _BUILTIN_SrcBlend: 1
- _BUILTIN_Surface: 0
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 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.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
- alphaCutoff: 0
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4274034798704039720
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e0d4326c93e0c4cf5b303e07acae944c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,44 @@
%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: material_0 1
m_Shader: {fileID: 4800000, guid: 4340a3cf1cde6416d957808a6ac79eed, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 220b65233f75f478bad0dc3b0ad499be, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _CullMode: 0
- _DstBlend: 0
- _Mode: 0
- _SrcBlend: 1
- _ZWrite: 1
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
m_Colors:
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c696c86258f9b4d4c9bef77587f53838
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,115 @@
%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: material_0 2
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
m_LightmapFlags: 2
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: -5390149515647955136, guid: d26387bf4a33f4f03b916907f6b50828, type: 3}
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}
- _EmissionMap:
m_Texture: {fileID: 2800000, guid: 77b3793fe644abf47ba2b0bac208893c, type: 2}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -5390149515647955136, guid: d26387bf4a33f4f03b916907f6b50828, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: d26387bf4a33f4f03b916907f6b50828, type: 3}
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
- _Cull: 2
- _CullMode: 0
- _Cutoff: 0.5
- _DstBlend: 0
- _DstBlendAlpha: 0
- _GlossinessSource: 0
- _Mode: 0
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _XRMotionVectorsPass: 1
- _ZWrite: 1
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0.027122641, g: 0.027122641, b: 0.027122641, a: 1}
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6554696353395211120
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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 89dc982f32a73451180a9bb51b10113e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,44 @@
%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: material_0 3
m_Shader: {fileID: 4800000, guid: 4340a3cf1cde6416d957808a6ac79eed, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: e441a5f7b65db4968913329b4cdfbf75, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _CullMode: 0
- _DstBlend: 0
- _Mode: 0
- _SrcBlend: 1
- _ZWrite: 1
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
m_Colors:
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 632d820e0796d4d93b1e78324061da87
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,169 @@
%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: material_0 4
m_Shader: {fileID: 4800000, guid: 8516d7a69675844a7a0b7095af7c46af, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- _FLIPBOOKBLENDING_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: 616f875523ad0435495d3759227bb4ea, type: 3}
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}
- _ClearCoatMap:
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: -5390149515647955136, guid: 616f875523ad0435495d3759227bb4ea, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 616f875523ad0435495d3759227bb4ea, type: 3}
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
- _ClearCoat: 0
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 1
- _ColorMode: 0
- _Cull: 0
- _CullMode: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DistortionBlend: 0.5
- _DistortionEnabled: 0
- _DistortionStrength: 1
- _DistortionStrengthScaled: 0.1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FlipbookBlending: 0
- _FlipbookMode: 0
- _Glossiness: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _SampleGI: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SmoothnessTextureChannel: 0
- _SoftParticlesEnabled: 0
- _SoftParticlesFarFadeDistance: 1
- _SoftParticlesNearFadeDistance: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
- alphaCutoff: 0.5
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- _CameraFadeParams: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6797264467697834213
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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 101885c0ec15ff2459f3a605415e3bf0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,141 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7118544961410700107
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!114 &-4789660597900939725
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: material_0 5
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, 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:
MotionVector: User
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: 1e096925873fc492b854ee214231ab86, type: 3}
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}
- _EmissionMap:
m_Texture: {fileID: -5390149515647955136, guid: 1e096925873fc492b854ee214231ab86, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -5390149515647955136, guid: 1e096925873fc492b854ee214231ab86, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 1e096925873fc492b854ee214231ab86, type: 3}
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 2
- _BUILTIN_DstBlend: 0
- _BUILTIN_QueueControl: 1
- _BUILTIN_QueueOffset: 0
- _BUILTIN_SrcBlend: 1
- _BUILTIN_Surface: 0
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CastShadows: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _DstBlendAlpha: 0
- _GlossinessSource: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _XRMotionVectorsPass: 1
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 95967e1a09ea00f4393b45ba1a587552
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,141 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-2790320766499721915
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: material_0 6
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, 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:
MotionVector: User
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: fa9ce4c3e422d4dfb8c7546b16bc9f33, type: 3}
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}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -5390149515647955136, guid: fa9ce4c3e422d4dfb8c7546b16bc9f33, type: 3}
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: fa9ce4c3e422d4dfb8c7546b16bc9f33, type: 3}
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
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 2
- _BUILTIN_DstBlend: 0
- _BUILTIN_QueueControl: 1
- _BUILTIN_QueueOffset: 0
- _BUILTIN_SrcBlend: 1
- _BUILTIN_Surface: 0
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CastShadows: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _DstBlendAlpha: 0
- _GlossinessSource: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _XRMotionVectorsPass: 1
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6535246504694420584
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d6bce22c07b5c7b46916e12720cafc8e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,150 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-1844898031345080875
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: material_0 7
m_Shader: {fileID: 4800000, guid: 8516d7a69675844a7a0b7095af7c46af, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- _FLIPBOOKBLENDING_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
MotionVector: User
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: -5390149515647955136, guid: 9c79aa2b23a6c4c1d8eee34e17cbc0dc, type: 3}
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}
- _EmissionMap:
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}
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 9c79aa2b23a6c4c1d8eee34e17cbc0dc, type: 3}
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:
- _AlphaClip: 0
- _AlphaToMask: 0
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 2
- _BUILTIN_DstBlend: 0
- _BUILTIN_QueueControl: 1
- _BUILTIN_QueueOffset: 0
- _BUILTIN_SrcBlend: 1
- _BUILTIN_Surface: 0
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _BlendOp: 0
- _BumpScale: 1
- _CameraFadingEnabled: 0
- _CameraFarFadeDistance: 2
- _CameraNearFadeDistance: 1
- _CastShadows: 1
- _ColorMode: 0
- _Cull: 2
- _Cutoff: 0.5
- _DistortionBlend: 0.5
- _DistortionEnabled: 0
- _DistortionStrength: 1
- _DistortionStrengthScaled: 0.1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _FlipbookBlending: 0
- _FlipbookMode: 0
- _Glossiness: 0
- _Mode: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SoftParticlesEnabled: 0
- _SoftParticlesFarFadeDistance: 1
- _SoftParticlesNearFadeDistance: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0
- baseColorTexture_texCoord: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
- _CameraFadeParams: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &9184731056928715670
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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 99a8130dca759d14e85dc7377b988989
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,105 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-809172725653918854
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: material_0 8
m_Shader: {fileID: -6465566751694194690, guid: c87047c884d9843f5b0f4cce282aa760, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: 2000
stringTagMap:
MotionVector: User
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- baseColorTexture:
m_Texture: {fileID: -5390149515647955136, guid: 24bb6e32322f940e59304941b7849582, type: 3}
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:
- _AlphaClip: 0
- _AlphaToMask: 0
- _BUILTIN_AlphaClip: 0
- _BUILTIN_Blend: 0
- _BUILTIN_CullMode: 2
- _BUILTIN_DstBlend: 0
- _BUILTIN_QueueControl: 1
- _BUILTIN_QueueOffset: 0
- _BUILTIN_SrcBlend: 1
- _BUILTIN_Surface: 0
- _BUILTIN_ZTest: 4
- _BUILTIN_ZWrite: 1
- _BUILTIN_ZWriteControl: 0
- _Blend: 0
- _CastShadows: 1
- _Cull: 2
- _DstBlend: 0
- _DstBlendAlpha: 0
- _QueueControl: 1
- _QueueOffset: 0
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _ZTest: 4
- _ZWrite: 1
- _ZWriteControl: 0
- alphaCutoff: 0
- baseColorTexture_texCoord: 0
m_Colors:
- baseColorFactor: {r: 1, g: 1, b: 1, a: 1}
- baseColorTexture_Rotation: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6756475372883650933
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: 639247ca83abc874e893eb93af2b5e44, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.Rendering.BuiltIn.AssetVersion
version: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fc9859f95c831495989cf1b45fa823b1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 616f875523ad0435495d3759227bb4ea
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
editorImportSettings:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 1
animationMethod: 0
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729
defaultMagFilterMode: 9729
anisotropicFilterLevel: 46
instantiationSettings:
mask: -1
layer: 0
skinUpdateWhenOffscreen: 1
lightIntensityFactor: 1
sceneObjectCreation: 2
assetDependencies: []
reportItems:
- type: 2
code: 19
messages: []
- type: 2
code: 19
messages: []

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,28 @@
fileFormatVersion: 2
guid: 9e848a421785b4212abcb7cf4ae082f3
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
editorImportSettings:
generateSecondaryUVSet: 0
importSettings:
nodeNameMethod: 0
animationMethod: 0
generateMipMaps: 1
texturesReadable: 0
defaultMinFilterMode: 9729
defaultMagFilterMode: 9729
anisotropicFilterLevel: 1
instantiationSettings:
mask: -1
layer: 0
skinUpdateWhenOffscreen: 1
lightIntensityFactor: 1
sceneObjectCreation: 2
assetDependencies: []
reportItems: []

Binary file not shown.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c47b29375f392f14385951a3f2e89a56
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,161 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &976112319745431805
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4275644691617312389}
- component: {fileID: 5061255202814967808}
- component: {fileID: 1990460956270860801}
m_Layer: 0
m_Name: Visual
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4275644691617312389
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 976112319745431805}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.4, y: 0.2, z: 0.7}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9221872812818225285}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5061255202814967808
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 976112319745431805}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1990460956270860801
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 976112319745431805}
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: 0}
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: 1
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!1 &5967924902892500278
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9221872812818225285}
- component: {fileID: 8317664859568879488}
- component: {fileID: 6478899211359510473}
m_Layer: 0
m_Name: BhopBoots_Pickup
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9221872812818225285
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5967924902892500278}
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: 4275644691617312389}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8317664859568879488
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5967924902892500278}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 95709fa8fd6c75045b1ef8e4f505c152, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PickupItem
definition: {fileID: 11400000, guid: e09f7b05a155ba8449a0f0d8412ebe9d, type: 2}
itemName: Item
itemIcon: {fileID: 0}
spinSpeed: 140
bobHeight: 0.2
bobSpeed: 2.8
pickupRadius: 2.2
pickupKey: 101
pickupParticlesPrefab: {fileID: 0}
pickupSound: {fileID: 0}
--- !u!114 &6478899211359510473
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5967924902892500278}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ce88c8ee6fd8a0469215a541f72f835, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::StaminaBoostPickup
newMaxStamina: 200

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9ead08e094f7bc74c86e58083dfcdf75
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -9,9 +9,13 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8110894233409421727}
- component: {fileID: 9204028306768623378}
- component: {fileID: 126029702024624554}
- component: {fileID: 3002660132190180648}
- component: {fileID: 4383523072808109851}
- component: {fileID: 3609363995277177833}
- component: {fileID: 5383724707706325514}
- component: {fileID: 7449172431108916039}
m_Layer: 0
m_Name: Player
m_TagString: Untagged
@@ -35,6 +39,18 @@ Transform:
- {fileID: 4867483367381507360}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &9204028306768623378
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6882903375964528458}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: deeb0d245b10479488cdc39099cb9bab, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::InputHelper
--- !u!143 &126029702024624554
CharacterController:
m_ObjectHideFlags: 0
@@ -53,8 +69,8 @@ CharacterController:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 2
m_Radius: 0.5
m_Height: 1.75
m_Radius: 0.24
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08
@@ -75,10 +91,10 @@ MonoBehaviour:
walkSpeed: 5
runSpeed: 10
jumpHeight: 2
gravity: -9.81
gravity: -19.62
mouseSensitivity: 2
maxLookAngle: 90
playerCamera: {fileID: 0}
playerCamera: {fileID: 2075247097621853228}
--- !u!114 &4383523072808109851
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -94,37 +110,76 @@ MonoBehaviour:
crosshairColor: {r: 0.021564394, g: 0.9811321, b: 0, a: 1}
crosshairSize: 10
crosshairThickness: 2
--- !u!1 &8003886823554712882
GameObject:
--- !u!33 &3609363995277177833
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1479447108976249471}
m_Layer: 0
m_Name: Gun
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1479447108976249471
Transform:
m_GameObject: {fileID: 6882903375964528458}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &5383724707706325514
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8003886823554712882}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.3, y: -0.2, z: 0.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4867483367381507360}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_GameObject: {fileID: 6882903375964528458}
m_Enabled: 1
m_CastShadows: 0
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: 934901a6cc251ea4cb28620f9a14909e, 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!114 &7449172431108916039
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6882903375964528458}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9e99d5848b80d246b6540ad0aabf4d8, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Player
health: 100
--- !u!1 &8543759782269834926
GameObject:
m_ObjectHideFlags: 0
@@ -136,6 +191,8 @@ GameObject:
- component: {fileID: 4867483367381507360}
- component: {fileID: 2075247097621853228}
- component: {fileID: 6877818284364034329}
- component: {fileID: 8719656586330480197}
- component: {fileID: 8595194069415729003}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
@@ -152,11 +209,11 @@ Transform:
m_GameObject: {fileID: 8543759782269834926}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1.6, z: 0}
m_LocalPosition: {x: 0, y: 0.658, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1479447108976249471}
- {fileID: 4354687167556866568}
m_Father: {fileID: 8110894233409421727}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &2075247097621853228
@@ -190,8 +247,8 @@ Camera:
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
near clip plane: 0.1
far clip plane: 3394
field of view: 60
orthographic: 0
orthographic size: 5
@@ -218,3 +275,168 @@ AudioListener:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8543759782269834926}
m_Enabled: 1
--- !u!114 &8719656586330480197
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8543759782269834926}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9ad5c2eb6d6ecad47af3a531cd239ec5, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::CameraShake
--- !u!114 &8595194069415729003
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8543759782269834926}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!1001 &1420362106600511514
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 4867483367381507360}
m_Modifications:
- target: {fileID: -8098169881513260187, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_Name
value: Gun Splat
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalScale.x
value: 1.2387
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalScale.y
value: 1.2387
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalScale.z
value: 1.2387
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.x
value: -0.079
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.y
value: -0.1367
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.z
value: 0.7986
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.w
value: 0.8836397
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.x
value: -0.24749401
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.y
value: -0.3881987
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.z
value: 0.08502574
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -21.801
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -51.649
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 21.641
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: -8098169881513260187, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
insertIndex: -1
addedObject: {fileID: 1440475385873073364}
m_SourcePrefab: {fileID: 3150474306388093854, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
--- !u!1 &2029899304289424255 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -8098169881513260187, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
m_PrefabInstance: {fileID: 1420362106600511514}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1440475385873073364
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2029899304289424255}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e348b4e172ba23d45960c0071cc09b1f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SimpleGun
damage: 25
range: 100
fireRate: 8
maxAmmo: 30
currentAmmo: 0
isAutomatic: 0
recoilKickback: 0.08
recoilKickUp: 0.04
recoilRecoverySpeed: 12
bobFrequency: 10
bobHorizontalAmplitude: 0.05
bobVerticalAmplitude: 0.03
sprintBobMultiplier: 1.5
bobReturnSpeed: 6
fpsCam: {fileID: 0}
--- !u!4 &4354687167556866568 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
m_PrefabInstance: {fileID: 1420362106600511514}
m_PrefabAsset: {fileID: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ef5d1bcacc1d9e346b6e53fbcec62ad8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,141 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8985654986098955209
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6346070617587720957}
- component: {fileID: 8585139455581857007}
- component: {fileID: 5387598106901245531}
m_Layer: 0
m_Name: GunSplat
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6346070617587720957
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8985654986098955209}
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: 6241336930636794420}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8585139455581857007
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8985654986098955209}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e348b4e172ba23d45960c0071cc09b1f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SimpleGun
damage: 30
range: 120
fireRate: 6
maxAmmo: 24
currentAmmo: 0
isAutomatic: 0
recoilKickback: 0.08
recoilKickUp: 0.04
recoilRecoverySpeed: 12
enableInternalBob: 0
bobFrequency: 10
bobHorizontalAmplitude: 0.05
bobVerticalAmplitude: 0.03
sprintBobMultiplier: 1.5
bobReturnSpeed: 6
fpsCam: {fileID: 0}
--- !u!114 &5387598106901245531
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8985654986098955209}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59433c687536a60418803799027ddcc3, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::WeaponViewmodel
positionOffset: {x: 0.13, y: -0.25, z: 0.45}
rotationOffset: {x: 0.03, y: 0, z: 0}
scale: {x: 1, y: 1, z: 1}
--- !u!1001 &8738524764220850214
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 6346070617587720957}
m_Modifications:
- target: {fileID: -8098169881513260187, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_Name
value: Visual
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 3150474306388093854, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
--- !u!4 &6241336930636794420 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3447742079981357586, guid: 4f15ea45bfb5e4f11bc2bce50e39fc10, type: 3}
m_PrefabInstance: {fileID: 8738524764220850214}
m_PrefabAsset: {fileID: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: aa9cce2c129fa1a41bf5a539b136f7a6
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,46 @@
using UnityEngine;
/// <summary>
/// Attach to the Player. Watches the inventory for the Bunny Hop Boots being
/// equipped/unequipped and adjusts max stamina accordingly.
/// </summary>
public class BootsEffect : MonoBehaviour
{
[Tooltip("Must match the ItemDefinition itemName exactly.")]
public string bootsItemName = "Bunny Hop Boots";
public float boostedMaxStamina = 200f;
private Inventory _inventory;
private Player _player;
private bool _boosted = false;
void Start()
{
_inventory = GetComponent<Inventory>();
_player = GetComponent<Player>();
}
void Update()
{
if (_inventory == null || _player == null) return;
// Find the boots entry in inventory
var entry = _inventory.items.Find(e => e.DisplayName == bootsItemName);
bool shouldBoost = entry != null && entry.isEquipped;
if (shouldBoost && !_boosted)
{
_player.maxStamina = boostedMaxStamina;
_player.stamina = Mathf.Min(_player.stamina + (boostedMaxStamina - 100f), boostedMaxStamina);
_boosted = true;
Debug.Log("[BootsEffect] Boots equipped — stamina boosted to " + boostedMaxStamina);
}
else if (!shouldBoost && _boosted)
{
_player.maxStamina = 100f;
_player.stamina = Mathf.Min(_player.stamina, 100f);
_boosted = false;
Debug.Log("[BootsEffect] Boots unequipped — stamina restored to 100");
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5680222822977cd4a988c93d7b8881bc

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 384e9957bd5199549870be11d0838d80
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,100 @@
using UnityEngine;
using UnityEditor;
using System.IO;
/// <summary>
/// OGG → Setup → Create Bunny Hop Boots
/// Creates the ItemDefinition and a world pickup for the bhop boots.
/// </summary>
public static class BhopBootsSetup
{
private const string ITEM_DEF_PATH = "Assets/Items/BhopBoots_Item.asset";
private const string PICKUP_PREFAB = "Assets/Prefabs/Pickups/BhopBoots_Pickup.prefab";
[MenuItem("OGG/Setup/Create Bunny Hop Boots")]
public static void Create()
{
EnsureFolder("Assets/Items");
EnsureFolder("Assets/Prefabs/Pickups");
// ── ItemDefinition ────────────────────────────────────────────
ItemDefinition item = AssetDatabase.LoadAssetAtPath<ItemDefinition>(ITEM_DEF_PATH);
bool isNew = item == null;
if (isNew) item = ScriptableObject.CreateInstance<ItemDefinition>();
item.itemName = "Bunny Hop Boots";
item.type = ItemDefinition.ItemType.Misc;
item.isEquippable = true;
item.description = "Illegal footwear. Gives 200 stamina while worn. Do not wear near cliffs.";
if (isNew)
AssetDatabase.CreateAsset(item, ITEM_DEF_PATH);
else
EditorUtility.SetDirty(item);
AssetDatabase.SaveAssets();
// ── Pickup prefab — procedural boot shape ─────────────────────
GameObject root = new GameObject("BhopBoots_Pickup");
// Simple visual: a squashed cube (boot-ish)
GameObject body = GameObject.CreatePrimitive(PrimitiveType.Cube);
body.name = "Visual";
body.transform.SetParent(root.transform, false);
body.transform.localPosition = new Vector3(0f, 0f, 0f);
body.transform.localScale = new Vector3(0.4f, 0.2f, 0.7f);
Object.DestroyImmediate(body.GetComponent<Collider>());
// Bright accent colour so it stands out
var rend = body.GetComponent<Renderer>();
if (rend != null)
{
rend.material = new Material(Shader.Find("Universal Render Pipeline/Lit"));
rend.material.color = new Color(0.1f, 0.9f, 0.4f);
}
PickupItem pickup = root.AddComponent<PickupItem>();
pickup.definition = item;
pickup.spinSpeed = 140f;
pickup.bobHeight = 0.2f;
pickup.bobSpeed = 2.8f;
pickup.pickupRadius = 2.2f;
pickup.pickupKey = KeyCode.E;
StaminaBoostPickup boost = root.AddComponent<StaminaBoostPickup>();
boost.newMaxStamina = 200f;
if (File.Exists(Application.dataPath + "/../" + PICKUP_PREFAB))
AssetDatabase.DeleteAsset(PICKUP_PREFAB);
GameObject saved = PrefabUtility.SaveAsPrefabAsset(root, PICKUP_PREFAB);
Object.DestroyImmediate(root);
AssetDatabase.Refresh();
EditorUtility.DisplayDialog(
"Bunny Hop Boots ✓",
$"Created:\n• {ITEM_DEF_PATH}\n• {PICKUP_PREFAB}\n\n" +
"Drag BhopBoots_Pickup into the scene.\n" +
"Pick it up with [E] to unlock bunny hopping.\n\n" +
"Hold SPACE while landing to chain hops and build speed.\n" +
"Strafe left/right mid-air to steer.",
"Let's go");
EditorGUIUtility.PingObject(saved);
Selection.activeObject = saved;
}
static void EnsureFolder(string path)
{
string[] parts = path.Split('/');
string current = parts[0];
for (int i = 1; i < parts.Length; i++)
{
string next = current + "/" + parts[i];
if (!AssetDatabase.IsValidFolder(next))
AssetDatabase.CreateFolder(current, parts[i]);
current = next;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 92ff81f98e809934bab9c5b8f160276a

View File

@@ -0,0 +1,151 @@
using UnityEngine;
using UnityEditor;
using System.IO;
/// <summary>
/// OGG → Setup → Create Gun Splat Weapon
/// Builds:
/// • Assets/Prefabs/Weapons/GunSplat.prefab — the held weapon (SimpleGun)
/// • Assets/Prefabs/Pickups/GunSplat_Pickup.prefab — world pickup (spins/bobs, press E)
/// • Assets/Items/GunSplat_Item.asset — ItemDefinition (type = Weapon)
/// </summary>
public static class GunSplatSetup
{
private const string GLB_PATH = "Assets/Models/LidarScans/Gun Splat.glb";
private const string WEAPON_PREFAB = "Assets/Prefabs/Weapons/GunSplat.prefab";
private const string PICKUP_PREFAB = "Assets/Prefabs/Pickups/GunSplat_Pickup.prefab";
private const string ITEM_DEF_PATH = "Assets/Items/GunSplat_Item.asset";
[MenuItem("OGG/Setup/Create Gun Splat Weapon")]
public static void CreateGunSplat()
{
// ── 1. Ensure output folders exist ──────────────────────────
EnsureFolder("Assets/Prefabs/Weapons");
EnsureFolder("Assets/Prefabs/Pickups");
EnsureFolder("Assets/Items");
// ── 2. Load the GLB model ────────────────────────────────────
GameObject modelAsset = AssetDatabase.LoadAssetAtPath<GameObject>(GLB_PATH);
if (modelAsset == null)
{
Debug.LogError($"[GunSplatSetup] Could not find GLB at: {GLB_PATH}");
EditorUtility.DisplayDialog("Gun Splat Setup", $"Could not find model at:\n{GLB_PATH}", "OK");
return;
}
// ── 3. Build the held-weapon prefab ──────────────────────────
GameObject weaponRoot = new GameObject("GunSplat");
AttachVisual(weaponRoot, modelAsset);
SimpleGun gun = weaponRoot.AddComponent<SimpleGun>();
gun.damage = 30f;
gun.range = 120f;
gun.fireRate = 6f;
gun.maxAmmo = 24;
gun.isAutomatic = false;
if (File.Exists(DataRelative(WEAPON_PREFAB)))
AssetDatabase.DeleteAsset(WEAPON_PREFAB);
GameObject savedWeapon = PrefabUtility.SaveAsPrefabAsset(weaponRoot, WEAPON_PREFAB);
Object.DestroyImmediate(weaponRoot);
if (savedWeapon == null)
{
Debug.LogError("[GunSplatSetup] Failed to save weapon prefab.");
return;
}
Debug.Log($"[GunSplatSetup] Weapon prefab → {WEAPON_PREFAB}");
// ── 4. Create / update ItemDefinition ────────────────────────
ItemDefinition item = AssetDatabase.LoadAssetAtPath<ItemDefinition>(ITEM_DEF_PATH);
bool isNew = item == null;
if (isNew) item = ScriptableObject.CreateInstance<ItemDefinition>();
item.itemName = "Gun Splat";
item.type = ItemDefinition.ItemType.Weapon;
item.weaponPrefab = savedWeapon;
item.description = "A janky lidar-scanned sidearm. Shoots first, looks weird always.";
if (isNew)
AssetDatabase.CreateAsset(item, ITEM_DEF_PATH);
else
EditorUtility.SetDirty(item);
AssetDatabase.SaveAssets();
Debug.Log($"[GunSplatSetup] ItemDefinition → {ITEM_DEF_PATH}");
// ── 5. Build the world pickup prefab ─────────────────────────
GameObject pickupRoot = new GameObject("GunSplat_Pickup");
// Visual child — the GLB model
AttachVisual(pickupRoot, modelAsset);
// PickupItem component
PickupItem pickup = pickupRoot.AddComponent<PickupItem>();
pickup.definition = item;
pickup.spinSpeed = 90f;
pickup.bobHeight = 0.15f;
pickup.bobSpeed = 2.0f;
pickup.pickupRadius = 2.2f;
pickup.pickupKey = KeyCode.E;
if (File.Exists(DataRelative(PICKUP_PREFAB)))
AssetDatabase.DeleteAsset(PICKUP_PREFAB);
GameObject savedPickup = PrefabUtility.SaveAsPrefabAsset(pickupRoot, PICKUP_PREFAB);
Object.DestroyImmediate(pickupRoot);
if (savedPickup == null)
{
Debug.LogError("[GunSplatSetup] Failed to save pickup prefab.");
return;
}
Debug.Log($"[GunSplatSetup] Pickup prefab → {PICKUP_PREFAB}");
AssetDatabase.Refresh();
// ── 6. Done ──────────────────────────────────────────────────
EditorUtility.DisplayDialog(
"Gun Splat Setup ✓",
"Created:\n" +
$"• {WEAPON_PREFAB}\n" +
$"• {PICKUP_PREFAB}\n" +
$"• {ITEM_DEF_PATH}\n\n" +
"Drag GunSplat_Pickup into the scene wherever you want it to spawn.\n" +
"It will spin, bob, and show an [E] prompt when the player gets close.",
"Sick");
EditorGUIUtility.PingObject(savedPickup);
Selection.activeObject = savedPickup;
}
// ─── Helpers ─────────────────────────────────────────────────────
static void AttachVisual(GameObject parent, GameObject modelAsset)
{
GameObject visual = (GameObject)PrefabUtility.InstantiatePrefab(modelAsset);
if (visual == null) visual = Object.Instantiate(modelAsset);
visual.name = "Visual";
visual.transform.SetParent(parent.transform, false);
visual.transform.localPosition = Vector3.zero;
visual.transform.localRotation = Quaternion.identity;
visual.transform.localScale = Vector3.one;
}
static string DataRelative(string assetPath) =>
Application.dataPath + "/../" + assetPath;
static void EnsureFolder(string path)
{
string[] parts = path.Split('/');
string current = parts[0];
for (int i = 1; i < parts.Length; i++)
{
string next = current + "/" + parts[i];
if (!AssetDatabase.IsValidFolder(next))
AssetDatabase.CreateFolder(current, parts[i]);
current = next;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a0ceea0a64e3fa344b83004be51fe457

View File

@@ -0,0 +1,92 @@
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(WeaponManager))]
public class WeaponManagerEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
WeaponManager wm = (WeaponManager)target;
if (!Application.isPlaying) return;
EditorGUILayout.Space();
EditorGUILayout.LabelField("── Live Positioning ──", EditorStyles.boldLabel);
// Show what's active
string activeName = wm.ActiveWeaponName;
if (string.IsNullOrEmpty(activeName))
{
EditorGUILayout.HelpBox("No weapon currently equipped.", MessageType.Info);
return;
}
EditorGUILayout.HelpBox($"Active: {activeName}", MessageType.None);
// Select the live GO so you can drag gizmos in Scene view
if (GUILayout.Button("🎯 Select Active Weapon in Scene"))
{
var slot = wm.slots.Find(s => s.itemName == activeName);
if (slot != null)
{
Selection.activeGameObject = slot.instance;
SceneView.lastActiveSceneView?.Focus();
}
}
EditorGUILayout.Space();
// Sync the current transform back into the WeaponViewmodel (or fallback global offset)
if (GUILayout.Button("⬆ Sync Transform → Offset Fields"))
{
var slot = wm.slots.Find(s => s.itemName == activeName);
if (slot != null)
{
var vm = slot.instance.GetComponent<WeaponViewmodel>();
if (vm != null)
{
Undo.RecordObject(vm, "Sync Weapon Viewmodel");
vm.SyncFromTransform();
EditorUtility.SetDirty(vm);
// Also save back to the source prefab asset
var prefabAsset = PrefabUtility.GetCorrespondingObjectFromSource(slot.instance);
if (prefabAsset != null)
{
var prefabVm = prefabAsset.GetComponent<WeaponViewmodel>();
if (prefabVm != null)
{
Undo.RecordObject(prefabVm, "Sync Weapon Viewmodel Prefab");
prefabVm.positionOffset = vm.positionOffset;
prefabVm.rotationOffset = vm.rotationOffset;
prefabVm.scale = vm.scale;
EditorUtility.SetDirty(prefabVm);
AssetDatabase.SaveAssets();
}
}
Debug.Log($"[WeaponManager] Synced to WeaponViewmodel: pos={vm.positionOffset} rot={vm.rotationOffset} scale={vm.scale}");
}
else
{
// Fallback: no viewmodel, write to global offsets
Undo.RecordObject(wm, "Sync Weapon Offset");
wm.weaponPositionOffset = slot.instance.transform.localPosition;
wm.weaponRotationOffset = slot.instance.transform.localRotation.eulerAngles;
wm.weaponScale = slot.instance.transform.localScale;
EditorUtility.SetDirty(wm);
Debug.Log($"[WeaponManager] Synced to global offset: pos={wm.weaponPositionOffset}");
}
}
}
EditorGUILayout.HelpBox(
"1. Hit Play & equip the gun\n" +
"2. Click 'Select Active Weapon'\n" +
"3. Use Move/Rotate gizmos in Scene view\n" +
"4. Click 'Sync Transform → Offset Fields'\n" +
"5. Stop Play — values are saved",
MessageType.Info);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fe67de8a32d4bf5449ee8def34a1bb8a

View File

@@ -0,0 +1,10 @@
using UnityEngine;
/// <summary>
/// Attach this to an enemy's head GameObject.
/// When the player shoots it, SimpleGun checks for this component and instakills.
/// </summary>
public class EnemyHeadHitbox : MonoBehaviour
{
[HideInInspector] public EnemyHealth enemyHealth;
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 23988a1164d49b7498b3b4dad22c92f4

View File

@@ -1,35 +1,34 @@
using Unity.VisualScripting;
using UnityEngine;
public class FirstPersonController : MonoBehaviour
{
[Header("Movement Settings")]
public float walkSpeed = 50f; // Boosted from 8f to overcome collision issues
public float runSpeed = 80f; // Boosted from 14f
public float walkSpeed = 50f;
public float runSpeed = 80f;
public float jumpHeight = 2.5f;
public float gravity = -20f;
public float gravity = -20f;
[Header("Mouse Look Settings")]
public float mouseSensitivity = 3f;
public float maxLookAngle = 90f;
public float maxLookAngle = 90f;
[Header("References")]
public Camera playerCamera;
// Private variables
private CharacterController controller;
private Vector3 velocity;
private bool isGrounded;
private float xRotation = 0f;
private Inventory inventory;
private Player player;
private Vector3 velocity;
private bool isGrounded;
private float xRotation = 0f;
void Start()
{
Debug.Log("Starting game");
// FORCE NORMAL TIME (in case something external changed it)
Time.timeScale = 1f;
controller = GetComponent<CharacterController>();
controller = GetComponent<CharacterController>();
if (controller == null)
{
Debug.LogError("FirstPersonController: No CharacterController found!");
@@ -39,8 +38,11 @@ public class FirstPersonController : MonoBehaviour
if (playerCamera == null)
playerCamera = GetComponentInChildren<Camera>();
inventory = GetComponent<Inventory>();
player = GetComponent<Player>();
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
Cursor.visible = false;
}
void Update()
@@ -52,71 +54,42 @@ public class FirstPersonController : MonoBehaviour
if (isGrounded && velocity.y < 0)
velocity.y = -2f;
// ─── Movement via direct KeyCode ───
float moveX = 0f;
float moveZ = 0f;
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) moveZ += 1f;
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) moveZ -= 1f;
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) moveX -= 1f;
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) moveX += 1f;
// DEBUG: Log once when W is first pressed
if (Input.GetKeyDown(KeyCode.W))
{
Debug.Log($"[FPC DEBUG] W pressed | controller.enabled={controller.enabled} | position={transform.position} | isGrounded={isGrounded}");
Debug.Log($"[FPC DEBUG] Time.timeScale={Time.timeScale} | Time.deltaTime={Time.deltaTime} | walkSpeed={walkSpeed}");
}
float moveX = 0f, moveZ = 0f;
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) moveZ += 1f;
if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) moveZ -= 1f;
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) moveX -= 1f;
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) moveX += 1f;
Vector3 move = transform.right * moveX + transform.forward * moveZ;
if (move.magnitude > 1f) move.Normalize();
if (move.magnitude > 1f)
move.Normalize();
bool wantSprint = Input.GetKey(KeyCode.LeftShift) && move.magnitude > 0f;
bool isSprinting = wantSprint && (player == null || player.CanSprint());
if (player != null) player.isSprinting = isSprinting;
float currentSpeed = Input.GetKey(KeyCode.LeftShift) ? runSpeed : walkSpeed;
Vector3 posBefore = transform.position;
float currentSpeed = isSprinting ? runSpeed : walkSpeed;
controller.Move(move * currentSpeed * Time.deltaTime);
// DEBUG: Log if we tried to move but didn't
if (move.magnitude > 0f && Input.GetKeyDown(KeyCode.W))
{
Vector3 posAfter = transform.position;
Debug.Log($"[FPC DEBUG] Move attempt: delta={move * currentSpeed * Time.deltaTime} | actualDelta={(posAfter - posBefore)} | controller.height={controller.height} | controller.radius={controller.radius}");
// Check what we're colliding with
Collider[] nearbyColliders = Physics.OverlapSphere(transform.position, controller.radius + 0.5f);
Debug.Log($"[FPC DEBUG] Found {nearbyColliders.Length} colliders near player");
foreach (Collider col in nearbyColliders)
{
if (col != controller && !(col is CharacterController))
Debug.LogWarning($"[FPC DEBUG] Nearby collider: {col.gameObject.name} on layer {LayerMask.LayerToName(col.gameObject.layer)}");
}
}
// Jumping
if (Input.GetKey(KeyCode.Space) && isGrounded)
velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
// Gravity
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
controller.Move(new Vector3(0f, velocity.y, 0f) * Time.deltaTime);
// Mouse look
HandleMouseLook();
bool inventoryOpen = inventory != null && inventory.IsOpen;
if (!inventoryOpen)
HandleMouseLook();
// Escape to unlock cursor
if (Input.GetKeyDown(KeyCode.Escape))
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
Cursor.visible = true;
}
// Click to re-lock cursor
if (Input.GetMouseButtonDown(0) && Cursor.lockState == CursorLockMode.None)
if (Input.GetMouseButtonDown(0) && Cursor.lockState == CursorLockMode.None && !inventoryOpen)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
Cursor.visible = false;
}
}
@@ -126,9 +99,8 @@ public class FirstPersonController : MonoBehaviour
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -maxLookAngle, maxLookAngle);
xRotation = Mathf.Clamp(xRotation, -maxLookAngle, maxLookAngle);
playerCamera.transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
transform.Rotate(Vector3.up * mouseX);
}
}

8
Assets/Scripts/Game.meta Normal file
View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 95d67a3c950d0c04bbf9b00db7424ff8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,25 @@
using UnityEngine;
public class Defines
{
public class Input
{
public const int kLeftMouseButton = 0;
public const int kRightMouseButton = 1;
public const int kMiddleMouseButton = 2;
public const float kShortClickDelay = 0.25f;
public const float kShortClickCancelMinMouseMovement = 10.0f;
public const float kHeldClickDelay = 0.3f;
public const KeyCode rotateLeftKey = KeyCode.R;
public const KeyCode rotateRightKey = KeyCode.T;
public const KeyCode kCancelKeyCode = KeyCode.Escape;
public const CursorLockMode kDefaultCursorLockMode = CursorLockMode.Confined;
public const float kMouseRotationDistance = 100.0f;
public const float kDoubleClickThreshold = 0.5f;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 87ada8c9eefa71f47aefa0442b6e990f

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d14cfa81116a2f342bb961c77495567a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,384 @@
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.InputSystem;
public static class InputData
{
public const float kDoubleClickThreshold = 0.5f;
public static Vector2 mousePosition;
public static Vector2 mouseDelta;
public static float smoothScrollDelta;
public static float scrollDelta;
public static bool mouseOverUI
{
get; private set;
}
public static MouseButton leftMouseButton;
public static MouseButton middleMouseButton;
public static MouseButton rightMouseButton;
public static Button fireWeapon;
public static Button reload;
public static Button jump;
public static Axis horizontalMovement;
private static List<Button> allButtons = new List<Button>();
private static List<Axis> allAxis = new List<Axis>();
private static float storedScrollDelta;
private static InputConfig inputConfig = new InputConfig();
static InputData()
{
leftMouseButton = AddButton( new MouseButton( Defines.Input.kLeftMouseButton ) );
middleMouseButton = AddButton( new MouseButton( Defines.Input.kMiddleMouseButton ) );
rightMouseButton = AddButton( new MouseButton( Defines.Input.kRightMouseButton ) );
fireWeapon = AddButton( new MultiButton(
new Button[]
{
new MouseButton( Defines.Input.kLeftMouseButton),
new KeyboardButton( KeyCode.LeftControl ),
} ) );
reload = AddButton( new KeyboardButton( KeyCode.R ) );
jump = AddButton( new KeyboardButton( KeyCode.Space ) );
horizontalMovement = AddAxis( new MultiAxis(
new Axis[]
{
new ButtonAxis( new KeyboardButton( KeyCode.A ), new KeyboardButton( KeyCode.D ) )
} ) );
}
public static T AddButton<T>( T value ) where T : Button
{
allButtons.Add( value );
return value;
}
public static T AddAxis<T>( T value ) where T : Axis
{
allAxis.Add( value );
return value;
}
public class MouseButton : Button
{
public Vector2 downPosition;
public int mouseButton;
public MouseButton( int button )
{
mouseButton = button;
}
public override bool GetButton()
{
return Input.GetMouseButton( mouseButton );
}
protected override bool HeldCancelCheck()
{
return ( mousePosition - downPosition ).magnitude <= Defines.Input.kShortClickCancelMinMouseMovement;
}
public override void Update( float unscaledTime )
{
base.Update( unscaledTime );
if( pressed )
{
downPosition = mousePosition;
}
}
}
public class KeyboardButton : Button
{
private KeyCode key;
public KeyboardButton( KeyCode keycode )
{
key = keycode;
}
public override bool GetButton()
{
return Input.GetKey( key );
}
}
public class MultiButton : Button
{
private Button[] buttons;
public MultiButton( Button[] value )
{
buttons = value;
}
public override bool GetButton()
{
bool down = false;
for( int i = buttons.Length - 1; i >= 0; --i )
{
down |= buttons[i].GetButton();
}
return down;
}
}
public abstract class Button
{
/// <summary>
/// true when the mouse button is down.
/// </summary>
public bool down;
/// <summary>
/// true for the frame that the mouse button pressed (On Click).
/// </summary>
public bool pressed;
/// <summary>
/// true on the frame that the mouse button has been down
/// for X number of frames without being moved.
/// </summary>
public bool held;
/// <summary>
/// true on the frame the mouse button is released.
/// </summary>
public bool released;
/// <summary>
/// true if the mouse is clicked quickly and not moved much.
/// example: right clicking to cancel placement of item.
/// </summary>
public bool shortClick;
/// <summary>
/// The time that the button was presesd.
/// </summary>
public float downTime;
/// <summary>
/// True when the user has double clicked this button.
/// </summary>
public bool doubleClick;
/// <summary>
/// How long this button has been down for. Only valid when
/// down == true
/// </summary>
public float downLength;
private bool isHeld;
private float lastClickTime;
private Vector3 lastClickPosition;
public abstract bool GetButton();
/// <summary>
/// Overload this funtion in order to have
/// the mouse be able to cancel the held functionality
/// if the user moves the mouse.
/// </summary>
/// <returns>If the held or shortclick should be cancelled</returns>
protected virtual bool HeldCancelCheck()
{
return true;
}
public virtual void Update( float unscaledTime )
{
bool value = GetButton();
pressed = value && down == false;
released = value == false && down == true;
shortClick = false;
down = value;
bool isHeldValue = pressed == false && down && downTime + Defines.Input.kHeldClickDelay < unscaledTime && HeldCancelCheck();
held = isHeld == false && isHeldValue == true; // Only show this as true for a single frame.
isHeld = isHeldValue;
if( pressed )
{
downTime = unscaledTime;
downLength = 0.0f;
doubleClick = lastClickTime + kDoubleClickThreshold >= unscaledTime && Vector2.Distance( mousePosition, lastClickPosition ) < 5.0f;
}
if( released )
{
if( unscaledTime - downTime <= Defines.Input.kShortClickDelay
&& HeldCancelCheck() )
{
shortClick = true;
}
lastClickTime = unscaledTime;
doubleClick = false;
}
if( down )
{
downLength = unscaledTime - downTime;
lastClickPosition = mousePosition;
}
}
}
public abstract class Axis
{
public float value;
public abstract float GetAxisValue();
public virtual void Update( float unscaledTime)
{
value = GetAxisValue();
}
}
public class InputAxis : Axis
{
public string axisName;
public InputAxis( string name )
{
axisName = name;
}
public override float GetAxisValue()
{
return Input.GetAxis( axisName );
}
}
public class TriggerNormaliser : Axis
{
private Axis trigger;
bool invert = false;
public TriggerNormaliser( Axis value, bool doInvert )
{
trigger = value;
invert = doInvert;
}
public override float GetAxisValue()
{
float value = trigger.GetAxisValue();
if( invert == false )
{
value += 1.0f;
value /= 2.0f;
}
value *= invert ? -1.0f : 1.0f;
return value;
}
}
public class InvertAxis : Axis
{
private Axis targetAxis;
public InvertAxis( Axis target )
{
targetAxis = target;
}
public override float GetAxisValue()
{
return -1 * targetAxis.GetAxisValue();
}
}
public class ButtonAxis : Axis
{
private Button positiveButton;
private Button negativeButton;
public ButtonAxis( Button negativeButton, Button positiveButton )
{
this.positiveButton = positiveButton;
this.negativeButton = negativeButton;
}
public override float GetAxisValue()
{
return ( positiveButton.down ? 1.0f : 0.0f ) + ( negativeButton.down ? -1.0f : 0.0f );
}
public override void Update( float unscaledTime )
{
positiveButton.Update( unscaledTime );
negativeButton.Update( unscaledTime );
base.Update( unscaledTime );
}
}
public class InputActionAxis : Axis
{
private InputAction action;
public InputActionAxis( InputAction inputAction )
{
action = inputAction;
}
public override float GetAxisValue()
{
return action.ReadValue<float>();
}
}
public class MultiAxis : Axis
{
protected Axis[] axis;
public MultiAxis( Axis[] axis )
{
this.axis = axis;
}
public override float GetAxisValue()
{
float value = 0.0f;
for( int i = 0; i < axis.Length; i++ )
{
value += axis[i].GetAxisValue();
}
value = Mathf.Clamp( value, -1.0f, 1.0f );
return value;
}
}
public static void Update( float unscaledTime )
{
mouseDelta = mousePosition - (Vector2)Input.mousePosition;
mousePosition = Input.mousePosition;
//mouseOverUI = UIUtils.MouseIsOverUI();
foreach( Button i in allButtons )
{
i.Update( unscaledTime );
}
foreach( Axis i in allAxis )
{
i.Update( unscaledTime);
}
#if UNITY_STANDALONE_WIN
scrollDelta = Input.mouseScrollDelta.y;
#else
scrollDelta = ( Input.GetKey( KeyCode.LeftShift ) || Input.GetKey( KeyCode.RightShift ) ) ? Input.mouseScrollDelta.x : Input.mouseScrollDelta.y;
#endif
storedScrollDelta += scrollDelta;
float smoothAmount = Mathf.Lerp( 0.0f, storedScrollDelta, Time.unscaledDeltaTime * 5.0f );
storedScrollDelta -= smoothAmount;
smoothScrollDelta = smoothAmount;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b47ddc9765face745a9c52aaf22038bc

View File

@@ -15,10 +15,18 @@ public class HumanoidEnemy : MonoBehaviour
public float attackRange = 2f;
public float gravity = -20f;
[Header("Combat")]
[Header("Melee Combat")]
public float attackDamage = 10f;
public float attackCooldown = 1f;
[Header("Ranged Combat")]
public bool canShoot = true;
public float shootRange = 18f; // within this range (but outside attackRange) the enemy shoots
public float shootDamage = 8f;
public float shootCooldown = 1.5f;
public float bulletSpeed = 40f; // visual tracer speed
public float shootAccuracyAngle = 5f; // random spread in degrees
[Header("Patrol (optional)")]
public float patrolRadius = 8f;
public float patrolWaitTime = 2f;
@@ -30,6 +38,7 @@ public class HumanoidEnemy : MonoBehaviour
private Vector3 spawnPoint;
private Vector3 patrolTarget;
private float nextAttackTime;
private float nextShootTime;
private float verticalVelocity;
private float patrolWaitTimer;
private bool isAggro = false;
@@ -49,8 +58,8 @@ public class HumanoidEnemy : MonoBehaviour
controller = GetComponent<CharacterController>();
health = GetComponent<EnemyHealth>();
// Find player
GameObject playerObj = GameObject.Find("Player");
GameObject playerObj = GameObject.FindGameObjectWithTag("Player");
if (playerObj == null) playerObj = GameObject.Find("Player");
if (playerObj != null)
player = playerObj.transform;
@@ -70,6 +79,11 @@ public class HumanoidEnemy : MonoBehaviour
attackDamage = 10f;
attackCooldown = 1.2f;
chaseRange = 20f;
canShoot = true;
shootRange = 16f;
shootDamage = 8f;
shootCooldown = 1.4f;
shootAccuracyAngle = 6f;
if (health != null) health.maxHealth = 80f;
break;
@@ -78,6 +92,7 @@ public class HumanoidEnemy : MonoBehaviour
attackDamage = 25f;
attackCooldown = 2f;
chaseRange = 18f;
canShoot = false; // Brute is pure melee
if (health != null) health.maxHealth = 200f;
break;
@@ -86,6 +101,11 @@ public class HumanoidEnemy : MonoBehaviour
attackDamage = 8f;
attackCooldown = 0.6f;
chaseRange = 30f;
canShoot = true;
shootRange = 22f;
shootDamage = 6f;
shootCooldown = 0.8f;
shootAccuracyAngle = 10f; // less accurate but fast
if (health != null) health.maxHealth = 50f;
break;
}
@@ -101,16 +121,26 @@ public class HumanoidEnemy : MonoBehaviour
float distToPlayer = Vector3.Distance(transform.position, player.position);
// Aggro check
if (distToPlayer <= chaseRange)
isAggro = true;
if (isAggro)
{
if (distToPlayer <= attackRange)
Attack();
{
// Close enough to punch
MeleeAttack();
}
else if (canShoot && distToPlayer <= shootRange)
{
// In shoot range — strafe / stand and fire
FacePlayer();
ShootAtPlayer();
}
else
{
ChasePlayer();
}
}
else
{
@@ -123,8 +153,16 @@ public class HumanoidEnemy : MonoBehaviour
verticalVelocity += gravity * Time.deltaTime;
controller.Move(Vector3.up * verticalVelocity * Time.deltaTime);
// Animate
AnimateModel(isAggro && distToPlayer > attackRange);
bool isWalking = isAggro && distToPlayer > attackRange && !(canShoot && distToPlayer <= shootRange);
AnimateModel(isWalking);
}
void FacePlayer()
{
Vector3 direction = (player.position - transform.position);
direction.y = 0f;
if (direction != Vector3.zero)
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), Time.deltaTime * 8f);
}
void ChasePlayer()
@@ -135,7 +173,6 @@ public class HumanoidEnemy : MonoBehaviour
controller.Move(direction * moveSpeed * Time.deltaTime);
// Face the player
if (direction != Vector3.zero)
transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), Time.deltaTime * 8f);
}
@@ -171,32 +208,106 @@ public class HumanoidEnemy : MonoBehaviour
return spawnPoint + new Vector3(randomCircle.x, 0f, randomCircle.y);
}
void Attack()
// ─── Melee ───
void MeleeAttack()
{
// Face the player
Vector3 direction = (player.position - transform.position);
direction.y = 0f;
if (direction != Vector3.zero)
transform.rotation = Quaternion.LookRotation(direction);
FacePlayer();
if (Time.time >= nextAttackTime)
{
nextAttackTime = Time.time + attackCooldown;
Debug.Log($"{gameObject.name} attacks for {attackDamage} damage!");
// Punch animation
StartCoroutine(PunchAnimation());
// TODO: Hook into player health system when you have one
// player.GetComponent<PlayerHealth>()?.TakeDamage(attackDamage);
Player playerHealth = player.GetComponent<Player>();
if (playerHealth != null)
{
playerHealth.health -= attackDamage;
Debug.Log($"[Enemy] Melee hit! Player health: {playerHealth.health}");
}
}
}
// ─── Shooting ───
void ShootAtPlayer()
{
if (Time.time < nextShootTime) return;
nextShootTime = Time.time + shootCooldown;
StartCoroutine(ShootAnimation());
// Aim at player's centre-ish (chest height) with some spread
Vector3 aimOrigin = headTransform != null
? headTransform.position
: transform.position + Vector3.up * 1.4f;
Vector3 aimTarget = player.position + Vector3.up * 0.9f; // aim for chest
Vector3 aimDir = (aimTarget - aimOrigin).normalized;
// Apply accuracy spread
aimDir = Quaternion.Euler(
Random.Range(-shootAccuracyAngle, shootAccuracyAngle),
Random.Range(-shootAccuracyAngle, shootAccuracyAngle),
0f) * aimDir;
RaycastHit hit;
if (Physics.Raycast(aimOrigin, aimDir, out hit, shootRange * 1.5f))
{
// Spawn a visual tracer
StartCoroutine(SpawnBulletTracer(aimOrigin, hit.point));
Player playerHealth = hit.transform.GetComponentInParent<Player>();
if (playerHealth != null)
{
playerHealth.health -= shootDamage;
Debug.Log($"[Enemy] Shot hit player! Player health: {playerHealth.health}");
}
}
else
{
// Missed — still show tracer going into the distance
StartCoroutine(SpawnBulletTracer(aimOrigin, aimOrigin + aimDir * shootRange));
}
}
IEnumerator SpawnBulletTracer(Vector3 from, Vector3 to)
{
GameObject tracer = GameObject.CreatePrimitive(PrimitiveType.Cube);
tracer.name = "EnemyBulletTracer";
Destroy(tracer.GetComponent<Collider>());
float length = Vector3.Distance(from, to);
tracer.transform.localScale = new Vector3(0.02f, 0.02f, Mathf.Min(length, 0.3f));
Renderer r = tracer.GetComponent<Renderer>();
Material mat = new Material(Shader.Find("Standard"));
mat.color = new Color(1f, 0.9f, 0.3f);
// Make it emissive so it's visible
mat.EnableKeyword("_EMISSION");
mat.SetColor("_EmissionColor", new Color(1f, 0.8f, 0.1f) * 2f);
r.material = mat;
float travelTime = length / bulletSpeed;
float elapsed = 0f;
while (elapsed < travelTime)
{
elapsed += Time.deltaTime;
float t = Mathf.Clamp01(elapsed / travelTime);
Vector3 pos = Vector3.Lerp(from, to, t);
tracer.transform.position = pos;
tracer.transform.rotation = Quaternion.LookRotation((to - from).normalized);
yield return null;
}
Destroy(tracer);
}
// ─── Procedural Humanoid Model ───
void BuildHumanoidModel()
{
// Sizing based on type
float scale = 1f;
Color skinColor = new Color(0.6f, 0.45f, 0.35f);
Color shirtColor;
@@ -206,16 +317,16 @@ public class HumanoidEnemy : MonoBehaviour
{
case EnemyType.Grunt:
scale = 1f;
shirtColor = new Color(0.4f, 0.25f, 0.2f); // brown shirt
shirtColor = new Color(0.4f, 0.25f, 0.2f);
break;
case EnemyType.Brute:
scale = 1.3f;
shirtColor = new Color(0.5f, 0.1f, 0.1f); // red shirt
shirtColor = new Color(0.5f, 0.1f, 0.1f);
skinColor = new Color(0.5f, 0.35f, 0.3f);
break;
case EnemyType.Runner:
scale = 0.9f;
shirtColor = new Color(0.2f, 0.35f, 0.2f); // green shirt
shirtColor = new Color(0.2f, 0.35f, 0.2f);
break;
default:
shirtColor = Color.gray;
@@ -227,13 +338,17 @@ public class HumanoidEnemy : MonoBehaviour
bodyRoot.localPosition = Vector3.zero;
bodyRoot.localRotation = Quaternion.identity;
// Head
// Head — kept with a collider and EnemyHeadHitbox for headshots
headTransform = CreatePart("Head", bodyRoot,
new Vector3(0f, 1.65f, 0f) * scale,
new Vector3(0.3f, 0.3f, 0.3f) * scale,
skinColor, PrimitiveType.Sphere);
skinColor, PrimitiveType.Sphere, keepCollider: true);
// Eyes (two small dark spheres)
// Wire up head hitbox
EnemyHeadHitbox headHitbox = headTransform.gameObject.AddComponent<EnemyHeadHitbox>();
headHitbox.enemyHealth = health;
// Eyes
CreatePart("LeftEye", headTransform,
new Vector3(-0.08f, 0.03f, 0.12f),
new Vector3(0.08f, 0.08f, 0.05f),
@@ -248,39 +363,38 @@ public class HumanoidEnemy : MonoBehaviour
torsoTransform = CreatePart("Torso", bodyRoot,
new Vector3(0f, 1.15f, 0f) * scale,
new Vector3(0.45f, 0.6f, 0.25f) * scale,
shirtColor, PrimitiveType.Cube);
shirtColor, PrimitiveType.Cube, keepCollider: true);
// Left Arm
// Arms
leftArm = CreatePart("LeftArm", bodyRoot,
new Vector3(-0.35f, 1.15f, 0f) * scale,
new Vector3(0.15f, 0.55f, 0.15f) * scale,
skinColor, PrimitiveType.Cube);
skinColor, PrimitiveType.Cube, keepCollider: true);
// Right Arm
rightArm = CreatePart("RightArm", bodyRoot,
new Vector3(0.35f, 1.15f, 0f) * scale,
new Vector3(0.15f, 0.55f, 0.15f) * scale,
skinColor, PrimitiveType.Cube);
skinColor, PrimitiveType.Cube, keepCollider: true);
// Left Leg
// Legs
leftLeg = CreatePart("LeftLeg", bodyRoot,
new Vector3(-0.12f, 0.4f, 0f) * scale,
new Vector3(0.18f, 0.6f, 0.18f) * scale,
pantsColor, PrimitiveType.Cube);
pantsColor, PrimitiveType.Cube, keepCollider: true);
// Right Leg
rightLeg = CreatePart("RightLeg", bodyRoot,
new Vector3(0.12f, 0.4f, 0f) * scale,
new Vector3(0.18f, 0.6f, 0.18f) * scale,
pantsColor, PrimitiveType.Cube);
pantsColor, PrimitiveType.Cube, keepCollider: true);
// Adjust CharacterController to fit
controller.height = 1.9f * scale;
controller.radius = 0.3f * scale;
controller.center = new Vector3(0f, 0.95f * scale, 0f);
}
Transform CreatePart(string name, Transform parent, Vector3 localPos, Vector3 localScale, Color color, PrimitiveType shape = PrimitiveType.Cube)
/// <param name="keepCollider">True to leave the collider on so raycasts can hit this part.</param>
Transform CreatePart(string name, Transform parent, Vector3 localPos, Vector3 localScale, Color color,
PrimitiveType shape = PrimitiveType.Cube, bool keepCollider = false)
{
GameObject part = GameObject.CreatePrimitive(shape);
part.name = name;
@@ -289,9 +403,11 @@ public class HumanoidEnemy : MonoBehaviour
part.transform.localScale = localScale;
part.transform.localRotation = Quaternion.identity;
// Remove collider from body parts (CharacterController handles collision)
Collider col = part.GetComponent<Collider>();
if (col != null) Destroy(col);
if (!keepCollider)
{
Collider col = part.GetComponent<Collider>();
if (col != null) Destroy(col);
}
Renderer rend = part.GetComponent<Renderer>();
rend.material = new Material(Shader.Find("Standard"));
@@ -312,7 +428,6 @@ public class HumanoidEnemy : MonoBehaviour
float limbSwing = Mathf.Sin(animTimer) * 30f;
// Arms swing opposite to legs
if (leftArm != null)
leftArm.localRotation = Quaternion.Euler(limbSwing, 0f, 0f);
if (rightArm != null)
@@ -322,7 +437,6 @@ public class HumanoidEnemy : MonoBehaviour
if (rightLeg != null)
rightLeg.localRotation = Quaternion.Euler(limbSwing, 0f, 0f);
// Slight torso bob
if (torsoTransform != null)
{
Vector3 torsoPos = torsoTransform.localPosition;
@@ -333,7 +447,6 @@ public class HumanoidEnemy : MonoBehaviour
}
else
{
// Return to idle pose
animTimer = 0f;
if (leftArm != null)
leftArm.localRotation = Quaternion.Slerp(leftArm.localRotation, Quaternion.identity, Time.deltaTime * 5f);
@@ -350,7 +463,6 @@ public class HumanoidEnemy : MonoBehaviour
{
if (rightArm == null) yield break;
// Wind up
float timer = 0f;
float punchDuration = 0.15f;
@@ -362,7 +474,6 @@ public class HumanoidEnemy : MonoBehaviour
yield return null;
}
// Snap back
timer = 0f;
while (timer < punchDuration)
{
@@ -375,19 +486,57 @@ public class HumanoidEnemy : MonoBehaviour
rightArm.localRotation = Quaternion.identity;
}
IEnumerator ShootAnimation()
{
if (rightArm == null) yield break;
float timer = 0f;
float duration = 0.1f;
// Raise arm to aim
while (timer < duration)
{
timer += Time.deltaTime;
float t = timer / duration;
rightArm.localRotation = Quaternion.Euler(Mathf.Lerp(0f, -70f, t), 0f, 0f);
yield return null;
}
yield return new WaitForSeconds(0.05f);
// Recoil kick back
rightArm.localRotation = Quaternion.Euler(-60f, 0f, 0f);
yield return new WaitForSeconds(0.08f);
// Return
timer = 0f;
while (timer < duration * 2f)
{
timer += Time.deltaTime;
float t = timer / (duration * 2f);
rightArm.localRotation = Quaternion.Euler(Mathf.Lerp(-70f, 0f, t), 0f, 0f);
yield return null;
}
rightArm.localRotation = Quaternion.identity;
}
// ─── Gizmos ───
void OnDrawGizmosSelected()
{
// Chase range
Gizmos.color = new Color(1f, 0f, 0f, 0.15f);
Gizmos.DrawWireSphere(transform.position, chaseRange);
// Attack range
Gizmos.color = new Color(1f, 0.5f, 0f, 0.3f);
Gizmos.DrawWireSphere(transform.position, attackRange);
// Patrol radius
if (canShoot)
{
Gizmos.color = new Color(1f, 1f, 0f, 0.2f);
Gizmos.DrawWireSphere(Application.isPlaying ? transform.position : transform.position, shootRange);
}
Gizmos.color = new Color(0f, 0.5f, 1f, 0.15f);
Gizmos.DrawWireSphere(Application.isPlaying ? spawnPoint : transform.position, patrolRadius);
}

View File

@@ -0,0 +1,9 @@
using UnityEngine;
public class InputHelper : MonoBehaviour
{
protected void Update()
{
InputData.Update( Time.unscaledTime );
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: deeb0d245b10479488cdc39099cb9bab
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: -32000
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

632
Assets/Scripts/Inventory.cs Normal file
View File

@@ -0,0 +1,632 @@
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Inventory system with a toggleable HUD (press I) and right-click context menu.
/// Attach to the Player GameObject alongside WeaponManager.
/// </summary>
public class Inventory : MonoBehaviour
{
// ─── Item data ────────────────────────────────────────────────────
[System.Serializable]
public class InventoryEntry
{
public ItemDefinition definition;
public string itemName;
public Sprite icon;
public int count;
public bool isEquipped;
public InventoryEntry(string name, Sprite icon)
{
this.itemName = name;
this.icon = icon;
this.count = 1;
this.isEquipped = false;
}
public InventoryEntry(ItemDefinition def)
{
this.definition = def;
this.itemName = def.itemName;
this.icon = def.icon;
this.count = 1;
this.isEquipped = false;
}
public bool _isWeaponSlot;
public bool IsWeapon =>
(definition != null && definition.type == ItemDefinition.ItemType.Weapon)
|| _isWeaponSlot;
// True for weapons AND equippable misc items
public bool IsEquippable =>
IsWeapon || (definition != null && definition.isEquippable);
public string DisplayName => definition != null ? definition.itemName : itemName;
}
public List<InventoryEntry> items = new List<InventoryEntry>();
// ─── HUD config ───────────────────────────────────────────────────
[Header("HUD")]
public KeyCode toggleKey = KeyCode.I;
public KeyCode equipKey = KeyCode.F;
public int columns = 4;
public int maxSlots = 20;
[Header("HUD Colours")]
public Color colBackground = new Color(0.05f, 0.05f, 0.05f, 0.92f);
public Color colPanel = new Color(0.10f, 0.10f, 0.10f, 0.95f);
public Color colSlotEmpty = new Color(0.18f, 0.18f, 0.18f, 1.00f);
public Color colSlotFilled = new Color(0.22f, 0.28f, 0.22f, 1.00f);
public Color colSlotHover = new Color(0.35f, 0.45f, 0.35f, 1.00f);
public Color colSlotSelected = new Color(0.45f, 0.75f, 0.45f, 1.00f);
public Color colSlotEquipped = new Color(0.60f, 0.40f, 0.10f, 1.00f);
public Color colBorder = new Color(0.40f, 0.65f, 0.40f, 1.00f);
public Color colText = new Color(0.85f, 0.95f, 0.85f, 1.00f);
public Color colDim = new Color(0.50f, 0.60f, 0.50f, 1.00f);
public Color colAccent = new Color(0.50f, 0.90f, 0.50f, 1.00f);
public Color colWeaponAccent = new Color(0.95f, 0.75f, 0.20f, 1.00f);
[Header("Context Menu Colours")]
public Color colCtxBg = new Color(0.08f, 0.10f, 0.08f, 0.98f);
public Color colCtxBorder = new Color(0.40f, 0.65f, 0.40f, 1.00f);
public Color colCtxHover = new Color(0.20f, 0.35f, 0.20f, 1.00f);
public Color colCtxText = new Color(0.85f, 0.95f, 0.85f, 1.00f);
public Color colCtxDestructive = new Color(0.85f, 0.25f, 0.20f, 1.00f);
// ─── Private state ────────────────────────────────────────────────
private bool _open = false;
private int _selectedIndex = 0;
private int _hoveredIndex = -1;
private WeaponManager _weaponManager;
// ─── Context menu state ───────────────────────────────────────────
private bool _ctxOpen = false;
private int _ctxItemIndex = -1;
private Vector2 _ctxPos;
private const float kCtxItemH = 28f;
private const float kCtxWidth = 140f;
private const float kCtxPadX = 10f;
// Context menu action labels — built per item
private struct CtxAction
{
public string label;
public bool isDestructive;
public System.Action callback;
}
private List<CtxAction> _ctxActions = new List<CtxAction>();
// ─── Layout constants ─────────────────────────────────────────────
private const float kSlotSize = 80f;
private const float kSlotPad = 8f;
private const float kPanelPad = 20f;
private const float kHeaderH = 40f;
private const float kDetailPanelH = 120f;
// ─────────────────────────────────────────────────────────────────
void Start()
{
_weaponManager = GetComponent<WeaponManager>();
if (_weaponManager != null)
Invoke(nameof(SyncStartingWeapons), 0.1f);
}
void SyncStartingWeapons()
{
if (_weaponManager == null) return;
foreach (var slot in _weaponManager.slots)
{
if (slot.definition != null)
AddItem(slot.definition, autoEquip: false);
else
AddItemRaw(slot.itemName, null, isWeaponSlot: true);
}
SyncEquippedState();
}
// ─── Public API ───────────────────────────────────────────────────
public void AddItem(ItemDefinition def, bool autoEquip = false)
{
if (def == null) return;
InventoryEntry existing = items.Find(e => e.definition == def);
if (existing != null)
{
if (def.type != ItemDefinition.ItemType.Weapon) existing.count++;
Debug.Log($"[Inventory] Already have: {def.itemName}");
}
else
{
var entry = new InventoryEntry(def);
items.Add(entry);
Debug.Log($"[Inventory] Picked up: {def.itemName}");
if (def.type == ItemDefinition.ItemType.Weapon)
{
_weaponManager?.AddWeapon(def);
if (autoEquip) EquipItem(items.Count - 1);
}
}
}
public void AddItem(string itemName, Sprite icon = null) => AddItemRaw(itemName, icon, false);
private void AddItemRaw(string itemName, Sprite icon, bool isWeaponSlot)
{
InventoryEntry existing = items.Find(e => e.itemName == itemName && e.definition == null);
if (existing != null) { existing.count++; return; }
var entry = new InventoryEntry(itemName, icon);
entry._isWeaponSlot = isWeaponSlot;
items.Add(entry);
}
public bool RemoveItem(string itemName, int amount = 1)
{
InventoryEntry entry = items.Find(e => e.DisplayName == itemName);
if (entry == null) return false;
entry.count -= amount;
if (entry.count <= 0) items.Remove(entry);
return true;
}
public bool HasItem(string itemName) => items.Exists(e => e.DisplayName == itemName);
public int CountOf(string itemName)
{
var e = items.Find(x => x.DisplayName == itemName);
return e != null ? e.count : 0;
}
public bool IsOpen => _open;
// ─── Equip / Unequip ──────────────────────────────────────────────
void EquipItem(int index)
{
if (index < 0 || index >= items.Count) return;
InventoryEntry entry = items[index];
if (!entry.IsEquippable) return;
if (entry.IsWeapon)
{
// Unequip other weapons
foreach (var e in items) { if (e.IsWeapon) e.isEquipped = false; }
entry.isEquipped = true;
_weaponManager?.EquipByName(entry.DisplayName);
}
else
{
// Toggle equip for misc equippables (boots, etc.)
entry.isEquipped = true;
}
Debug.Log($"[Inventory] Equipped: {entry.DisplayName}");
}
void UnequipItem(int index)
{
if (index < 0 || index >= items.Count) return;
InventoryEntry entry = items[index];
if (!entry.IsEquippable || !entry.isEquipped) return;
entry.isEquipped = false;
if (entry.IsWeapon && _weaponManager != null)
{
var slot = _weaponManager.slots.Find(s => s.itemName == entry.DisplayName);
if (slot != null) slot.instance.SetActive(false);
_weaponManager.Unequip();
}
Debug.Log($"[Inventory] Unequipped: {entry.DisplayName}");
}
void DropItem(int index)
{
if (index < 0 || index >= items.Count) return;
InventoryEntry entry = items[index];
if (entry.isEquipped) UnequipItem(index);
items.RemoveAt(index);
if (_selectedIndex >= items.Count) _selectedIndex = items.Count - 1;
Debug.Log($"[Inventory] Dropped: {entry.DisplayName}");
// TODO: optionally spawn the pickup back in the world here
}
void SyncEquippedState()
{
if (_weaponManager == null) return;
string active = _weaponManager.ActiveWeaponName;
foreach (var e in items)
{
// Only sync weapon equipped state — leave misc equippables alone
if (e.IsWeapon)
e.isEquipped = (e.DisplayName == active);
}
}
// ─── Context menu builder ─────────────────────────────────────────
void OpenContextMenu(int itemIndex, Vector2 screenPos)
{
if (itemIndex < 0 || itemIndex >= items.Count) return;
_ctxItemIndex = itemIndex;
_ctxActions.Clear();
InventoryEntry entry = items[itemIndex];
if (entry.IsEquippable)
{
if (entry.isEquipped)
{
int captured = itemIndex;
_ctxActions.Add(new CtxAction
{
label = "Unequip",
isDestructive = false,
callback = () => UnequipItem(captured)
});
}
else
{
int captured = itemIndex;
_ctxActions.Add(new CtxAction
{
label = "Equip",
isDestructive = false,
callback = () => EquipItem(captured)
});
}
}
// Consumables / misc could have a "Use" action here in future
// For now everyone gets Inspect (just selects and focuses the detail panel)
{
int captured = itemIndex;
_ctxActions.Add(new CtxAction
{
label = "Inspect",
isDestructive = false,
callback = () => _selectedIndex = captured
});
}
{
int captured = itemIndex;
_ctxActions.Add(new CtxAction
{
label = "Drop",
isDestructive = true,
callback = () => DropItem(captured)
});
}
// Clamp so the menu doesn't go off screen
float menuH = _ctxActions.Count * kCtxItemH + 8f;
float clampedX = Mathf.Min(screenPos.x, Screen.width - kCtxWidth - 4f);
float clampedY = Mathf.Min(screenPos.y, Screen.height - menuH - 4f);
_ctxPos = new Vector2(clampedX, clampedY);
_ctxOpen = true;
}
void CloseContextMenu() { _ctxOpen = false; _ctxItemIndex = -1; }
// ─── Toggle ───────────────────────────────────────────────────────
void Update()
{
if (Input.GetKeyDown(toggleKey))
{
CloseContextMenu();
SetOpen(!_open);
}
if (_open && Input.GetKeyDown(equipKey))
{
if (_selectedIndex < items.Count && items[_selectedIndex].IsWeapon)
EquipItem(_selectedIndex);
CloseContextMenu();
}
if (!_open)
SyncEquippedState();
}
void SetOpen(bool open)
{
_open = open;
SyncEquippedState();
Cursor.lockState = open ? CursorLockMode.None : CursorLockMode.Locked;
Cursor.visible = open;
}
// ─── GUI ──────────────────────────────────────────────────────────
void OnGUI()
{
if (!_open) return;
int rows = Mathf.CeilToInt((float)maxSlots / columns);
float gridW = columns * (kSlotSize + kSlotPad) - kSlotPad;
float gridH = rows * (kSlotSize + kSlotPad) - kSlotPad;
float panelW = gridW + kPanelPad * 2f;
float panelH = kHeaderH + kPanelPad + gridH + kPanelPad + kDetailPanelH + kPanelPad;
float panelX = (Screen.width - panelW) * 0.5f;
float panelY = (Screen.height - panelH) * 0.5f;
Vector2 mouse = Event.current.mousePosition;
// ── Click outside context menu to close it ────────────────────
if (_ctxOpen && Event.current.type == EventType.MouseDown)
{
Rect ctxRect = GetCtxRect();
if (!ctxRect.Contains(mouse))
CloseContextMenu();
}
// ── Backdrop ──────────────────────────────────────────────────
DrawRect(new Rect(0, 0, Screen.width, Screen.height), new Color(0, 0, 0, 0.55f));
// ── Main panel ────────────────────────────────────────────────
DrawBorderedBox(new Rect(panelX, panelY, panelW, panelH), colPanel, colBorder, 2f);
GUIStyle headerStyle = MakeStyle(18, FontStyle.Bold, colAccent, TextAnchor.MiddleCenter);
GUI.Label(new Rect(panelX, panelY + 8f, panelW, 28f), "[ INVENTORY ]", headerStyle);
DrawRect(new Rect(panelX + 10f, panelY + kHeaderH - 2f, panelW - 20f, 1f), colBorder);
if (_weaponManager != null && _weaponManager.ActiveWeaponName != "")
{
GUIStyle activeStyle = MakeStyle(11, FontStyle.Normal, colWeaponAccent, TextAnchor.MiddleRight);
GUI.Label(new Rect(panelX, panelY + 10f, panelW - 10f, 20f),
$"EQUIPPED: {_weaponManager.ActiveWeaponName}", activeStyle);
}
float gx = panelX + kPanelPad;
float gy = panelY + kHeaderH + kPanelPad;
_hoveredIndex = -1;
// ── Slot grid ─────────────────────────────────────────────────
for (int i = 0; i < maxSlots; i++)
{
int col = i % columns;
int row = i / columns;
float sx = gx + col * (kSlotSize + kSlotPad);
float sy = gy + row * (kSlotSize + kSlotPad);
Rect slotRect = new Rect(sx, sy, kSlotSize, kSlotSize);
bool hasItem = i < items.Count;
bool isHover = slotRect.Contains(mouse) && !_ctxOpen;
bool isSel = (i == _selectedIndex);
bool isEquipped = hasItem && items[i].isEquipped;
bool isWeapon = hasItem && items[i].IsWeapon;
if (isHover) _hoveredIndex = i;
// Left-click: select
if (isHover && Event.current.type == EventType.MouseDown
&& Event.current.button == 0 && hasItem)
{
_selectedIndex = i;
CloseContextMenu();
}
// Left double-click: equip weapon
if (isHover && Event.current.type == EventType.MouseDown
&& Event.current.button == 0 && Event.current.clickCount == 2 && isWeapon)
EquipItem(i);
// Right-click: open context menu
if (isHover && Event.current.type == EventType.MouseDown
&& Event.current.button == 1 && hasItem)
{
_selectedIndex = i;
OpenContextMenu(i, mouse);
}
// Slot colour
Color slotCol;
if (isEquipped) slotCol = colSlotEquipped;
else if (isSel) slotCol = colSlotSelected;
else if (isHover) slotCol = colSlotHover;
else if (hasItem) slotCol = colSlotFilled;
else slotCol = colSlotEmpty;
Color borderCol = isEquipped ? colWeaponAccent : (isSel ? colAccent : colBorder);
DrawBorderedBox(slotRect, slotCol, borderCol, (isSel || isEquipped) ? 2f : 1f);
if (!hasItem) continue;
InventoryEntry entry = items[i];
// Icon or letter placeholder
if (entry.icon != null)
{
float ip = 10f;
GUI.DrawTexture(new Rect(sx + ip, sy + ip, kSlotSize - ip * 2f, kSlotSize - 28f),
entry.icon.texture, ScaleMode.ScaleToFit, true);
}
else
{
Color lc = isEquipped ? colWeaponAccent : (isSel ? Color.white : colAccent);
GUI.Label(new Rect(sx, sy + 8f, kSlotSize, kSlotSize - 24f),
entry.DisplayName.Substring(0, 1).ToUpper(), MakeStyle(26, FontStyle.Bold, lc, TextAnchor.MiddleCenter));
}
// Weapon tag
if (isWeapon)
{
Color tc = isEquipped ? colWeaponAccent : new Color(0.6f, 0.5f, 0.2f, 1f);
GUI.Label(new Rect(sx + 3f, sy + 2f, 40f, 12f),
isEquipped ? "EQUIP" : "WPN", MakeStyle(8, FontStyle.Bold, tc, TextAnchor.UpperLeft));
}
// Right-click hint on hovered slot
if (isHover)
{
GUIStyle hint = MakeStyle(8, FontStyle.Normal, new Color(0.6f, 0.6f, 0.6f, 0.9f), TextAnchor.LowerRight);
GUI.Label(new Rect(sx + 2f, sy + 2f, kSlotSize - 4f, kSlotSize - 4f), "RMB ▾", hint);
}
// Item name
string dn = entry.DisplayName.Length > 10 ? entry.DisplayName.Substring(0, 9) + "…" : entry.DisplayName;
Color nc = isEquipped ? colWeaponAccent : (isSel ? Color.white : colText);
GUI.Label(new Rect(sx + 2f, sy + kSlotSize - 28f, kSlotSize - 4f, 16f),
dn, MakeStyle(9, FontStyle.Bold, nc, TextAnchor.LowerCenter));
// Count badge
if (entry.count > 1)
{
DrawRect(new Rect(sx + kSlotSize - 22f, sy + kSlotSize - 18f, 20f, 16f), new Color(0, 0, 0, 0.7f));
GUI.Label(new Rect(sx + kSlotSize - 22f, sy + kSlotSize - 18f, 19f, 16f),
$"x{entry.count}", MakeStyle(10, FontStyle.Bold, Color.white, TextAnchor.LowerRight));
}
}
// ── Detail panel ──────────────────────────────────────────────
float detailY = gy + gridH + kPanelPad;
Rect detailRect = new Rect(panelX + kPanelPad, detailY, panelW - kPanelPad * 2f, kDetailPanelH - kPanelPad);
DrawBorderedBox(detailRect, new Color(0.08f, 0.08f, 0.08f, 1f), colBorder, 1f);
if (_selectedIndex < items.Count)
{
InventoryEntry sel = items[_selectedIndex];
float dy = detailRect.y + 8f;
float dx = detailRect.x + 10f;
float dw = detailRect.width - 20f;
GUI.Label(new Rect(dx, dy, dw, 16f), "SELECTED", MakeStyle(10, FontStyle.Normal, colDim, TextAnchor.UpperLeft));
GUI.Label(new Rect(dx, dy + 16f, dw, 22f), sel.DisplayName, MakeStyle(14, FontStyle.Bold, colText, TextAnchor.UpperLeft));
string desc = (sel.definition != null && sel.definition.description != "")
? sel.definition.description : (sel.IsWeapon ? "Weapon" : "Item");
GUI.Label(new Rect(dx, dy + 38f, dw * 0.65f, 30f), desc, MakeStyle(10, FontStyle.Normal, colDim, TextAnchor.UpperLeft));
if (sel.IsEquippable)
{
Color wc = sel.isEquipped ? colWeaponAccent : colDim;
string tag = sel.isEquipped ? "▶ EQUIPPED" : "right-click or [F] to equip";
GUI.Label(new Rect(dx, dy + 68f, dw, 18f), tag, MakeStyle(11, FontStyle.Bold, wc, TextAnchor.UpperLeft));
}
else if (sel.count > 1)
{
GUI.Label(new Rect(dx, dy + 68f, dw, 18f), $"Quantity: {sel.count}",
MakeStyle(11, FontStyle.Bold, colAccent, TextAnchor.UpperLeft));
}
// Equip / Unequip button bottom-right of detail panel
if (sel.IsEquippable)
{
Rect btnRect = new Rect(detailRect.x + detailRect.width - 110f,
detailRect.y + detailRect.height - 34f, 100f, 26f);
if (sel.isEquipped)
{
DrawBorderedBox(btnRect, new Color(0.4f, 0.15f, 0.05f, 1f), colWeaponAccent, 1f);
GUI.Label(btnRect, "[ F ] UNEQUIP", MakeStyle(11, FontStyle.Bold, Color.white, TextAnchor.MiddleCenter));
if (GUI.Button(btnRect, "", GUIStyle.none)) UnequipItem(_selectedIndex);
}
else
{
DrawBorderedBox(btnRect, colSlotEquipped, colWeaponAccent, 1f);
GUI.Label(btnRect, "[ F ] EQUIP", MakeStyle(11, FontStyle.Bold, Color.white, TextAnchor.MiddleCenter));
if (GUI.Button(btnRect, "", GUIStyle.none)) EquipItem(_selectedIndex);
}
}
}
else
{
GUI.Label(detailRect, "No item selected", MakeStyle(11, FontStyle.Normal, colDim, TextAnchor.MiddleCenter));
}
// Hints
GUIStyle hintStyle = MakeStyle(10, FontStyle.Normal, colDim, TextAnchor.LowerRight);
GUI.Label(new Rect(panelX, panelY + panelH - 18f, panelW - 8f, 16f), "[ I ] close | RMB slot for options", hintStyle);
// ── Context menu (drawn last so it's on top) ──────────────────
if (_ctxOpen)
DrawContextMenu(mouse);
}
// ─── Context menu draw ────────────────────────────────────────────
Rect GetCtxRect()
{
float menuH = _ctxActions.Count * kCtxItemH + 8f;
return new Rect(_ctxPos.x, _ctxPos.y, kCtxWidth, menuH);
}
void DrawContextMenu(Vector2 mouse)
{
float menuH = _ctxActions.Count * kCtxItemH + 8f;
Rect bgRect = new Rect(_ctxPos.x, _ctxPos.y, kCtxWidth, menuH);
// Shadow
DrawRect(new Rect(bgRect.x + 3f, bgRect.y + 3f, bgRect.width, bgRect.height),
new Color(0f, 0f, 0f, 0.45f));
// Background + border
DrawBorderedBox(bgRect, colCtxBg, colCtxBorder, 1.5f);
// Header strip — item name
if (_ctxItemIndex >= 0 && _ctxItemIndex < items.Count)
{
string title = items[_ctxItemIndex].DisplayName;
DrawRect(new Rect(bgRect.x + 1.5f, bgRect.y + 1.5f, bgRect.width - 3f, 20f),
new Color(0.15f, 0.22f, 0.15f, 1f));
GUI.Label(new Rect(bgRect.x + kCtxPadX, bgRect.y + 3f, kCtxWidth - kCtxPadX * 2f, 16f),
title.ToUpper(), MakeStyle(9, FontStyle.Bold, colWeaponAccent, TextAnchor.MiddleLeft));
}
// Action rows
for (int i = 0; i < _ctxActions.Count; i++)
{
float rowY = bgRect.y + 22f + i * kCtxItemH;
Rect rowRect = new Rect(bgRect.x + 1.5f, rowY, bgRect.width - 3f, kCtxItemH);
bool hover = rowRect.Contains(mouse);
if (hover)
DrawRect(rowRect, colCtxHover);
Color textColor = _ctxActions[i].isDestructive
? (hover ? Color.white : colCtxDestructive)
: (hover ? Color.white : colCtxText);
GUI.Label(new Rect(bgRect.x + kCtxPadX, rowY + 2f, kCtxWidth - kCtxPadX * 2f, kCtxItemH - 4f),
_ctxActions[i].label, MakeStyle(12, FontStyle.Normal, textColor, TextAnchor.MiddleLeft));
// Separator line between items
if (i < _ctxActions.Count - 1)
DrawRect(new Rect(bgRect.x + 6f, rowY + kCtxItemH - 1f, bgRect.width - 12f, 1f),
new Color(1f, 1f, 1f, 0.06f));
// Click to fire action
if (hover && Event.current.type == EventType.MouseDown && Event.current.button == 0)
{
_ctxActions[i].callback?.Invoke();
CloseContextMenu();
Event.current.Use();
}
}
}
// ─── Style / Draw helpers ─────────────────────────────────────────
static GUIStyle MakeStyle(int size, FontStyle style, Color color, TextAnchor align)
{
var s = new GUIStyle();
s.fontSize = size;
s.fontStyle = style;
s.normal.textColor = color;
s.alignment = align;
return s;
}
static void DrawRect(Rect r, Color c)
{
Color prev = GUI.color;
GUI.color = c;
GUI.DrawTexture(r, Texture2D.whiteTexture);
GUI.color = prev;
}
static void DrawBorderedBox(Rect r, Color fill, Color border, float thickness)
{
DrawRect(r, border);
DrawRect(new Rect(r.x + thickness, r.y + thickness,
r.width - thickness * 2f,
r.height - thickness * 2f), fill);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 514ba78e0d4cf8b4787471c2db0c6976

View File

@@ -0,0 +1,28 @@
using UnityEngine;
/// <summary>
/// Create via right-click → Create → OGG → Item Definition
/// Drag onto PickupItem components in the scene.
/// </summary>
[CreateAssetMenu(fileName = "New Item", menuName = "OGG/Item Definition")]
public class ItemDefinition : ScriptableObject
{
public enum ItemType { Misc, Consumable, Weapon }
[Header("Identity")]
public string itemName = "Unnamed Item";
public Sprite icon;
public ItemType type = ItemType.Misc;
[Header("Weapon (only if type == Weapon)")]
[Tooltip("The prefab that gets spawned in the weapon holder when this is equipped.")]
public GameObject weaponPrefab;
[Header("Equipment")]
[Tooltip("If true, this item can be equipped/unequipped from the inventory even if it isn't a weapon.")]
public bool isEquippable = false;
[Header("Flavour")]
[TextArea(2, 4)]
public string description = "";
}

Some files were not shown because too many files have changed in this diff Show More