diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index f6b17c6..1c67444 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -55,20 +55,25 @@
+
+
+
+
+
@@ -77,6 +82,7 @@
+
@@ -110,6 +116,7 @@
+
diff --git a/Assets/DefaultNetworkPrefabs.asset b/Assets/DefaultNetworkPrefabs.asset
index e98a4ce..92ac64b 100644
--- a/Assets/DefaultNetworkPrefabs.asset
+++ b/Assets/DefaultNetworkPrefabs.asset
@@ -29,3 +29,13 @@ MonoBehaviour:
SourcePrefabToOverride: {fileID: 0}
SourceHashToOverride: 0
OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 2938167817760513538, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
+ - Override: 0
+ Prefab: {fileID: 8124290768227340041, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
+ SourcePrefabToOverride: {fileID: 0}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 0}
diff --git a/Assets/Materials/FogOfWarMaterial.mat b/Assets/Materials/FogOfWarMaterial.mat
new file mode 100644
index 0000000..b1b878f
--- /dev/null
+++ b/Assets/Materials/FogOfWarMaterial.mat
@@ -0,0 +1,138 @@
+%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: FogOfWarMaterial
+ m_Shader: {fileID: 4800000, guid: 1a32b22331996294f8eb2b7ac12d1c6b, 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: {}
+ disabledShaderPasses:
+ - MOTIONVECTORS
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AddPrecomputedVelocity: 0
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.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}
+ - _ExploredColor: {r: 0, g: 0, b: 0, a: 0.5}
+ - _FogColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
+--- !u!114 &638105198768402788
+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
diff --git a/Assets/Materials/FogOfWarMaterial.mat.meta b/Assets/Materials/FogOfWarMaterial.mat.meta
new file mode 100644
index 0000000..aaa55ef
--- /dev/null
+++ b/Assets/Materials/FogOfWarMaterial.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eb0604feb76547a488648224ebb23e77
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/Core.prefab b/Assets/Prefabs/Core.prefab
index 3620c95..8e00086 100644
--- a/Assets/Prefabs/Core.prefab
+++ b/Assets/Prefabs/Core.prefab
@@ -9,6 +9,9 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8064559726283331702}
+ - component: {fileID: 5173262576415873253}
+ - component: {fileID: 1287070985890992582}
+ - component: {fileID: 945062474581833766}
m_Layer: 0
m_Name: Core
m_TagString: Untagged
@@ -32,6 +35,70 @@ Transform:
- {fileID: 2126198199081001988}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &5173262576415873253
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8124290768227340041}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 1288120633
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 0
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &1287070985890992582
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8124290768227340041}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7c94274e2af2c8d4f827fe52b26c4410, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.Core
+ ShowTopMostFoldoutHeaderGroup: 1
+ maxStorageCapacity: 1000
+ unlimitedStorage: 0
+ depositAll: 1
+ depositAmountPerInteraction: 10
+ interactionAnimationTrigger: Deposit
+ equipmentData:
+ socketName: RightHand
+ equipmentPrefab: {fileID: 0}
+ attachOnStart: 1
+ detachOnEnd: 1
+ depositEffectPrefab: {fileID: 0}
+ effectSpawnPoint: {fileID: 0}
+--- !u!114 &945062474581833766
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8124290768227340041}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b59ae4328ce49c846b20d7a6d7ce7e47, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.BuildingVisionProvider
+ ShowTopMostFoldoutHeaderGroup: 1
+ visionRange: 15
--- !u!1001 &1876730568674182127
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab
index ebf547b..5ce18da 100644
--- a/Assets/Prefabs/Player.prefab
+++ b/Assets/Prefabs/Player.prefab
@@ -19,6 +19,7 @@ GameObject:
- component: {fileID: 9062880697264624749}
- component: {fileID: 6066313428661204362}
- component: {fileID: 2443072964133329520}
+ - component: {fileID: 2148255267416253297}
m_Layer: 0
m_Name: Player
m_TagString: Untagged
@@ -54,7 +55,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
- GlobalObjectIdHash: 2891269852
+ GlobalObjectIdHash: 4211758632
InScenePlacedSourceGlobalObjectIdHash: 4211758632
DeferredDespawnTick: 0
Ownership: 1
@@ -242,6 +243,20 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.PlayerResourceInventory
ShowTopMostFoldoutHeaderGroup: 1
maxResourceCapacity: 50
+--- !u!114 &2148255267416253297
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1314983689436087486}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 81d070574968f0d45be51307e2dfed64, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.PlayerVisionProvider
+ ShowTopMostFoldoutHeaderGroup: 1
+ visionRange: 10
--- !u!1001 &1445453803682481668
PrefabInstance:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/Wall.prefab b/Assets/Prefabs/Wall.prefab
new file mode 100644
index 0000000..3b92bb4
--- /dev/null
+++ b/Assets/Prefabs/Wall.prefab
@@ -0,0 +1,125 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &2596063234185536339
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -8
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.000000021855694
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: 'm_Materials.Array.data[0]'
+ value:
+ objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
+ - target: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ propertyPath: m_Name
+ value: Wall
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1591641544412467547}
+ - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1638952835164862066}
+ m_SourcePrefab: {fileID: 100100000, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+--- !u!1 &2938167817760513538 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ m_PrefabInstance: {fileID: 2596063234185536339}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1591641544412467547
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2938167817760513538}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 3026494903
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 0
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &1638952835164862066
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2938167817760513538}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b59ae4328ce49c846b20d7a6d7ce7e47, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.BuildingVisionProvider
+ ShowTopMostFoldoutHeaderGroup: 1
+ visionRange: 15
diff --git a/Assets/Prefabs/Wall.prefab.meta b/Assets/Prefabs/Wall.prefab.meta
new file mode 100644
index 0000000..7f844e2
--- /dev/null
+++ b/Assets/Prefabs/Wall.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 04e95700704d92248b63ce5674bd9638
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/GameMain.unity b/Assets/Scenes/GameMain.unity
index afc5a99..602e725 100644
--- a/Assets/Scenes/GameMain.unity
+++ b/Assets/Scenes/GameMain.unity
@@ -305,7 +305,7 @@ MonoBehaviour:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
m_EffectDistance: {x: 1, y: -1}
m_UseGraphicAlpha: 1
---- !u!1001 &378823424
+--- !u!1001 &324420007
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
@@ -313,144 +313,68 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1068750869}
m_Modifications:
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.x
- value: 2
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 2015005341
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.y
- value: 2
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 2718147317
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.z
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalPosition.x
- value: 8
+ value: -18.5
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalRotation.x
value: 0.000000021855694
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: 'm_Materials.Array.data[0]'
- value:
- objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
- - target: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ - target: {fileID: 2938167817760513538, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
propertyPath: m_Name
- value: Wall (2)
+ value: Wall (1)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
---- !u!1001 &383372408
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1068750869}
- m_Modifications:
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.x
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.y
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.z
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.x
- value: 16
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0.000000021855694
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: 'm_Materials.Array.data[0]'
- value:
- objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
- - target: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_Name
- value: Wall (3)
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ m_SourcePrefab: {fileID: 100100000, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+--- !u!4 &324420008 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ m_PrefabInstance: {fileID: 324420007}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &447015514
GameObject:
m_ObjectHideFlags: 0
@@ -486,11 +410,6 @@ Transform:
- {fileID: 2098115308}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &448767617 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- m_PrefabInstance: {fileID: 579997178}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &457600242
GameObject:
m_ObjectHideFlags: 0
@@ -794,152 +713,6 @@ MonoBehaviour:
m_PostInfinity: 2
m_RotationOrder: 4
CustomBlends: {fileID: 0}
---- !u!1001 &579997178
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1068750869}
- m_Modifications:
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.x
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.y
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.z
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.x
- value: -16
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0.000000021855694
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: 'm_Materials.Array.data[0]'
- value:
- objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
- - target: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_Name
- value: Wall (1)
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
---- !u!1001 &588824321
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1068750869}
- m_Modifications:
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalScale.x
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalScale.y
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalScale.z
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0.000000021855694
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: 'm_Materials.Array.data[0]'
- value:
- objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
- - target: {fileID: 919132149155446097, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- propertyPath: m_Name
- value: Wall_Doorway
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
--- !u!1001 &629469723
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1014,6 +787,76 @@ Transform:
m_CorrespondingSourceObject: {fileID: 922888705413710451, guid: 5662d0b0d0eb5f54290edd8dd0980b57, type: 3}
m_PrefabInstance: {fileID: 629469723}
m_PrefabAsset: {fileID: 0}
+--- !u!1001 &635112512
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 1068750869}
+ m_Modifications:
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 3733343362
+ objectReference: {fileID: 0}
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 2718147317
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.000000021855694
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2938167817760513538, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_Name
+ value: Wall (3)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+--- !u!4 &635112513 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ m_PrefabInstance: {fileID: 635112512}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &782070680
GameObject:
m_ObjectHideFlags: 0
@@ -1141,11 +984,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
---- !u!4 &788941389 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- m_PrefabInstance: {fileID: 383372408}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &908127335
GameObject:
m_ObjectHideFlags: 0
@@ -1283,6 +1121,82 @@ RectTransform:
m_AnchoredPosition: {x: 160, y: -70}
m_SizeDelta: {x: 300, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &946527916
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 946527919}
+ - component: {fileID: 946527917}
+ - component: {fileID: 946527918}
+ m_Layer: 0
+ m_Name: FogOfWarSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &946527917
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 946527916}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
+ GlobalObjectIdHash: 4164509128
+ InScenePlacedSourceGlobalObjectIdHash: 0
+ DeferredDespawnTick: 0
+ Ownership: 1
+ AlwaysReplicateAsRoot: 0
+ SynchronizeTransform: 1
+ ActiveSceneSynchronization: 0
+ SceneMigrationSynchronization: 0
+ SpawnWithObservers: 1
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+ SyncOwnerTransformWhenParented: 1
+ AllowOwnerToParent: 0
+--- !u!114 &946527918
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 946527916}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9e73da29c7794e445a17b7d28a61cdb3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarSystem
+ ShowTopMostFoldoutHeaderGroup: 1
+ gridWidth: 100
+ gridHeight: 1000
+ cellSize: 1
+ worldOrigin: {x: -50, y: 0, z: -200}
+ updateInterval: 0.2
+--- !u!4 &946527919
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 946527916}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 5, z: -50}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &955933983
GameObject:
m_ObjectHideFlags: 0
@@ -1462,17 +1376,11 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1685319252}
- - {fileID: 1313237195}
- - {fileID: 788941389}
- - {fileID: 448767617}
- - {fileID: 1113397316}
+ - {fileID: 324420008}
+ - {fileID: 1457864236}
+ - {fileID: 635112513}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &1113397316 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: b0ec490e44836ee4387c63d21980611c, type: 3}
- m_PrefabInstance: {fileID: 588824321}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &1142746332
GameObject:
m_ObjectHideFlags: 0
@@ -1673,11 +1581,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!4 &1313237195 stripped
-Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- m_PrefabInstance: {fileID: 378823424}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &1433142230
GameObject:
m_ObjectHideFlags: 0
@@ -1800,6 +1703,76 @@ MonoBehaviour:
spawnPoints: []
useRandomSpawn: 0
findSpawnPointsAutomatically: 1
+--- !u!1001 &1457864235
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 1068750869}
+ m_Modifications:
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 1548053960
+ objectReference: {fileID: 0}
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 2718147317
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -29.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.000000021855694
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2938167817760513538, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_Name
+ value: Wall (2)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+--- !u!4 &1457864236 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ m_PrefabInstance: {fileID: 1457864235}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &1536695129
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1971,82 +1944,118 @@ MonoBehaviour:
BlendHint: 0
--- !u!4 &1685319252 stripped
Transform:
- m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- m_PrefabInstance: {fileID: 1880237668}
+ m_CorrespondingSourceObject: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ m_PrefabInstance: {fileID: 6880333684802239182}
m_PrefabAsset: {fileID: 0}
---- !u!1001 &1880237668
-PrefabInstance:
+--- !u!1 &1701756764
+GameObject:
m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1701756768}
+ - component: {fileID: 1701756767}
+ - component: {fileID: 1701756766}
+ - component: {fileID: 1701756765}
+ m_Layer: 0
+ m_Name: FogOfWarOverlay
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1701756765
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1701756764}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a04555e5afcce6848ba5f06cf14a7f17, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Northbound.FogOfWarRenderer
+ fogMaterial: {fileID: 2100000, guid: eb0604feb76547a488648224ebb23e77, type: 2}
+ updateInterval: 0.1
+ fogHeight: 5
+ unexploredColor: {r: 0, g: 0, b: 0, a: 1}
+ exploredColor: {r: 0, g: 0, b: 0, a: 0.6}
+ visibleColor: {r: 0, g: 0, b: 0, a: 0}
+--- !u!23 &1701756766
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1701756764}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: eb0604feb76547a488648224ebb23e77, 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!33 &1701756767
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1701756764}
+ m_Mesh: {fileID: 0}
+--- !u!4 &1701756768
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1701756764}
serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1068750869}
- m_Modifications:
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.x
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.y
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalScale.z
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.x
- value: -8
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0.000000021855694
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -8679921383154817045, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: -7511558181221131132, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: 'm_Materials.Array.data[0]'
- value:
- objectReference: {fileID: 2100000, guid: d64c307f1b4197c44970c29f9845c245, type: 2}
- - target: {fileID: 919132149155446097, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
- propertyPath: m_Name
- value: Wall
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 244a8d70d41b1a948beb2221c7c0efa9, type: 3}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.16227, y: 1.00001, z: -48.21116}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1975225896
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2270,6 +2279,18 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
+ - target: {fileID: 945062474581833766, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
+ propertyPath: visionRange
+ value: 40
+ objectReference: {fileID: 0}
+ - target: {fileID: 5173262576415873253, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 3998537868
+ objectReference: {fileID: 0}
+ - target: {fileID: 5173262576415873253, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 615747208
+ objectReference: {fileID: 0}
- target: {fileID: 8064559726283331702, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
propertyPath: m_LocalPosition.x
value: 0
@@ -2317,13 +2338,7 @@ PrefabInstance:
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
- m_AddedComponents:
- - targetCorrespondingSourceObject: {fileID: 8124290768227340041, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
- insertIndex: -1
- addedObject: {fileID: 8940572951313384065}
- - targetCorrespondingSourceObject: {fileID: 8124290768227340041, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
- insertIndex: -1
- addedObject: {fileID: 8940572951313384066}
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
--- !u!1001 &4875211098963642791
PrefabInstance:
@@ -2386,61 +2401,82 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f395fcc064a3a834ba957327f1387c19, type: 3}
---- !u!1 &8940572951313384064 stripped
-GameObject:
- m_CorrespondingSourceObject: {fileID: 8124290768227340041, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
+--- !u!1001 &6880333684802239182
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 1068750869}
+ m_Modifications:
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 2997679665
+ objectReference: {fileID: 0}
+ - target: {fileID: 1591641544412467547, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: InScenePlacedSourceGlobalObjectIdHash
+ value: 2718147317
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -8
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.000000021855694
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2561889291515577528, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2938167817760513538, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+ propertyPath: m_Name
+ value: Wall
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 04e95700704d92248b63ce5674bd9638, type: 3}
+--- !u!114 &8940572951313384066 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 1287070985890992582, guid: e56926eda34629f4fbf3e4c53f0f8bd4, type: 3}
m_PrefabInstance: {fileID: 4786254629656932894}
m_PrefabAsset: {fileID: 0}
---- !u!114 &8940572951313384065
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8940572951313384064}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
- m_Name:
- m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
- GlobalObjectIdHash: 1288120633
- InScenePlacedSourceGlobalObjectIdHash: 0
- DeferredDespawnTick: 0
- Ownership: 1
- AlwaysReplicateAsRoot: 0
- SynchronizeTransform: 1
- ActiveSceneSynchronization: 0
- SceneMigrationSynchronization: 0
- SpawnWithObservers: 1
- DontDestroyWithOwner: 0
- AutoObjectParentSync: 1
- SyncOwnerTransformWhenParented: 1
- AllowOwnerToParent: 0
---- !u!114 &8940572951313384066
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8940572951313384064}
+ m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7c94274e2af2c8d4f827fe52b26c4410, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Northbound.Core
- ShowTopMostFoldoutHeaderGroup: 1
- maxStorageCapacity: 1000
- unlimitedStorage: 0
- depositAll: 1
- depositAmountPerInteraction: 10
- interactionAnimationTrigger: Deposit
- equipmentData:
- socketName: RightHand
- equipmentPrefab: {fileID: 0}
- attachOnStart: 1
- detachOnEnd: 1
- depositEffectPrefab: {fileID: 0}
- effectSpawnPoint: {fileID: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
@@ -2458,3 +2494,5 @@ SceneRoots:
- {fileID: 955933985}
- {fileID: 457600247}
- {fileID: 1166878644}
+ - {fileID: 946527919}
+ - {fileID: 1701756768}
diff --git a/Assets/Scripts/BuildingVisionProvider.cs b/Assets/Scripts/BuildingVisionProvider.cs
new file mode 100644
index 0000000..32d0de2
--- /dev/null
+++ b/Assets/Scripts/BuildingVisionProvider.cs
@@ -0,0 +1,48 @@
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Northbound
+{
+ ///
+ /// 건물의 시야 제공 컴포넌트
+ ///
+ public class BuildingVisionProvider : NetworkBehaviour, IVisionProvider
+ {
+ [Header("Vision Settings")]
+ public float visionRange = 15f;
+
+ private Building _building;
+
+ private void Awake()
+ {
+ _building = GetComponent();
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ if (IsServer)
+ {
+ FogOfWarSystem.Instance?.RegisterVisionProvider(this);
+ }
+ }
+
+ public override void OnNetworkDespawn()
+ {
+ if (IsServer)
+ {
+ FogOfWarSystem.Instance?.UnregisterVisionProvider(this);
+ }
+ }
+
+ public ulong GetOwnerId() => OwnerClientId;
+ public float GetVisionRange() => visionRange;
+ public Transform GetTransform() => transform;
+ public bool IsActive() => IsSpawned;
+
+ private void OnDrawGizmosSelected()
+ {
+ Gizmos.color = Color.cyan;
+ Gizmos.DrawWireSphere(transform.position, visionRange);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/BuildingVisionProvider.cs.meta b/Assets/Scripts/BuildingVisionProvider.cs.meta
new file mode 100644
index 0000000..651619d
--- /dev/null
+++ b/Assets/Scripts/BuildingVisionProvider.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: b59ae4328ce49c846b20d7a6d7ce7e47
\ No newline at end of file
diff --git a/Assets/Scripts/FogOfWarRenderer.cs b/Assets/Scripts/FogOfWarRenderer.cs
new file mode 100644
index 0000000..b642550
--- /dev/null
+++ b/Assets/Scripts/FogOfWarRenderer.cs
@@ -0,0 +1,186 @@
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Northbound
+{
+ ///
+ /// 전장의 안개 시각적 렌더링 (클라이언트)
+ ///
+ [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
+ public class FogOfWarRenderer : MonoBehaviour
+ {
+ [Header("Settings")]
+ public Material fogMaterial;
+ public float updateInterval = 0.1f;
+ public float fogHeight = 5f; // 안개 높이 (지형보다 약간 위)
+
+ [Header("Colors")]
+ public Color unexploredColor = new Color(0, 0, 0, 1f); // 완전히 어두움
+ public Color exploredColor = new Color(0, 0, 0, 0.6f); // 반투명
+ public Color visibleColor = new Color(0, 0, 0, 0f); // 투명
+
+ private Texture2D _fogTexture;
+ private Color[] _colors;
+ private MeshRenderer _meshRenderer;
+ private float _updateTimer;
+ private ulong _localClientId;
+ private bool _isInitialized;
+
+ private void Start()
+ {
+ // NetworkManager 준비 대기
+ if (NetworkManager.Singleton == null || !NetworkManager.Singleton.IsClient)
+ {
+ Debug.LogWarning("[FogOfWar] NetworkManager가 준비되지 않았습니다. 대기 중...");
+ return;
+ }
+
+ Initialize();
+ }
+
+ private void Initialize()
+ {
+ if (_isInitialized) return;
+
+ _localClientId = NetworkManager.Singleton.LocalClientId;
+
+ var fogSystem = FogOfWarSystem.Instance;
+ if (fogSystem == null)
+ {
+ Debug.LogError("[FogOfWar] FogOfWarSystem을 찾을 수 없습니다! 씬에 FogOfWarSystem GameObject가 있는지 확인하세요.");
+ return;
+ }
+
+ // 텍스처 생성
+ _fogTexture = new Texture2D(fogSystem.gridWidth, fogSystem.gridHeight)
+ {
+ filterMode = FilterMode.Bilinear,
+ wrapMode = TextureWrapMode.Clamp
+ };
+ _colors = new Color[fogSystem.gridWidth * fogSystem.gridHeight];
+
+ // 초기 색상을 미탐색 상태로 설정
+ for (int i = 0; i < _colors.Length; i++)
+ {
+ _colors[i] = unexploredColor;
+ }
+ _fogTexture.SetPixels(_colors);
+ _fogTexture.Apply();
+
+ // 머티리얼 설정
+ _meshRenderer = GetComponent();
+ if (fogMaterial != null)
+ {
+ Material instanceMaterial = new Material(fogMaterial);
+ instanceMaterial.mainTexture = _fogTexture;
+ _meshRenderer.material = instanceMaterial;
+ }
+ else
+ {
+ Debug.LogWarning("[FogOfWar] Fog Material이 설정되지 않았습니다!");
+ }
+
+ // 렌더링 레이어 설정
+ gameObject.layer = LayerMask.NameToLayer("UI"); // 또는 별도 레이어 생성
+
+ // 메쉬 생성
+ CreatePlaneMesh(fogSystem);
+
+ _isInitialized = true;
+ Debug.Log($"[FogOfWar] 렌더러 초기화 완료 (Client {_localClientId})");
+ }
+
+ private void Update()
+ {
+ // NetworkManager가 준비되지 않았다면 초기화 시도
+ if (!_isInitialized && NetworkManager.Singleton != null && NetworkManager.Singleton.IsClient)
+ {
+ Initialize();
+ return;
+ }
+
+ if (!_isInitialized) return;
+
+ _updateTimer += Time.deltaTime;
+ if (_updateTimer >= updateInterval)
+ {
+ _updateTimer = 0f;
+ UpdateFogTexture();
+ }
+ }
+
+ private void UpdateFogTexture()
+ {
+ var fogSystem = FogOfWarSystem.Instance;
+ if (fogSystem == null) return;
+
+ var fogData = fogSystem.GetPlayerFogData(_localClientId);
+
+ for (int y = 0; y < fogSystem.gridHeight; y++)
+ {
+ for (int x = 0; x < fogSystem.gridWidth; x++)
+ {
+ FogOfWarState state = fogData.GetState(x, y);
+ int index = y * fogSystem.gridWidth + x;
+
+ _colors[index] = state switch
+ {
+ FogOfWarState.Visible => visibleColor,
+ FogOfWarState.Explored => exploredColor,
+ FogOfWarState.Unexplored => unexploredColor,
+ _ => unexploredColor
+ };
+ }
+ }
+
+ _fogTexture.SetPixels(_colors);
+ _fogTexture.Apply();
+ }
+
+ private void CreatePlaneMesh(FogOfWarSystem fogSystem)
+ {
+ MeshFilter meshFilter = GetComponent();
+
+ float width = fogSystem.gridWidth * fogSystem.cellSize;
+ float height = fogSystem.gridHeight * fogSystem.cellSize;
+
+ Mesh mesh = new Mesh
+ {
+ name = "FogOfWar Plane"
+ };
+
+ mesh.vertices = new Vector3[]
+ {
+ new Vector3(0, fogHeight, 0),
+ new Vector3(width, fogHeight, 0),
+ new Vector3(0, fogHeight, height),
+ new Vector3(width, fogHeight, height)
+ };
+
+ mesh.triangles = new int[] { 0, 2, 1, 2, 3, 1 };
+
+ mesh.uv = new Vector2[]
+ {
+ new Vector2(0, 0),
+ new Vector2(1, 0),
+ new Vector2(0, 1),
+ new Vector2(1, 1)
+ };
+
+ mesh.RecalculateNormals();
+
+ meshFilter.mesh = mesh;
+ transform.position = fogSystem.worldOrigin;
+
+ Debug.Log($"[FogOfWar] Plane Mesh 생성 완료: {width}x{height} at {fogSystem.worldOrigin}");
+ }
+
+ private void OnDestroy()
+ {
+ if (_fogTexture != null)
+ {
+ Destroy(_fogTexture);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/FogOfWarRenderer.cs.meta b/Assets/Scripts/FogOfWarRenderer.cs.meta
new file mode 100644
index 0000000..d46af99
--- /dev/null
+++ b/Assets/Scripts/FogOfWarRenderer.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: a04555e5afcce6848ba5f06cf14a7f17
\ No newline at end of file
diff --git a/Assets/Scripts/FogOfWarSystem.cs b/Assets/Scripts/FogOfWarSystem.cs
new file mode 100644
index 0000000..826859d
--- /dev/null
+++ b/Assets/Scripts/FogOfWarSystem.cs
@@ -0,0 +1,397 @@
+using System.Collections.Generic;
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Northbound
+{
+ ///
+ /// 전장의 안개 시스템 - 플레이어별 시야 관리
+ ///
+ public class FogOfWarSystem : NetworkBehaviour
+ {
+ public static FogOfWarSystem Instance { get; private set; }
+
+ [Header("Grid Settings")]
+ public int gridWidth = 100;
+ public int gridHeight = 100;
+ public float cellSize = 1f;
+ public Vector3 worldOrigin = Vector3.zero;
+
+ [Header("Visibility Settings")]
+ public float updateInterval = 0.2f;
+
+ // 서버: 각 플레이어별 가시성 맵
+ private Dictionary _serverFogData = new Dictionary();
+
+ // 클라이언트: 로컬 플레이어의 가시성 맵
+ private FogOfWarData _localFogData;
+
+ private List _visionProviders = new List();
+ private float _updateTimer;
+
+ private void Awake()
+ {
+ if (Instance != null && Instance != this)
+ {
+ Destroy(gameObject);
+ return;
+ }
+ Instance = this;
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ base.OnNetworkSpawn();
+
+ if (IsClient && !IsServer)
+ {
+ // 클라이언트는 로컬 데이터 초기화
+ _localFogData = new FogOfWarData(gridWidth, gridHeight);
+ Debug.Log($"[FogOfWar] 클라이언트 {NetworkManager.LocalClientId} 초기화");
+ }
+ }
+
+ private void Update()
+ {
+ if (!IsServer) return;
+
+ _updateTimer += Time.deltaTime;
+ if (_updateTimer >= updateInterval)
+ {
+ _updateTimer = 0f;
+ UpdateAllVision();
+ }
+ }
+
+ ///
+ /// 시야 제공자 등록 (플레이어, 건물 등)
+ ///
+ public void RegisterVisionProvider(IVisionProvider provider)
+ {
+ if (!_visionProviders.Contains(provider))
+ {
+ _visionProviders.Add(provider);
+ Debug.Log($"[FogOfWar] Vision Provider 등록: {provider.GetTransform().name} (Owner: {provider.GetOwnerId()})");
+ }
+ }
+
+ ///
+ /// 시야 제공자 등록 해제
+ ///
+ public void UnregisterVisionProvider(IVisionProvider provider)
+ {
+ _visionProviders.Remove(provider);
+ }
+
+ ///
+ /// 플레이어별 FogOfWar 데이터 가져오기
+ ///
+ public FogOfWarData GetPlayerFogData(ulong clientId)
+ {
+ // 클라이언트는 자신의 로컬 데이터 반환
+ if (IsClient && !IsServer)
+ {
+ return _localFogData;
+ }
+
+ // 서버는 해당 클라이언트의 데이터 반환
+ if (!_serverFogData.ContainsKey(clientId))
+ {
+ _serverFogData[clientId] = new FogOfWarData(gridWidth, gridHeight);
+ }
+ return _serverFogData[clientId];
+ }
+
+ ///
+ /// 모든 시야 업데이트 (서버만)
+ ///
+ private void UpdateAllVision()
+ {
+ // 각 플레이어의 현재 시야 초기화
+ foreach (var fogData in _serverFogData.Values)
+ {
+ fogData.ClearCurrentVision();
+ }
+
+ // 모든 시야 제공자의 시야 범위 계산
+ foreach (var provider in _visionProviders)
+ {
+ if (provider == null || !provider.IsActive()) continue;
+
+ ulong ownerId = provider.GetOwnerId();
+ if (!_serverFogData.ContainsKey(ownerId))
+ {
+ _serverFogData[ownerId] = new FogOfWarData(gridWidth, gridHeight);
+ }
+
+ Vector3 position = provider.GetTransform().position;
+ float visionRange = provider.GetVisionRange();
+
+ RevealArea(ownerId, position, visionRange);
+ }
+
+ // 각 클라이언트에게 시야 데이터 전송
+ foreach (var kvp in _serverFogData)
+ {
+ ulong clientId = kvp.Key;
+ FogOfWarData fogData = kvp.Value;
+
+ // 압축된 데이터로 전송
+ byte[] visibleData = fogData.GetVisibleData();
+ byte[] exploredData = fogData.GetExploredData();
+
+ SendFogDataToClientRpc(visibleData, exploredData,
+ new ClientRpcParams
+ {
+ Send = new ClientRpcSendParams
+ {
+ TargetClientIds = new ulong[] { clientId }
+ }
+ });
+ }
+ }
+
+ ///
+ /// 클라이언트에게 안개 데이터 전송
+ ///
+ [ClientRpc]
+ private void SendFogDataToClientRpc(byte[] visibleData, byte[] exploredData, ClientRpcParams clientRpcParams = default)
+ {
+ if (_localFogData == null)
+ {
+ _localFogData = new FogOfWarData(gridWidth, gridHeight);
+ }
+
+ _localFogData.SetVisibleData(visibleData);
+ _localFogData.SetExploredData(exploredData);
+ }
+
+ ///
+ /// 특정 영역을 밝힘 (서버만)
+ ///
+ private void RevealArea(ulong clientId, Vector3 worldPosition, float radius)
+ {
+ FogOfWarData fogData = _serverFogData[clientId];
+ Vector2Int gridPos = WorldToGrid(worldPosition);
+
+ int cellRadius = Mathf.CeilToInt(radius / cellSize);
+
+ for (int x = -cellRadius; x <= cellRadius; x++)
+ {
+ for (int y = -cellRadius; y <= cellRadius; y++)
+ {
+ if (x * x + y * y > cellRadius * cellRadius) continue;
+
+ int gridX = gridPos.x + x;
+ int gridY = gridPos.y + y;
+
+ if (gridX < 0 || gridX >= gridWidth || gridY < 0 || gridY >= gridHeight)
+ continue;
+
+ // 현재 시야에 표시 + 방문한 적 있음으로 기록
+ fogData.SetVisible(gridX, gridY, true);
+ fogData.SetExplored(gridX, gridY, true);
+ }
+ }
+ }
+
+ ///
+ /// 월드 좌표를 그리드 좌표로 변환
+ ///
+ public Vector2Int WorldToGrid(Vector3 worldPos)
+ {
+ Vector3 localPos = worldPos - worldOrigin;
+ int x = Mathf.FloorToInt(localPos.x / cellSize);
+ int z = Mathf.FloorToInt(localPos.z / cellSize);
+ return new Vector2Int(x, z);
+ }
+
+ ///
+ /// 그리드 좌표를 월드 좌표로 변환
+ ///
+ public Vector3 GridToWorld(int x, int y)
+ {
+ return worldOrigin + new Vector3(x * cellSize, 0, y * cellSize);
+ }
+
+ ///
+ /// 특정 위치가 플레이어에게 보이는지 확인
+ ///
+ public FogOfWarState GetVisibilityState(ulong clientId, Vector3 worldPosition)
+ {
+ FogOfWarData fogData = GetPlayerFogData(clientId);
+ if (fogData == null)
+ return FogOfWarState.Unexplored;
+
+ Vector2Int gridPos = WorldToGrid(worldPosition);
+ return fogData.GetState(gridPos.x, gridPos.y);
+ }
+
+ private void OnDrawGizmos()
+ {
+ // 그리드 시각화
+ Gizmos.color = Color.yellow;
+ Vector3 size = new Vector3(gridWidth * cellSize, 0.1f, gridHeight * cellSize);
+ Gizmos.DrawWireCube(worldOrigin + size / 2f, size);
+ }
+ }
+
+ ///
+ /// 플레이어별 안개 데이터
+ ///
+ public class FogOfWarData
+ {
+ private bool[,] _explored; // 한번이라도 방문한 적이 있는가
+ private bool[,] _currentlyVisible; // 현재 보이는가
+ private int _width;
+ private int _height;
+
+ public FogOfWarData(int width, int height)
+ {
+ _width = width;
+ _height = height;
+ _explored = new bool[width, height];
+ _currentlyVisible = new bool[width, height];
+ }
+
+ public void SetExplored(int x, int y, bool value)
+ {
+ if (IsValidCoord(x, y))
+ _explored[x, y] = value;
+ }
+
+ public void SetVisible(int x, int y, bool value)
+ {
+ if (IsValidCoord(x, y))
+ _currentlyVisible[x, y] = value;
+ }
+
+ public void ClearCurrentVision()
+ {
+ System.Array.Clear(_currentlyVisible, 0, _currentlyVisible.Length);
+ }
+
+ public FogOfWarState GetState(int x, int y)
+ {
+ if (!IsValidCoord(x, y))
+ return FogOfWarState.Unexplored;
+
+ if (_currentlyVisible[x, y])
+ return FogOfWarState.Visible;
+
+ if (_explored[x, y])
+ return FogOfWarState.Explored;
+
+ return FogOfWarState.Unexplored;
+ }
+
+ private bool IsValidCoord(int x, int y)
+ {
+ return x >= 0 && x < _explored.GetLength(0) &&
+ y >= 0 && y < _explored.GetLength(1);
+ }
+
+ ///
+ /// Visible 데이터를 바이트 배열로 압축
+ ///
+ public byte[] GetVisibleData()
+ {
+ int totalCells = _width * _height;
+ int byteCount = (totalCells + 7) / 8; // 8비트 = 1바이트
+ byte[] data = new byte[byteCount];
+
+ for (int i = 0; i < totalCells; i++)
+ {
+ int x = i % _width;
+ int y = i / _width;
+
+ if (_currentlyVisible[x, y])
+ {
+ int byteIndex = i / 8;
+ int bitIndex = i % 8;
+ data[byteIndex] |= (byte)(1 << bitIndex);
+ }
+ }
+
+ return data;
+ }
+
+ ///
+ /// Explored 데이터를 바이트 배열로 압축
+ ///
+ public byte[] GetExploredData()
+ {
+ int totalCells = _width * _height;
+ int byteCount = (totalCells + 7) / 8;
+ byte[] data = new byte[byteCount];
+
+ for (int i = 0; i < totalCells; i++)
+ {
+ int x = i % _width;
+ int y = i / _width;
+
+ if (_explored[x, y])
+ {
+ int byteIndex = i / 8;
+ int bitIndex = i % 8;
+ data[byteIndex] |= (byte)(1 << bitIndex);
+ }
+ }
+
+ return data;
+ }
+
+ ///
+ /// 바이트 배열에서 Visible 데이터 복원
+ ///
+ public void SetVisibleData(byte[] data)
+ {
+ System.Array.Clear(_currentlyVisible, 0, _currentlyVisible.Length);
+
+ int totalCells = _width * _height;
+ for (int i = 0; i < totalCells && i / 8 < data.Length; i++)
+ {
+ int byteIndex = i / 8;
+ int bitIndex = i % 8;
+
+ bool isVisible = (data[byteIndex] & (1 << bitIndex)) != 0;
+
+ int x = i % _width;
+ int y = i / _width;
+ _currentlyVisible[x, y] = isVisible;
+ }
+ }
+
+ ///
+ /// 바이트 배열에서 Explored 데이터 복원
+ ///
+ public void SetExploredData(byte[] data)
+ {
+ int totalCells = _width * _height;
+ for (int i = 0; i < totalCells && i / 8 < data.Length; i++)
+ {
+ int byteIndex = i / 8;
+ int bitIndex = i % 8;
+
+ bool isExplored = (data[byteIndex] & (1 << bitIndex)) != 0;
+
+ int x = i % _width;
+ int y = i / _width;
+
+ // Explored는 누적 (한번 탐색하면 계속 유지)
+ if (isExplored)
+ _explored[x, y] = true;
+ }
+ }
+ }
+
+ ///
+ /// 안개 상태
+ ///
+ public enum FogOfWarState
+ {
+ Unexplored, // 방문한 적 없음 (완전히 어두움)
+ Explored, // 방문했지만 현재 시야 밖 (지형/건물만 보임)
+ Visible // 현재 시야 안 (모두 보임)
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/FogOfWarSystem.cs.meta b/Assets/Scripts/FogOfWarSystem.cs.meta
new file mode 100644
index 0000000..da8e4fd
--- /dev/null
+++ b/Assets/Scripts/FogOfWarSystem.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9e73da29c7794e445a17b7d28a61cdb3
\ No newline at end of file
diff --git a/Assets/Scripts/IVisionProvider.cs b/Assets/Scripts/IVisionProvider.cs
new file mode 100644
index 0000000..a9ac83c
--- /dev/null
+++ b/Assets/Scripts/IVisionProvider.cs
@@ -0,0 +1,30 @@
+using UnityEngine;
+
+namespace Northbound
+{
+ ///
+ /// 시야를 제공하는 객체 인터페이스 (플레이어, 건물 등)
+ ///
+ public interface IVisionProvider
+ {
+ ///
+ /// 소유자 클라이언트 ID
+ ///
+ ulong GetOwnerId();
+
+ ///
+ /// 시야 범위
+ ///
+ float GetVisionRange();
+
+ ///
+ /// Transform
+ ///
+ Transform GetTransform();
+
+ ///
+ /// 현재 활성화 상태인지
+ ///
+ bool IsActive();
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/IVisionProvider.cs.meta b/Assets/Scripts/IVisionProvider.cs.meta
new file mode 100644
index 0000000..d411bb9
--- /dev/null
+++ b/Assets/Scripts/IVisionProvider.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 2b23d5408ff532f49a541af63882a724
\ No newline at end of file
diff --git a/Assets/Scripts/PlayerVisionProvider.cs b/Assets/Scripts/PlayerVisionProvider.cs
new file mode 100644
index 0000000..72f5cdb
--- /dev/null
+++ b/Assets/Scripts/PlayerVisionProvider.cs
@@ -0,0 +1,41 @@
+using Unity.Netcode;
+using UnityEngine;
+
+namespace Northbound
+{
+ ///
+ /// 플레이어의 시야 제공 컴포넌트
+ ///
+ public class PlayerVisionProvider : NetworkBehaviour, IVisionProvider
+ {
+ [Header("Vision Settings")]
+ public float visionRange = 10f;
+
+ public override void OnNetworkSpawn()
+ {
+ if (IsServer)
+ {
+ FogOfWarSystem.Instance?.RegisterVisionProvider(this);
+ }
+ }
+
+ public override void OnNetworkDespawn()
+ {
+ if (IsServer)
+ {
+ FogOfWarSystem.Instance?.UnregisterVisionProvider(this);
+ }
+ }
+
+ public ulong GetOwnerId() => OwnerClientId;
+ public float GetVisionRange() => visionRange;
+ public Transform GetTransform() => transform;
+ public bool IsActive() => IsSpawned;
+
+ private void OnDrawGizmosSelected()
+ {
+ Gizmos.color = Color.yellow;
+ Gizmos.DrawWireSphere(transform.position, visionRange);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/PlayerVisionProvider.cs.meta b/Assets/Scripts/PlayerVisionProvider.cs.meta
new file mode 100644
index 0000000..c9b5cd9
--- /dev/null
+++ b/Assets/Scripts/PlayerVisionProvider.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 81d070574968f0d45be51307e2dfed64
\ No newline at end of file
diff --git a/Assets/Scripts/Resource.cs b/Assets/Scripts/Resource.cs
index 38f9ad1..8eeb929 100644
--- a/Assets/Scripts/Resource.cs
+++ b/Assets/Scripts/Resource.cs
@@ -64,7 +64,7 @@ namespace Northbound
int rechargeAmountToAdd = Mathf.Min(rechargeAmount, maxResources - _currentResources.Value);
_currentResources.Value += rechargeAmountToAdd;
- Debug.Log($"{resourceName} {rechargeAmountToAdd} 충전됨. 현재: {_currentResources.Value}/{maxResources}");
+ // Debug.Log($"{resourceName} {rechargeAmountToAdd} 충전됨. 현재: {_currentResources.Value}/{maxResources}");
}
_lastRechargeTime = Time.time;
diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta
new file mode 100644
index 0000000..6828a86
--- /dev/null
+++ b/Assets/Shaders.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c8309f1a91f45bc4394594cdecabaa0c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders/FogOfWar.shader b/Assets/Shaders/FogOfWar.shader
new file mode 100644
index 0000000..7b40b14
--- /dev/null
+++ b/Assets/Shaders/FogOfWar.shader
@@ -0,0 +1,64 @@
+Shader "Custom/FogOfWar"
+{
+ Properties
+ {
+ _MainTex ("Fog Texture", 2D) = "white" {}
+ _FogColor ("Fog Color", Color) = (0,0,0,1)
+ _ExploredColor ("Explored Color", Color) = (0,0,0,0.5)
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue"="Transparent+100"
+ "RenderType"="Transparent"
+ "IgnoreProjector"="True"
+ }
+
+ LOD 100
+ Blend SrcAlpha OneMinusSrcAlpha
+ ZWrite Off
+ Cull Off
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #include "UnityCG.cginc"
+
+ struct appdata
+ {
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float2 uv : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ };
+
+ sampler2D _MainTex;
+ float4 _MainTex_ST;
+ fixed4 _FogColor;
+ fixed4 _ExploredColor;
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.vertex = UnityObjectToClipPos(v.vertex);
+ o.uv = TRANSFORM_TEX(v.uv, _MainTex);
+ return o;
+ }
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ fixed4 col = tex2D(_MainTex, i.uv);
+ return col;
+ }
+ ENDCG
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Shaders/FogOfWar.shader.meta b/Assets/Shaders/FogOfWar.shader.meta
new file mode 100644
index 0000000..fe9b320
--- /dev/null
+++ b/Assets/Shaders/FogOfWar.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1a32b22331996294f8eb2b7ac12d1c6b
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant: