diff --git a/Assets/InputSystem_Actions.cs b/Assets/InputSystem_Actions.cs
index d605c1c..5ca2522 100644
--- a/Assets/InputSystem_Actions.cs
+++ b/Assets/InputSystem_Actions.cs
@@ -72,7 +72,7 @@ using UnityEngine.InputSystem.Utilities;
/// }
///
///
-public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
+public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
///
/// Provides access to the underlying asset instance.
@@ -82,7 +82,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
/// Constructs a new instance.
///
- public @InputSystem_Actions()
+ public @PlayerInputActions()
{
asset = InputActionAsset.FromJson(@"{
""version"": 1,
@@ -110,20 +110,11 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""interactions"": """",
""initialStateCheck"": true
},
- {
- ""name"": ""Attack"",
- ""type"": ""Button"",
- ""id"": ""6c2ab1b8-8984-453a-af3d-a3c78ae1679a"",
- ""expectedControlType"": ""Button"",
- ""processors"": """",
- ""interactions"": """",
- ""initialStateCheck"": false
- },
{
""name"": ""Interact"",
""type"": ""Button"",
""id"": ""852140f2-7766-474d-8707-702459ba45f3"",
- ""expectedControlType"": ""Button"",
+ ""expectedControlType"": """",
""processors"": """",
""interactions"": ""Hold"",
""initialStateCheck"": false
@@ -141,7 +132,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""name"": ""Jump"",
""type"": ""Button"",
""id"": ""f1ba0d36-48eb-4cd5-b651-1c94a6531f70"",
- ""expectedControlType"": ""Button"",
+ ""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
@@ -150,7 +141,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""name"": ""Previous"",
""type"": ""Button"",
""id"": ""2776c80d-3c14-4091-8c56-d04ced07a2b0"",
- ""expectedControlType"": ""Button"",
+ ""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
@@ -172,6 +163,33 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
+ },
+ {
+ ""name"": ""ToggleBuild"",
+ ""type"": ""Button"",
+ ""id"": ""d0be6772-d106-4d28-95db-42e006045d09"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Build"",
+ ""type"": ""Button"",
+ ""id"": ""4882dd65-9e5d-429b-8920-d024e1dc7f40"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Cancel"",
+ ""type"": ""Button"",
+ ""id"": ""15a06032-857d-4655-9d22-c60046a9db21"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
}
],
""bindings"": [
@@ -340,72 +358,6 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""isComposite"": false,
""isPartOfComposite"": false
},
- {
- ""name"": """",
- ""id"": ""143bb1cd-cc10-4eca-a2f0-a3664166fe91"",
- ""path"": ""/buttonWest"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": "";Gamepad"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
- {
- ""name"": """",
- ""id"": ""05f6913d-c316-48b2-a6bb-e225f14c7960"",
- ""path"": ""/leftButton"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": "";Keyboard&Mouse"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
- {
- ""name"": """",
- ""id"": ""886e731e-7071-4ae4-95c0-e61739dad6fd"",
- ""path"": ""/primaryTouch/tap"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": "";Touch"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
- {
- ""name"": """",
- ""id"": ""ee3d0cd2-254e-47a7-a8cb-bc94d9658c54"",
- ""path"": ""/trigger"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": ""Joystick"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
- {
- ""name"": """",
- ""id"": ""8255d333-5683-4943-a58a-ccb207ff1dce"",
- ""path"": ""/{PrimaryAction}"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": ""XR"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
- {
- ""name"": """",
- ""id"": ""b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7"",
- ""path"": ""/enter"",
- ""interactions"": """",
- ""processors"": """",
- ""groups"": ""Keyboard&Mouse"",
- ""action"": ""Attack"",
- ""isComposite"": false,
- ""isPartOfComposite"": false
- },
{
""name"": """",
""id"": ""cbac6039-9c09-46a1-b5f2-4e5124ccb5ed"",
@@ -559,6 +511,50 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
""action"": ""Crouch"",
""isComposite"": false,
""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""b0c31ff4-28e1-4221-8a1a-4ce414c9c8a9"",
+ ""path"": ""/b"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""ToggleBuild"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""4a4508a3-a4bc-4f26-85d2-53b4364920c5"",
+ ""path"": ""/leftButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Build"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""ea2b9aa8-a065-48f0-8de0-037adf5d260f"",
+ ""path"": ""/rightButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Cancel"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""798d6431-b2de-4aad-b19c-05895bdb375b"",
+ ""path"": ""/escape"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": "";Keyboard&Mouse"",
+ ""action"": ""Cancel"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
}
]
},
@@ -1146,13 +1142,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
m_Player = asset.FindActionMap("Player", throwIfNotFound: true);
m_Player_Move = m_Player.FindAction("Move", throwIfNotFound: true);
m_Player_Look = m_Player.FindAction("Look", throwIfNotFound: true);
- m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
m_Player_Interact = m_Player.FindAction("Interact", throwIfNotFound: true);
m_Player_Crouch = m_Player.FindAction("Crouch", throwIfNotFound: true);
m_Player_Jump = m_Player.FindAction("Jump", throwIfNotFound: true);
m_Player_Previous = m_Player.FindAction("Previous", throwIfNotFound: true);
m_Player_Next = m_Player.FindAction("Next", throwIfNotFound: true);
m_Player_Sprint = m_Player.FindAction("Sprint", throwIfNotFound: true);
+ m_Player_ToggleBuild = m_Player.FindAction("ToggleBuild", throwIfNotFound: true);
+ m_Player_Build = m_Player.FindAction("Build", throwIfNotFound: true);
+ m_Player_Cancel = m_Player.FindAction("Cancel", throwIfNotFound: true);
// UI
m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true);
@@ -1167,10 +1165,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
m_UI_TrackedDeviceOrientation = m_UI.FindAction("TrackedDeviceOrientation", throwIfNotFound: true);
}
- ~@InputSystem_Actions()
+ ~@PlayerInputActions()
{
- UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, InputSystem_Actions.Player.Disable() has not been called.");
- UnityEngine.Debug.Assert(!m_UI.enabled, "This will cause a leak and performance issues, InputSystem_Actions.UI.Disable() has not been called.");
+ UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, PlayerInputActions.Player.Disable() has not been called.");
+ UnityEngine.Debug.Assert(!m_UI.enabled, "This will cause a leak and performance issues, PlayerInputActions.UI.Disable() has not been called.");
}
///
@@ -1248,24 +1246,26 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
private List m_PlayerActionsCallbackInterfaces = new List();
private readonly InputAction m_Player_Move;
private readonly InputAction m_Player_Look;
- private readonly InputAction m_Player_Attack;
private readonly InputAction m_Player_Interact;
private readonly InputAction m_Player_Crouch;
private readonly InputAction m_Player_Jump;
private readonly InputAction m_Player_Previous;
private readonly InputAction m_Player_Next;
private readonly InputAction m_Player_Sprint;
+ private readonly InputAction m_Player_ToggleBuild;
+ private readonly InputAction m_Player_Build;
+ private readonly InputAction m_Player_Cancel;
///
/// Provides access to input actions defined in input action map "Player".
///
public struct PlayerActions
{
- private @InputSystem_Actions m_Wrapper;
+ private @PlayerInputActions m_Wrapper;
///
/// Construct a new instance of the input action map wrapper class.
///
- public PlayerActions(@InputSystem_Actions wrapper) { m_Wrapper = wrapper; }
+ public PlayerActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
///
/// Provides access to the underlying input action "Player/Move".
///
@@ -1275,10 +1275,6 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
public InputAction @Look => m_Wrapper.m_Player_Look;
///
- /// Provides access to the underlying input action "Player/Attack".
- ///
- public InputAction @Attack => m_Wrapper.m_Player_Attack;
- ///
/// Provides access to the underlying input action "Player/Interact".
///
public InputAction @Interact => m_Wrapper.m_Player_Interact;
@@ -1303,6 +1299,18 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
public InputAction @Sprint => m_Wrapper.m_Player_Sprint;
///
+ /// Provides access to the underlying input action "Player/ToggleBuild".
+ ///
+ public InputAction @ToggleBuild => m_Wrapper.m_Player_ToggleBuild;
+ ///
+ /// Provides access to the underlying input action "Player/Build".
+ ///
+ public InputAction @Build => m_Wrapper.m_Player_Build;
+ ///
+ /// Provides access to the underlying input action "Player/Cancel".
+ ///
+ public InputAction @Cancel => m_Wrapper.m_Player_Cancel;
+ ///
/// Provides access to the underlying input action map instance.
///
public InputActionMap Get() { return m_Wrapper.m_Player; }
@@ -1334,9 +1342,6 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
@Look.started += instance.OnLook;
@Look.performed += instance.OnLook;
@Look.canceled += instance.OnLook;
- @Attack.started += instance.OnAttack;
- @Attack.performed += instance.OnAttack;
- @Attack.canceled += instance.OnAttack;
@Interact.started += instance.OnInteract;
@Interact.performed += instance.OnInteract;
@Interact.canceled += instance.OnInteract;
@@ -1355,6 +1360,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
@Sprint.started += instance.OnSprint;
@Sprint.performed += instance.OnSprint;
@Sprint.canceled += instance.OnSprint;
+ @ToggleBuild.started += instance.OnToggleBuild;
+ @ToggleBuild.performed += instance.OnToggleBuild;
+ @ToggleBuild.canceled += instance.OnToggleBuild;
+ @Build.started += instance.OnBuild;
+ @Build.performed += instance.OnBuild;
+ @Build.canceled += instance.OnBuild;
+ @Cancel.started += instance.OnCancel;
+ @Cancel.performed += instance.OnCancel;
+ @Cancel.canceled += instance.OnCancel;
}
///
@@ -1372,9 +1386,6 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
@Look.started -= instance.OnLook;
@Look.performed -= instance.OnLook;
@Look.canceled -= instance.OnLook;
- @Attack.started -= instance.OnAttack;
- @Attack.performed -= instance.OnAttack;
- @Attack.canceled -= instance.OnAttack;
@Interact.started -= instance.OnInteract;
@Interact.performed -= instance.OnInteract;
@Interact.canceled -= instance.OnInteract;
@@ -1393,6 +1404,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
@Sprint.started -= instance.OnSprint;
@Sprint.performed -= instance.OnSprint;
@Sprint.canceled -= instance.OnSprint;
+ @ToggleBuild.started -= instance.OnToggleBuild;
+ @ToggleBuild.performed -= instance.OnToggleBuild;
+ @ToggleBuild.canceled -= instance.OnToggleBuild;
+ @Build.started -= instance.OnBuild;
+ @Build.performed -= instance.OnBuild;
+ @Build.canceled -= instance.OnBuild;
+ @Cancel.started -= instance.OnCancel;
+ @Cancel.performed -= instance.OnCancel;
+ @Cancel.canceled -= instance.OnCancel;
}
///
@@ -1445,12 +1465,12 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
public struct UIActions
{
- private @InputSystem_Actions m_Wrapper;
+ private @PlayerInputActions m_Wrapper;
///
/// Construct a new instance of the input action map wrapper class.
///
- public UIActions(@InputSystem_Actions wrapper) { m_Wrapper = wrapper; }
+ public UIActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
///
/// Provides access to the underlying input action "UI/Navigate".
///
@@ -1708,13 +1728,6 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
void OnLook(InputAction.CallbackContext context);
///
- /// Method invoked when associated input action "Attack" is either , or .
- ///
- ///
- ///
- ///
- void OnAttack(InputAction.CallbackContext context);
- ///
/// Method invoked when associated input action "Interact" is either , or .
///
///
@@ -1756,6 +1769,27 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
///
///
void OnSprint(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "ToggleBuild" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnToggleBuild(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Build" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnBuild(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Cancel" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnCancel(InputAction.CallbackContext context);
}
///
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks.
diff --git a/Assets/InputSystem_Actions.inputactions b/Assets/InputSystem_Actions.inputactions
index 89ea999..6862970 100644
--- a/Assets/InputSystem_Actions.inputactions
+++ b/Assets/InputSystem_Actions.inputactions
@@ -24,20 +24,11 @@
"interactions": "",
"initialStateCheck": true
},
- {
- "name": "Attack",
- "type": "Button",
- "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a",
- "expectedControlType": "Button",
- "processors": "",
- "interactions": "",
- "initialStateCheck": false
- },
{
"name": "Interact",
"type": "Button",
"id": "852140f2-7766-474d-8707-702459ba45f3",
- "expectedControlType": "Button",
+ "expectedControlType": "",
"processors": "",
"interactions": "Hold",
"initialStateCheck": false
@@ -55,7 +46,7 @@
"name": "Jump",
"type": "Button",
"id": "f1ba0d36-48eb-4cd5-b651-1c94a6531f70",
- "expectedControlType": "Button",
+ "expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
@@ -64,7 +55,7 @@
"name": "Previous",
"type": "Button",
"id": "2776c80d-3c14-4091-8c56-d04ced07a2b0",
- "expectedControlType": "Button",
+ "expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
@@ -86,6 +77,33 @@
"processors": "",
"interactions": "",
"initialStateCheck": false
+ },
+ {
+ "name": "ToggleBuild",
+ "type": "Button",
+ "id": "d0be6772-d106-4d28-95db-42e006045d09",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Build",
+ "type": "Button",
+ "id": "4882dd65-9e5d-429b-8920-d024e1dc7f40",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Cancel",
+ "type": "Button",
+ "id": "15a06032-857d-4655-9d22-c60046a9db21",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
}
],
"bindings": [
@@ -254,72 +272,6 @@
"isComposite": false,
"isPartOfComposite": false
},
- {
- "name": "",
- "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91",
- "path": "/buttonWest",
- "interactions": "",
- "processors": "",
- "groups": ";Gamepad",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
- {
- "name": "",
- "id": "05f6913d-c316-48b2-a6bb-e225f14c7960",
- "path": "/leftButton",
- "interactions": "",
- "processors": "",
- "groups": ";Keyboard&Mouse",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
- {
- "name": "",
- "id": "886e731e-7071-4ae4-95c0-e61739dad6fd",
- "path": "/primaryTouch/tap",
- "interactions": "",
- "processors": "",
- "groups": ";Touch",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
- {
- "name": "",
- "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54",
- "path": "/trigger",
- "interactions": "",
- "processors": "",
- "groups": "Joystick",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
- {
- "name": "",
- "id": "8255d333-5683-4943-a58a-ccb207ff1dce",
- "path": "/{PrimaryAction}",
- "interactions": "",
- "processors": "",
- "groups": "XR",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
- {
- "name": "",
- "id": "b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7",
- "path": "/enter",
- "interactions": "",
- "processors": "",
- "groups": "Keyboard&Mouse",
- "action": "Attack",
- "isComposite": false,
- "isPartOfComposite": false
- },
{
"name": "",
"id": "cbac6039-9c09-46a1-b5f2-4e5124ccb5ed",
@@ -473,6 +425,50 @@
"action": "Crouch",
"isComposite": false,
"isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "b0c31ff4-28e1-4221-8a1a-4ce414c9c8a9",
+ "path": "/b",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "ToggleBuild",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "4a4508a3-a4bc-4f26-85d2-53b4364920c5",
+ "path": "/leftButton",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Build",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "ea2b9aa8-a065-48f0-8de0-037adf5d260f",
+ "path": "/rightButton",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Cancel",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "798d6431-b2de-4aad-b19c-05895bdb375b",
+ "path": "/escape",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Cancel",
+ "isComposite": false,
+ "isPartOfComposite": false
}
]
},
diff --git a/Assets/Materials/ConstructionSite.png b/Assets/Materials/ConstructionSite.png
new file mode 100644
index 0000000..760563a
Binary files /dev/null and b/Assets/Materials/ConstructionSite.png differ
diff --git a/Assets/Materials/ConstructionSiteMaterial.mat b/Assets/Materials/ConstructionSiteMaterial.mat
new file mode 100644
index 0000000..79e3151
--- /dev/null
+++ b/Assets/Materials/ConstructionSiteMaterial.mat
@@ -0,0 +1,50 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ConstructionSiteMaterial
+ m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, 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: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _AlphaTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 910ae9cb0d5f6cc44befe22ac4484535, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MaskTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _NormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _EnableExternalAlpha: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Assets/Materials/GroundMaterial.mat b/Assets/Materials/GroundMaterial.mat
index 20754ca..ee32fec 100644
--- a/Assets/Materials/GroundMaterial.mat
+++ b/Assets/Materials/GroundMaterial.mat
@@ -8,17 +8,19 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GroundMaterial
- m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3}
+ m_Shader: {fileID: 4800000, guid: 4e90a8289da1f3943885176e4f83e35c, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
- m_InvalidKeywords: []
+ m_InvalidKeywords:
+ - _SPECULAR_SETUP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
- disabledShaderPasses: []
+ disabledShaderPasses:
+ - MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
@@ -27,24 +29,210 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _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}
+ - _ClearCoatMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Control:
+ 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}
+ - _DetailTex:
+ 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: 2800000, guid: c9946b141fc71a64c958f9fcd9e718cf, type: 3}
+ m_Texture: {fileID: 2800000, guid: b196776e1f0ad0e40b4d75feb0d363b7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask3:
+ m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskTex:
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}
+ - _Normal0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal3:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _NormalMap:
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}
+ - _Splat0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat3:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TerrainHolesTexture:
+ 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
+ - _ClearCoat: 0
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
- _EnableExternalAlpha: 0
- - _ZWrite: 0
+ - _EnableHeightBlend: 0
+ - _EnableInstancedPerPixelNormal: 1
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossinessSource: 0
+ - _GlossyReflections: 0
+ - _HeightTransition: 0
+ - _Metallic: 0
+ - _Metallic0: 0
+ - _Metallic1: 0
+ - _Metallic2: 0
+ - _Metallic3: 0
+ - _Mode: 0
+ - _NumLayersCount: 1
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Shininess: 0
+ - _Smoothness: 0.5
+ - _Smoothness0: 0.5
+ - _Smoothness1: 0.5
+ - _Smoothness2: 0.5
+ - _Smoothness3: 0.5
+ - _SmoothnessSource: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecSource: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WindQuality: 0
+ - _WorkflowMode: 0
+ - _XRMotionVectorsPass: 1
+ - _ZWrite: 1
m_Colors:
- - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _BaseColor: {r: 0.1001966, g: 1, b: 0, a: 1}
+ - _Color: {r: 0.10019658, g: 1, b: 0, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HueVariation: {r: 1, g: 0.5, b: 0, a: 0.1}
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ - _White: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
+--- !u!114 &5956188262465732407
+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/GroundMaterial_Generated Maps/MainTex.png b/Assets/Materials/GroundMaterial_Generated Maps/MainTex.png
new file mode 100644
index 0000000..f2e8619
Binary files /dev/null and b/Assets/Materials/GroundMaterial_Generated Maps/MainTex.png differ
diff --git a/Assets/Materials/Tower.png b/Assets/Materials/Tower.png
new file mode 100644
index 0000000..4486c35
Binary files /dev/null and b/Assets/Materials/Tower.png differ
diff --git a/Assets/Materials/TowerMaterial.mat b/Assets/Materials/TowerMaterial.mat
new file mode 100644
index 0000000..041c8bb
--- /dev/null
+++ b/Assets/Materials/TowerMaterial.mat
@@ -0,0 +1,50 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: TowerMaterial
+ m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, 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: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _AlphaTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: b05bbd2f848b6b74cb635aff7f6aeb3a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MaskTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _NormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _EnableExternalAlpha: 0
+ - _ZWrite: 0
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Assets/Prefabs/ConstructionCanvas.prefab b/Assets/Prefabs/ConstructionCanvas.prefab
new file mode 100644
index 0000000..5235b67
--- /dev/null
+++ b/Assets/Prefabs/ConstructionCanvas.prefab
@@ -0,0 +1,392 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2177408822398010026
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1178113051612323854}
+ - component: {fileID: 4116509313383764597}
+ m_Layer: 5
+ m_Name: BuildProgressBar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1178113051612323854
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2177408822398010026}
+ 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: 2403847661259735250}
+ - {fileID: 7256063548841878039}
+ m_Father: {fileID: 1762398280990801583}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 160, y: 20}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &4116509313383764597
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2177408822398010026}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 0}
+ m_FillRect: {fileID: 8303040897721361950}
+ m_HandleRect: {fileID: 0}
+ m_Direction: 0
+ m_MinValue: 0
+ m_MaxValue: 1
+ m_WholeNumbers: 0
+ m_Value: 0
+ m_OnValueChanged:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!1 &5538244123098040924
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1762398280990801583}
+ - component: {fileID: 3540691141408605703}
+ - component: {fileID: 6741917758961255712}
+ - component: {fileID: 7943355422372080661}
+ - component: {fileID: 1314286018719963945}
+ m_Layer: 5
+ m_Name: ConstructionCanvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1762398280990801583
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5538244123098040924}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.015, y: 0.08, z: 0}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1178113051612323854}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 200, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &3540691141408605703
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5538244123098040924}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 2
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &6741917758961255712
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5538244123098040924}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 1
+--- !u!114 &7943355422372080661
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5538244123098040924}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1314286018719963945
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5538244123098040924}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f276e01d8ad842409e5c148fb7e3e4f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Billboard
+--- !u!1 &5849588109388851615
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2403847661259735250}
+ - component: {fileID: 707884888933371258}
+ - component: {fileID: 1356762187778846301}
+ m_Layer: 5
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2403847661259735250
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5849588109388851615}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1178113051612323854}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.25}
+ m_AnchorMax: {x: 1, y: 0.75}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &707884888933371258
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5849588109388851615}
+ m_CullTransparentMesh: 1
+--- !u!114 &1356762187778846301
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5849588109388851615}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &7583331341754036653
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7256063548841878039}
+ m_Layer: 5
+ m_Name: Fill Area
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7256063548841878039
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7583331341754036653}
+ 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: 8303040897721361950}
+ m_Father: {fileID: 1178113051612323854}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.25}
+ m_AnchorMax: {x: 1, y: 0.75}
+ m_AnchoredPosition: {x: -5, y: 0}
+ m_SizeDelta: {x: -20, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &8819001044215475393
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8303040897721361950}
+ - component: {fileID: 7002862170078787530}
+ - component: {fileID: 6563834687424854453}
+ m_Layer: 5
+ m_Name: Fill
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8303040897721361950
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8819001044215475393}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 7256063548841878039}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 10, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7002862170078787530
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8819001044215475393}
+ m_CullTransparentMesh: 1
+--- !u!114 &6563834687424854453
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8819001044215475393}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 0.6470588, b: 0, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
diff --git a/Assets/Prefabs/ConstructionSite.prefab b/Assets/Prefabs/ConstructionSite.prefab
new file mode 100644
index 0000000..1903dbe
--- /dev/null
+++ b/Assets/Prefabs/ConstructionSite.prefab
@@ -0,0 +1,129 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7327242023390354019
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3298109745345281552}
+ - component: {fileID: 4649899659862504811}
+ - component: {fileID: 4610490688749176459}
+ - component: {fileID: 7009177059939730184}
+ - component: {fileID: 3261695852906763218}
+ m_Layer: 8
+ m_Name: ConstructionSite
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3298109745345281552
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -4.90576, y: 2.5, z: -0.2079}
+ m_LocalScale: {x: 1, y: 5, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4649899659862504811
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4610490688749176459
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ 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: 580503b6598745244852106d95437b72, 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!65 &7009177059939730184
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &3261695852906763218
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9bbda59cbb9721e419a846e7db104508, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::ConstructionSite
+ uiPrefab: {fileID: 5538244123098040924, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ uiOffset: {x: 0, y: 2, z: 1.5}
diff --git a/Assets/Prefabs/Tower.prefab b/Assets/Prefabs/Tower.prefab
new file mode 100644
index 0000000..742d9ca
--- /dev/null
+++ b/Assets/Prefabs/Tower.prefab
@@ -0,0 +1,114 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7327242023390354019
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3298109745345281552}
+ - component: {fileID: 4649899659862504811}
+ - component: {fileID: 4610490688749176459}
+ - component: {fileID: 7009177059939730184}
+ m_Layer: 0
+ m_Name: Tower
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3298109745345281552
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -4.90576, y: 2.5, z: -0.2079}
+ m_LocalScale: {x: 1, y: 5, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4649899659862504811
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4610490688749176459
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ 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: 8d6da24c0897d24498349dd41e5e9487, 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!65 &7009177059939730184
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7327242023390354019}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
diff --git a/Assets/Scenes/DefenceScene.unity b/Assets/Scenes/DefenceScene.unity
new file mode 100644
index 0000000..37c1981
--- /dev/null
+++ b/Assets/Scenes/DefenceScene.unity
@@ -0,0 +1,1045 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 10
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 13
+ m_BakeOnSceneLoad: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 2
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 1
+ m_PVRFilteringGaussRadiusAO: 1
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 3
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ buildHeightMesh: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &290482131
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 290482132}
+ - component: {fileID: 290482135}
+ - component: {fileID: 290482134}
+ - component: {fileID: 290482133}
+ m_Layer: 7
+ m_Name: Ground
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &290482132
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290482131}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 4, y: 1, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 743367988}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!64 &290482133
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290482131}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 5
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &290482134
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290482131}
+ 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: c179f86efc9ecef499be9cb95262e4f9, 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 &290482135
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290482131}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &412220986
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 412220987}
+ - component: {fileID: 412220988}
+ m_Layer: 0
+ m_Name: BuildManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &412220987
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 412220986}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.19360995, y: 0, z: -3.13349}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 743367988}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &412220988
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 412220986}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2d6331caa25f3aa4aa4fbd51ef4ec71a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::BuildManager
+ cellSize: 1
+ groundLayer:
+ serializedVersion: 2
+ m_Bits: 128
+ constructionSitePrefab: {fileID: 7327242023390354019, guid: 7d362c5c1b34c2b4e901294618e6c3e8, type: 3}
+ selectedTurret:
+ turretName: asd
+ finalPrefab: {fileID: 7327242023390354019, guid: f74a3b8b4fd9ffe44aab9f60247dc8b0, type: 3}
+ ghostPrefab: {fileID: 7327242023390354019, guid: 7d362c5c1b34c2b4e901294618e6c3e8, type: 3}
+ buildTime: 10
+ size: {x: 1, y: 1}
+ isBuildMode: 0
+--- !u!1 &621471626
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 621471627}
+ - component: {fileID: 621471630}
+ - component: {fileID: 621471629}
+ - component: {fileID: 621471628}
+ - component: {fileID: 621471631}
+ - component: {fileID: 621471633}
+ - component: {fileID: 621471635}
+ - component: {fileID: 621471634}
+ m_Layer: 0
+ m_Name: Player
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &621471627
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 743367988}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &621471628
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &621471629
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ 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: 9452ae1262a74094f8a68013fbcd1834, 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 &621471630
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &621471631
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 29785216765776848b0c3cc745d761a7, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::PlayerBuildInteract
+ interactRange: 3
+ buildSpeedMultiplier: 1
+ constructionLayer:
+ serializedVersion: 2
+ m_Bits: 256
+--- !u!54 &621471633
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ serializedVersion: 5
+ m_Mass: 1
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
+ m_UseGravity: 1
+ m_IsKinematic: 0
+ m_Interpolate: 0
+ m_Constraints: 112
+ m_CollisionDetection: 0
+--- !u!114 &621471634
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 768ea4bbb68b30140921c7192ebe2852, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
+ moveSpeed: 5
+--- !u!143 &621471635
+CharacterController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 621471626}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Height: 1
+ m_Radius: 0.5
+ m_SlopeLimit: 45
+ m_StepOffset: 0.3
+ m_SkinWidth: 0.08
+ m_MinMoveDistance: 0.001
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &743367987
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 743367988}
+ - component: {fileID: 743367989}
+ m_Layer: 0
+ m_Name: World
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &743367988
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 743367987}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 4.02413, y: 0, z: 2.86065}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 621471627}
+ - {fileID: 290482132}
+ - {fileID: 1866217603}
+ - {fileID: 412220987}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &743367989
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 743367987}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2d6331caa25f3aa4aa4fbd51ef4ec71a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::BuildManager
+ cellSize: 1
+ groundLayer:
+ serializedVersion: 2
+ m_Bits: 0
+ constructionSitePrefab: {fileID: 0}
+ selectedTurret:
+ turretName:
+ finalPrefab: {fileID: 0}
+ ghostPrefab: {fileID: 0}
+ buildTime: 0
+ size: {x: 0, y: 0}
+ isBuildMode: 0
+--- !u!1001 &882476083
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 200
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 50
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.015
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.08
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1.52865
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -0.17128
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1762398280990801583, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5538244123098040924, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_Name
+ value: ConstructionCanvas
+ objectReference: {fileID: 0}
+ - target: {fileID: 8303040897721361950, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: c3fdbbab939866e4396727cb27c57314, type: 3}
+--- !u!1 &1648146733
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1648146734}
+ - component: {fileID: 1648146738}
+ - component: {fileID: 1648146737}
+ - component: {fileID: 1648146736}
+ - component: {fileID: 1648146735}
+ m_Layer: 0
+ m_Name: Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1648146734
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648146733}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 7.55436, y: 13, z: 4.26362}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2117527910}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1648146735
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648146733}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBrain
+ ShowDebugText: 0
+ ShowCameraFrustum: 1
+ IgnoreTimeScale: 0
+ WorldUpOverride: {fileID: 0}
+ ChannelMask: -1
+ UpdateMethod: 2
+ BlendUpdateMethod: 1
+ LensModeOverride:
+ Enabled: 0
+ DefaultMode: 2
+ DefaultBlend:
+ Style: 1
+ Time: 2
+ CustomCurve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ CustomBlends: {fileID: 0}
+--- !u!114 &1648146736
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648146733}
+ 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!81 &1648146737
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648146733}
+ m_Enabled: 1
+--- !u!20 &1648146738
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648146733}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60.000004
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &1866217602
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1866217603}
+ - component: {fileID: 1866217605}
+ - component: {fileID: 1866217604}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1866217603
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1866217602}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 743367988}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1866217604
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1866217602}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
+ m_SendPointerHoverToParent: 1
+ m_MoveRepeatDelay: 0.5
+ m_MoveRepeatRate: 0.1
+ m_XRTrackingOrigin: {fileID: 0}
+ m_ActionsAsset: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_PointAction: {fileID: -1654692200621890270, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_MoveAction: {fileID: -8784545083839296357, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_SubmitAction: {fileID: 392368643174621059, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_CancelAction: {fileID: 3376087743486010954, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_LeftClickAction: {fileID: 3001919216989983466, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_MiddleClickAction: {fileID: -2185481485913320682, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_RightClickAction: {fileID: -4090225696740746782, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_ScrollWheelAction: {fileID: 6240969308177333660, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
+ m_DeselectOnBackgroundClick: 1
+ m_PointerBehavior: 0
+ m_CursorLockBehavior: 0
+ m_ScrollDeltaPerTick: 6
+--- !u!114 &1866217605
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1866217602}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!1 &1883252233
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1883252234}
+ - component: {fileID: 1883252237}
+ - component: {fileID: 1883252236}
+ m_Layer: 0
+ m_Name: CinemachineCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1883252234
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883252233}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 7.55436, y: 13, z: 4.26362}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2117527910}
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!114 &1883252236
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883252233}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b617507da6d07e749b7efdb34e1173e1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineFollow
+ TrackerSettings:
+ BindingMode: 4
+ PositionDamping: {x: 1, y: 1, z: 1}
+ AngularDampingMode: 0
+ RotationDamping: {x: 1, y: 1, z: 1}
+ QuaternionDamping: 1
+ FollowOffset: {x: 0, y: 13, z: 1}
+--- !u!114 &1883252237
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883252233}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera
+ Priority:
+ Enabled: 0
+ m_Value: 0
+ OutputChannel: 1
+ StandbyUpdate: 2
+ m_StreamingVersion: 20241001
+ m_LegacyPriority: 0
+ Target:
+ TrackingTarget: {fileID: 621471627}
+ LookAtTarget: {fileID: 0}
+ CustomLookAtTarget: 0
+ Lens:
+ FieldOfView: 60.000004
+ OrthographicSize: 5
+ NearClipPlane: 0.3
+ FarClipPlane: 1000
+ Dutch: 0
+ ModeOverride: 0
+ PhysicalProperties:
+ GateFit: 2
+ SensorSize: {x: 21.946, y: 16.002}
+ LensShift: {x: 0, y: 0}
+ FocusDistance: 10
+ Iso: 200
+ ShutterSpeed: 0.005
+ Aperture: 16
+ BladeCount: 5
+ Curvature: {x: 2, y: 11}
+ BarrelClipping: 0.25
+ Anamorphism: 0
+ BlendHint: 0
+--- !u!1 &2117527909
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2117527910}
+ m_Layer: 0
+ m_Name: Camera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2117527910
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2117527909}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -3.53023, y: -0, z: -0.40297}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1648146734}
+ - {fileID: 1883252234}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1660057539 &9223372036854775807
+SceneRoots:
+ m_ObjectHideFlags: 0
+ m_Roots:
+ - {fileID: 2117527910}
+ - {fileID: 743367988}
+ - {fileID: 882476083}
diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
index 544f20f..62ecc36 100644
--- a/Assets/Scenes/SampleScene.unity
+++ b/Assets/Scenes/SampleScene.unity
@@ -20,12 +20,12 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
- m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientSkyColor: {r: 0, g: 0, b: 0, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
- m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SubtractiveShadowColor: {r: 0, g: 0, b: 0, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
@@ -35,7 +35,7 @@ RenderSettings:
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
- m_ReflectionIntensity: 1
+ m_ReflectionIntensity: 0
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
@@ -93,8 +93,8 @@ LightmapSettings:
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
- m_LightingDataAsset: {fileID: 0}
- m_LightingSettings: {fileID: 0}
+ m_LightingDataAsset: {fileID: 112000000, guid: 6d99d9f1450ff4e42955803a70591db1, type: 2}
+ m_LightingSettings: {fileID: 4890085278179872738, guid: 7e8ba91654498ad449cff6625554dba4, type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@@ -181,7 +181,7 @@ MonoBehaviour:
CustomLookAtTarget: 0
Lens:
FieldOfView: 34
- OrthographicSize: 5
+ OrthographicSize: 10
NearClipPlane: 0.3
FarClipPlane: 1000
Dutch: 0
@@ -207,13 +207,57 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 265975813}
serializedVersion: 2
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 9.79513, y: 15.58, z: 0.9117}
+ m_LocalRotation: {x: 0.6427876, y: 0, z: 0, w: 0.7660445}
+ m_LocalPosition: {x: 0, y: 15.58, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 824836044}
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+ m_LocalEulerAnglesHint: {x: 80, y: 0, z: 0}
+--- !u!1 &293924232
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 293924234}
+ - component: {fileID: 293924233}
+ m_Layer: 0
+ m_Name: GameManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &293924233
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 293924232}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 161668cd059bc9444bbf189e4d48995a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::GameManager
+--- !u!4 &293924234
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 293924232}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -4.90576, y: 0.5, z: -0.2079}
+ 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 &519420028
GameObject:
m_ObjectHideFlags: 0
@@ -296,7 +340,7 @@ Camera:
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
@@ -321,7 +365,7 @@ Camera:
far clip plane: 1000
field of view: 34
orthographic: 1
- orthographic size: 5
+ orthographic size: 10
m_Depth: -1
m_CullingMask:
serializedVersion: 2
@@ -345,8 +389,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
serializedVersion: 2
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 9.79513, y: 15.58, z: 0.9117}
+ m_LocalRotation: {x: 0.6427876, y: 0, z: 0, w: 0.7660445}
+ m_LocalPosition: {x: 0, y: 15.58, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -384,7 +428,7 @@ MonoBehaviour:
m_PostInfinity: 2
m_RotationOrder: 4
CustomBlends: {fileID: 0}
---- !u!1 &619394800
+--- !u!1 &675514810
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -392,81 +436,80 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 619394802}
- - component: {fileID: 619394801}
+ - component: {fileID: 675514811}
m_Layer: 0
- m_Name: Global Light 2D
+ m_Name: Destination
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!114 &619394801
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 619394800}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_ComponentVersion: 2
- m_LightType: 4
- m_BlendStyleIndex: 0
- m_FalloffIntensity: 0.5
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_Intensity: 1
- m_LightVolumeIntensity: 1
- m_LightVolumeEnabled: 0
- m_ApplyToSortingLayers: 00000000
- m_LightCookieSprite: {fileID: 0}
- m_DeprecatedPointLightCookieSprite: {fileID: 0}
- m_LightOrder: 0
- m_AlphaBlendOnOverlap: 0
- m_OverlapOperation: 0
- m_NormalMapDistance: 3
- m_NormalMapQuality: 2
- m_UseNormalMap: 0
- m_ShadowsEnabled: 0
- m_ShadowIntensity: 0.75
- m_ShadowSoftness: 0
- m_ShadowSoftnessFalloffIntensity: 0.5
- m_ShadowVolumeIntensityEnabled: 0
- m_ShadowVolumeIntensity: 0.75
- m_LocalBounds:
- m_Center: {x: 0, y: -0.00000011920929, z: 0}
- m_Extent: {x: 0.9985302, y: 0.99853027, z: 0}
- m_PointLightInnerAngle: 360
- m_PointLightOuterAngle: 360
- m_PointLightInnerRadius: 0
- m_PointLightOuterRadius: 1
- m_ShapeLightParametricSides: 5
- m_ShapeLightParametricAngleOffset: 0
- m_ShapeLightParametricRadius: 1
- m_ShapeLightFalloffSize: 0.5
- m_ShapeLightFalloffOffset: {x: 0, y: 0}
- m_ShapePath:
- - {x: -0.5, y: -0.5, z: 0}
- - {x: 0.5, y: -0.5, z: 0}
- - {x: 0.5, y: 0.5, z: 0}
- - {x: -0.5, y: 0.5, z: 0}
---- !u!4 &619394802
+--- !u!4 &675514811
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 619394800}
+ m_GameObject: {fileID: 675514810}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -10, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 0}
+ m_Father: {fileID: 1199309243}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &782728774
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 782728776}
+ - component: {fileID: 782728775}
+ m_Layer: 0
+ m_Name: WaveManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &782728775
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 782728774}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 44cce58f0e8db1747ba5bd6d1284e438, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::WaveManager
+ waves:
+ - waveName: 1
+ enemyPrefab: {fileID: 3659626783364531313, guid: 038d8e53e81683f478bd4a50b71cdb82, type: 3}
+ count: 10
+ spawnRate: 300
+ timeBetweenWaves: 5
+ spawnPoints:
+ - {fileID: 1834121670}
+--- !u!4 &782728776
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 782728774}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 100, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1672791287}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &824836043
GameObject:
@@ -493,7 +536,7 @@ Transform:
m_GameObject: {fileID: 824836043}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -9.79513, y: 0, z: -0.9117}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -501,6 +544,186 @@ Transform:
- {fileID: 265975816}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &840277530
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 840277531}
+ m_Layer: 0
+ m_Name: Map
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &840277531
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 840277530}
+ 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: 1091875497}
+ - {fileID: 1582159577}
+ - {fileID: 995061578}
+ - {fileID: 1487914345}
+ - {fileID: 1199309243}
+ - {fileID: 1921751914}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &995061577
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 995061578}
+ - component: {fileID: 995061581}
+ - component: {fileID: 995061580}
+ - component: {fileID: 995061579}
+ - component: {fileID: 995061582}
+ - component: {fileID: 995061583}
+ m_Layer: 0
+ m_Name: Gate
+ m_TagString: Gate
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &995061578
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -8, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 20, z: 20}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 840277531}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &995061579
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &995061580
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ 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: 17249113bd833bd4880cd8c6a090035b, 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 &995061581
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!208 &995061582
+NavMeshObstacle:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Shape: 1
+ m_Extents: {x: 0.5, y: 0.5, z: 0.5}
+ m_MoveThreshold: 0.1
+ m_Carve: 1
+ m_CarveOnlyStationary: 1
+ m_Center: {x: 0, y: 0, z: 0}
+ m_TimeToStationary: 0.5
+--- !u!114 &995061583
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 995061577}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: aca054ee474238545a8a396d410bf5a3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Gate
+ maxHealth: 100
--- !u!1 &1091875493
GameObject:
m_ObjectHideFlags: 0
@@ -513,8 +736,9 @@ GameObject:
- component: {fileID: 1091875496}
- component: {fileID: 1091875495}
- component: {fileID: 1091875494}
- m_Layer: 0
- m_Name: Cube
+ - component: {fileID: 1091875498}
+ m_Layer: 7
+ m_Name: Ground
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -606,13 +830,173 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1091875493}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: -0, z: 0}
- m_LocalScale: {x: 10, y: 1, z: 10}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 40, y: 1, z: 20}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 0}
+ m_Father: {fileID: 840277531}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1091875498
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1091875493}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a5ac11cc976e418e8d13136b07e1f52, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.AI.Navigation::Unity.AI.Navigation.NavMeshSurface
+ m_SerializedVersion: 0
+ m_AgentTypeID: 0
+ m_CollectObjects: 0
+ m_Size: {x: 10, y: 10, z: 10}
+ m_Center: {x: 0, y: 2, z: 0}
+ m_LayerMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_UseGeometry: 0
+ m_DefaultArea: 0
+ m_GenerateLinks: 0
+ m_IgnoreNavMeshAgent: 1
+ m_IgnoreNavMeshObstacle: 1
+ m_OverrideTileSize: 0
+ m_TileSize: 256
+ m_OverrideVoxelSize: 0
+ m_VoxelSize: 0.016666668
+ m_MinRegionArea: 2
+ m_NavMeshData: {fileID: 23800000, guid: 75980deb99bcaf349b90746e9c44fe65, type: 2}
+ m_BuildHeightMesh: 0
+--- !u!1 &1199309242
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1199309243}
+ - component: {fileID: 1199309247}
+ - component: {fileID: 1199309246}
+ - component: {fileID: 1199309245}
+ - component: {fileID: 1199309244}
+ m_Layer: 0
+ m_Name: Portal_OutToIn
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1199309243
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199309242}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -2, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 675514811}
+ m_Father: {fileID: 840277531}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1199309244
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199309242}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df30a5239a8f26149a53cbc492a9fba7, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Portal
+ destination: {fileID: 675514811}
+ cooldown: 1
+--- !u!65 &1199309245
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199309242}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1199309246
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199309242}
+ 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: 9452ae1262a74094f8a68013fbcd1834, 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 &1199309247
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199309242}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1332929785
GameObject:
m_ObjectHideFlags: 0
@@ -798,11 +1182,497 @@ BoxCollider:
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &1487914344
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1487914345}
+ - component: {fileID: 1487914349}
+ - component: {fileID: 1487914348}
+ - component: {fileID: 1487914347}
+ - component: {fileID: 1487914346}
+ m_Layer: 0
+ m_Name: Portal_InToOut
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1487914345
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1487914344}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -10, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1657082569}
+ m_Father: {fileID: 840277531}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1487914346
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1487914344}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: df30a5239a8f26149a53cbc492a9fba7, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Portal
+ destination: {fileID: 1657082569}
+ cooldown: 1
+--- !u!65 &1487914347
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1487914344}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1487914348
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1487914344}
+ 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: 9452ae1262a74094f8a68013fbcd1834, 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 &1487914349
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1487914344}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1582159576
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1582159577}
+ - component: {fileID: 1582159580}
+ - component: {fileID: 1582159579}
+ - component: {fileID: 1582159578}
+ - component: {fileID: 1582159581}
+ m_Layer: 0
+ m_Name: Core
+ m_TagString: Core
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1582159577
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1582159576}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -15, y: 0, z: 0}
+ m_LocalScale: {x: 2, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 840277531}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!135 &1582159578
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1582159576}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1582159579
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1582159576}
+ 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: e63fd96e36785174896cc2c8ee0929da, 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 &1582159580
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1582159576}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &1582159581
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1582159576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eda0106ca978373449769fd4ded4658f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::Core
+ maxHealth: 100
+--- !u!1 &1657082568
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1657082569}
+ m_Layer: 0
+ m_Name: Destination
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1657082569
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1657082568}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 6, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1487914345}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1672791286
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1672791287}
+ m_Layer: 0
+ m_Name: Wave
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1672791287
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1672791286}
+ 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: 782728776}
+ - {fileID: 1834121670}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1834121669
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1834121670}
+ m_Layer: 0
+ m_Name: SpawnPoint
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1834121670
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1834121669}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 12, y: 2, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1672791287}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1921751913
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1921751914}
+ - component: {fileID: 1921751915}
+ m_Layer: 0
+ m_Name: BuildManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1921751914
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1921751913}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 840277531}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1921751915
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1921751913}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2d6331caa25f3aa4aa4fbd51ef4ec71a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::BuildManager
+ cellSize: 1
+ groundLayer:
+ serializedVersion: 2
+ m_Bits: 128
+ constructionSitePrefab: {fileID: 7327242023390354019, guid: 7d362c5c1b34c2b4e901294618e6c3e8, type: 3}
+ selectedTurret:
+ turretName: asd
+ finalPrefab: {fileID: 7327242023390354019, guid: 7d362c5c1b34c2b4e901294618e6c3e8, type: 3}
+ ghostPrefab: {fileID: 7327242023390354019, guid: 7d362c5c1b34c2b4e901294618e6c3e8, type: 3}
+ buildTime: 10
+ size: {x: 1, y: 1}
+ isBuildMode: 0
+--- !u!1 &1953121155
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1953121158}
+ - component: {fileID: 1953121157}
+ - component: {fileID: 1953121156}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1953121156
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1953121155}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
+ m_SendPointerHoverToParent: 1
+ m_MoveRepeatDelay: 0.5
+ m_MoveRepeatRate: 0.1
+ m_XRTrackingOrigin: {fileID: 0}
+ m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
+ m_DeselectOnBackgroundClick: 1
+ m_PointerBehavior: 0
+ m_CursorLockBehavior: 0
+ m_ScrollDeltaPerTick: 6
+--- !u!114 &1953121157
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1953121155}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!4 &1953121158
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1953121155}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- - {fileID: 619394802}
- {fileID: 1332929789}
- - {fileID: 1091875497}
- {fileID: 824836044}
+ - {fileID: 840277531}
+ - {fileID: 293924234}
+ - {fileID: 1672791287}
+ - {fileID: 1953121158}
diff --git a/Assets/Scenes/SampleScene/LightingData.asset b/Assets/Scenes/SampleScene/LightingData.asset
new file mode 100644
index 0000000..136e8f5
Binary files /dev/null and b/Assets/Scenes/SampleScene/LightingData.asset differ
diff --git a/Assets/Scripts/GameBase/Billboard.cs b/Assets/Scripts/GameBase/Billboard.cs
new file mode 100644
index 0000000..04b8d1d
--- /dev/null
+++ b/Assets/Scripts/GameBase/Billboard.cs
@@ -0,0 +1,17 @@
+using UnityEngine;
+
+public class Billboard : MonoBehaviour
+{
+ private Transform _camTransform;
+
+ void Start()
+ {
+ _camTransform = Camera.main.transform;
+ }
+
+ void LateUpdate()
+ {
+ // UI가 항상 카메라를 정면으로 바라보게 함
+ transform.LookAt(transform.position + _camTransform.rotation * Vector3.forward, _camTransform.rotation * Vector3.up);
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/GameBase/BuildManager.cs b/Assets/Scripts/GameBase/BuildManager.cs
new file mode 100644
index 0000000..98948b4
--- /dev/null
+++ b/Assets/Scripts/GameBase/BuildManager.cs
@@ -0,0 +1,188 @@
+using UnityEngine;
+using UnityEngine.InputSystem;
+using UnityEngine.EventSystems;
+using System.Collections.Generic;
+
+public class BuildManager : MonoBehaviour
+{
+ public static BuildManager Instance;
+
+ [System.Serializable]
+ public struct TurretData // 타워별 정보를 담는 구조체
+ {
+ public string turretName;
+ public GameObject finalPrefab; // 완공 후 실제 타워
+ public GameObject ghostPrefab; // 건설 모드 시 미리보기
+ public float buildTime; // 건설 소요 시간
+ public Vector2Int size; // 점유 칸수
+ }
+
+ [Header("Settings")]
+ [SerializeField] private float cellSize = 1f;
+ [SerializeField] private LayerMask groundLayer;
+ [SerializeField] private GameObject constructionSitePrefab; // 공용 토대 프리팹
+
+ [Header("Current Selection")]
+ [SerializeField] private TurretData selectedTurret; // 현재 선택된 타워 데이터
+ [SerializeField] private bool isBuildMode = false;
+
+ private GameObject _ghostInstance;
+ private Material _ghostMaterial;
+ private HashSet _occupiedNodes = new HashSet();
+ private PlayerInputActions _inputActions;
+
+ void Awake()
+ {
+ Instance = this;
+ _inputActions = new PlayerInputActions();
+ }
+
+ void OnEnable()
+ {
+ _inputActions.Player.Build.performed += OnBuildPerformed;
+ _inputActions.Player.Cancel.performed += OnCancelPerformed;
+ _inputActions.Player.ToggleBuild.performed += OnTogglePerformed;
+ _inputActions.Enable();
+ }
+
+ void OnDisable()
+ {
+ _inputActions.Disable();
+ }
+
+ void Update()
+ {
+ if (isBuildMode)
+ {
+ UpdateGhost();
+ }
+ }
+
+ // --- Input Callbacks ---
+ private void OnTogglePerformed(InputAction.CallbackContext context) => ToggleBuildMode();
+ private void OnCancelPerformed(InputAction.CallbackContext context)
+ {
+ if (isBuildMode) ToggleBuildMode();
+ }
+
+ private void OnBuildPerformed(InputAction.CallbackContext context)
+ {
+ if (!isBuildMode || EventSystem.current.IsPointerOverGameObject()) return;
+
+ Vector2 mousePos = Mouse.current.position.ReadValue();
+ Ray ray = Camera.main.ScreenPointToRay(mousePos);
+
+ if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, groundLayer))
+ {
+ Vector2Int gridPos = WorldToGrid(hit.point);
+ if (CanBuild(gridPos, selectedTurret.size))
+ {
+ Build(gridPos, selectedTurret);
+ }
+ }
+ }
+
+ // --- Core Logic ---
+ private void ToggleBuildMode()
+ {
+ isBuildMode = !isBuildMode;
+
+ if (isBuildMode) CreateGhost();
+ else DestroyGhost();
+ }
+
+ private void CreateGhost()
+ {
+ if (_ghostInstance != null) Destroy(_ghostInstance);
+ _ghostInstance = Instantiate(selectedTurret.ghostPrefab);
+ _ghostMaterial = _ghostInstance.GetComponentInChildren().material;
+ }
+
+ private void DestroyGhost()
+ {
+ if (_ghostInstance != null) Destroy(_ghostInstance);
+ }
+
+ private void UpdateGhost()
+ {
+ if (_ghostInstance == null) return;
+
+ Vector2 mousePos = Mouse.current.position.ReadValue();
+ Ray ray = Camera.main.ScreenPointToRay(mousePos);
+
+ if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, groundLayer))
+ {
+ _ghostInstance.SetActive(true);
+ Vector2Int gridPos = WorldToGrid(hit.point);
+ _ghostInstance.transform.position = GridToWorld(gridPos, selectedTurret.size);
+
+ bool canBuild = CanBuild(gridPos, selectedTurret.size);
+ _ghostMaterial.color = canBuild ? new Color(0, 1, 0, 0.5f) : new Color(1, 0, 0, 0.5f);
+ }
+ else
+ {
+ _ghostInstance.SetActive(false);
+ }
+ }
+
+ private void Build(Vector2Int gridPos, TurretData data)
+ {
+ // 1. 프리팹 할당 여부 체크
+ if (constructionSitePrefab == null)
+ {
+ Debug.LogError("BuildManager: Construction Site Prefab이 할당되지 않았습니다!");
+ return;
+ }
+
+ if (data.finalPrefab == null)
+ {
+ Debug.LogError($"BuildManager: {data.turretName}의 Final Prefab이 할당되지 않았습니다!");
+ return;
+ }
+
+ // 2. 점유 노드 등록
+ for (int x = 0; x < data.size.x; x++)
+ for (int y = 0; y < data.size.y; y++)
+ _occupiedNodes.Add(new Vector2Int(gridPos.x + x, gridPos.y + y));
+
+ // 3. 토대 생성
+ GameObject siteObj = Instantiate(constructionSitePrefab, GridToWorld(gridPos, data.size), Quaternion.identity);
+
+ // 4. 컴포넌트 존재 여부 체크
+ ConstructionSite siteScript = siteObj.GetComponent();
+ if (siteScript != null)
+ {
+ siteScript.Initialize(data.finalPrefab, data.buildTime);
+ }
+ else
+ {
+ Debug.LogError("BuildManager: 생성된 토대 프리팹에 ConstructionSite 스크립트가 없습니다!");
+ }
+
+ ToggleBuildMode();
+ }
+
+ // --- Utilities ---
+ private bool CanBuild(Vector2Int startPos, Vector2Int size)
+ {
+ for (int x = 0; x < size.x; x++)
+ for (int y = 0; y < size.y; y++)
+ if (_occupiedNodes.Contains(new Vector2Int(startPos.x + x, startPos.y + y))) return false;
+ return true;
+ }
+
+ private Vector2Int WorldToGrid(Vector3 worldPos) => new Vector2Int(Mathf.RoundToInt(worldPos.x / cellSize), Mathf.RoundToInt(worldPos.z / cellSize));
+
+ private Vector3 GridToWorld(Vector2Int gridPos, Vector2Int size)
+ {
+ return new Vector3(gridPos.x * cellSize + (size.x - 1) * cellSize * 0.5f, 0.05f, gridPos.y * cellSize + (size.y - 1) * cellSize * 0.5f);
+ }
+
+ private void OnDrawGizmos()
+ {
+ Gizmos.color = new Color(1, 1, 1, 0.1f);
+ for (int x = -10; x <= 10; x++)
+ for (int z = -10; z <= 10; z++)
+ Gizmos.DrawWireCube(new Vector3(x * cellSize, 0, z * cellSize), new Vector3(cellSize, 0.01f, cellSize));
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/GameBase/ConstructionSite.cs b/Assets/Scripts/GameBase/ConstructionSite.cs
new file mode 100644
index 0000000..bde0da2
--- /dev/null
+++ b/Assets/Scripts/GameBase/ConstructionSite.cs
@@ -0,0 +1,55 @@
+using UnityEngine;
+using UnityEngine.UI; // UI 사용을 위해 추가
+
+public class ConstructionSite : MonoBehaviour
+{
+ [Header("UI Settings")]
+ [SerializeField] private GameObject uiPrefab; // 방금 만든 Canvas 프리팹
+ [SerializeField] private Vector3 uiOffset = new Vector3(0, 2f, 0); // 머리 위 높이
+
+ private Slider _progressSlider;
+ private GameObject _finalTurretPrefab;
+ private float _buildTime;
+ private float _currentProgress = 0f;
+
+ public void Initialize(GameObject finalPrefab, float time)
+ {
+ _finalTurretPrefab = finalPrefab;
+ _buildTime = time;
+
+ // UI 생성 및 초기화
+ if (uiPrefab != null)
+ {
+ GameObject uiObj = Instantiate(uiPrefab, transform.position + uiOffset, Quaternion.identity, transform);
+ _progressSlider = uiObj.GetComponentInChildren();
+ if (_progressSlider != null)
+ {
+ _progressSlider.maxValue = 1f;
+ _progressSlider.value = 0f;
+ }
+ }
+ }
+
+ public void AdvanceConstruction(float amount)
+ {
+ _currentProgress += amount;
+ float ratio = _currentProgress / _buildTime;
+
+ // 슬라이더 업데이트
+ if (_progressSlider != null)
+ {
+ _progressSlider.value = ratio;
+ }
+
+ if (_currentProgress >= _buildTime)
+ {
+ CompleteBuild();
+ }
+ }
+
+ private void CompleteBuild()
+ {
+ Instantiate(_finalTurretPrefab, transform.position, transform.rotation);
+ Destroy(gameObject);
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Player/PlayerBuildInteract.cs b/Assets/Scripts/Player/PlayerBuildInteract.cs
new file mode 100644
index 0000000..ec1df72
--- /dev/null
+++ b/Assets/Scripts/Player/PlayerBuildInteract.cs
@@ -0,0 +1,58 @@
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+public class PlayerBuildInteract : MonoBehaviour
+{
+ [Header("Interaction Settings")]
+ [SerializeField] private float interactRange = 3f; // 건설 가능 거리
+ [SerializeField] private float buildSpeedMultiplier = 1f; // 건설 속도 배율
+ [SerializeField] private LayerMask constructionLayer; // 토대 레이어 (선택 사항)
+
+ private PlayerInputActions _inputActions;
+ private bool _isInteracting = false;
+
+ void Awake()
+ {
+ _inputActions = new PlayerInputActions();
+
+ // Interact 액션 연결 (Hold 방식)
+ _inputActions.Player.Interact.started += ctx => _isInteracting = true;
+ _inputActions.Player.Interact.canceled += ctx => _isInteracting = false;
+ }
+
+ void OnEnable() => _inputActions.Enable();
+ void OnDisable() => _inputActions.Disable();
+
+ void Update()
+ {
+ // 키를 누르고 있을 때만 실행
+ if (_isInteracting)
+ {
+ PerformConstruction();
+ }
+ }
+
+ void PerformConstruction()
+ {
+ // 주변의 모든 콜라이더 검사
+ Collider[] targets = Physics.OverlapSphere(transform.position, interactRange, constructionLayer);
+
+ foreach (var col in targets)
+ {
+ // 토대 컴포넌트가 있는지 확인
+ ConstructionSite site = col.GetComponent();
+ if (site != null)
+ {
+ // 드디어 여기서 호출합니다!
+ site.AdvanceConstruction(Time.deltaTime * buildSpeedMultiplier);
+ }
+ }
+ }
+
+ // 에디터에서 상호작용 범위를 확인하기 위함
+ void OnDrawGizmosSelected()
+ {
+ Gizmos.color = Color.yellow;
+ Gizmos.DrawWireSphere(transform.position, interactRange);
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Player/PlayerController.cs b/Assets/Scripts/Player/PlayerController.cs
deleted file mode 100644
index b96ebbd..0000000
--- a/Assets/Scripts/Player/PlayerController.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using UnityEngine;
-using UnityEngine.InputSystem; // New Input System 사용
-
-public class PlayerMovement : MonoBehaviour
-{
- private Rigidbody _rb;
- private Vector2 _inputVector;
- [SerializeField] private float moveSpeed = 5f;
-
- void Awake()
- {
- _rb = GetComponent();
- }
-
- // Player Input 컴포넌트의 Behavior가 'Send Messages'일 때 자동 호출됨
- // Input Action 이름이 "Move"라면 "OnMove"라는 메서드를 찾습니다.
- void OnMove(InputValue value)
- {
- _inputVector = value.Get();
- }
-
- void FixedUpdate()
- {
- // 물리 연산은 프레임 독립적인 FixedUpdate에서 수행
- Move();
- }
-
- void Move()
- {
- Vector3 movement = new Vector3(_inputVector.x, 0, _inputVector.y) * moveSpeed;
-
- // Rigidbody의 속도를 직접 제어하거나 MovePosition 사용
- // 등속도 이동을 위해 velocity의 x, z만 변경 (y는 중력 유지를 위해 기존 값 사용)
- _rb.linearVelocity = new Vector3(movement.x, _rb.linearVelocity.y, movement.z);
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Player/PlayerMovement.cs b/Assets/Scripts/Player/PlayerMovement.cs
new file mode 100644
index 0000000..8cf6f0d
--- /dev/null
+++ b/Assets/Scripts/Player/PlayerMovement.cs
@@ -0,0 +1,36 @@
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+public class PlayerMovement : MonoBehaviour
+{
+ [SerializeField] private float moveSpeed = 5f;
+ private Vector2 _moveInput;
+ private CharacterController _controller;
+ private PlayerInputActions _inputActions;
+
+ void Awake()
+ {
+ _controller = GetComponent();
+ _inputActions = new PlayerInputActions();
+
+ // Move 액션 연결 (Vector2 타입으로 설정되어 있어야 함)
+ _inputActions.Player.Move.performed += ctx => _moveInput = ctx.ReadValue();
+ _inputActions.Player.Move.canceled += ctx => _moveInput = Vector2.zero;
+ }
+
+ void OnEnable() => _inputActions.Enable();
+ void OnDisable() => _inputActions.Disable();
+
+ void Update()
+ {
+ // 입력받은 방향으로 이동 계산
+ Vector3 move = new Vector3(_moveInput.x, 0, _moveInput.y);
+ _controller.Move(move * Time.deltaTime * moveSpeed);
+
+ // 이동 중일 때 바라보는 방향 전환 (선택 사항)
+ if (move != Vector3.zero)
+ {
+ transform.forward = move;
+ }
+ }
+}
\ No newline at end of file
diff --git a/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png
new file mode 100644
index 0000000..f2e8619
Binary files /dev/null and b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png differ
diff --git a/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png.json b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png.json
new file mode 100644
index 0000000..6229e61
--- /dev/null
+++ b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png.json
@@ -0,0 +1,11 @@
+{
+ "asset": "c179f86efc9ecef499be9cb95262e4f9",
+ "fileName": "019bb115-c46d-72e1-bbe6-957167ee77a3_Preview.png",
+ "prompt": "ground",
+ "negativePrompt": "",
+ "model": "44ec3749-963a-44b1-aa54-dc19f6ed8ab2",
+ "modelName": "Unity Texture2D",
+ "customSeed": 1964709878,
+ "w3CTraceId": "55a4d6a7c178e3f36138e30ab6152dea",
+ "refinementMode": "Generation"
+}
\ No newline at end of file
diff --git a/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat
new file mode 100644
index 0000000..9c29bb7
--- /dev/null
+++ b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat
@@ -0,0 +1,228 @@
+%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: GroundMaterial
+ m_Shader: {fileID: 4800000, guid: 69c1f799e772cb6438f56c23efccb782, 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
+ - DepthOnly
+ - SHADOWCASTER
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _AlphaTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _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}
+ - _Control:
+ 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}
+ - _DetailTex:
+ 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}
+ - _Mask0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Mask3:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MaskTex:
+ 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}
+ - _Normal0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Normal3:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _NormalMap:
+ 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}
+ - _Splat0:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat1:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat2:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _Splat3:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TerrainHolesTexture:
+ 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: 10
+ - _EnableExternalAlpha: 0
+ - _EnableHeightBlend: 0
+ - _EnableInstancedPerPixelNormal: 1
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _HeightTransition: 0
+ - _Metallic: 0
+ - _Metallic0: 0
+ - _Metallic1: 0
+ - _Metallic2: 0
+ - _Metallic3: 0
+ - _Mode: 0
+ - _NumLayersCount: 1
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _Smoothness0: 0.5
+ - _Smoothness1: 0.5
+ - _Smoothness2: 0.5
+ - _Smoothness3: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 1
+ - _UVSec: 0
+ - _WindQuality: 0
+ - _WorkflowMode: 1
+ - _XRMotionVectorsPass: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.1001966, g: 1, b: 0, a: 1}
+ - _Color: {r: 0.10019658, g: 1, b: 0, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _HueVariation: {r: 1, g: 0.5, b: 0, a: 0.1}
+ - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
+--- !u!114 &5956188262465732407
+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/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat.json b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat.json
new file mode 100644
index 0000000..68e1f1a
--- /dev/null
+++ b/GeneratedAssets/c179f86efc9ecef499be9cb95262e4f9/GroundMaterial.mat.json
@@ -0,0 +1,11 @@
+{
+ "asset": "c179f86efc9ecef499be9cb95262e4f9",
+ "fileName": "GroundMaterial.mat",
+ "prompt": "",
+ "negativePrompt": "",
+ "model": "",
+ "modelName": "",
+ "customSeed": -1,
+ "w3CTraceId": "",
+ "refinementMode": "Generation"
+}
\ No newline at end of file
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
index e332701..e8228a7 100644
--- a/ProjectSettings/TagManager.asset
+++ b/ProjectSettings/TagManager.asset
@@ -14,8 +14,8 @@ TagManager:
- Water
- UI
- Enemy
- -
- -
+ - Ground
+ - ConstructionZone
-
-
-