From bc21e94bc18724109894f06b0943799f4aa45978 Mon Sep 17 00:00:00 2001 From: Caleb Sandford deQuincey Date: Mon, 27 Oct 2025 17:26:17 +0000 Subject: [PATCH] Initial Project Commit --- Assets/Game/Characters/Player.prefab | 29 +++++++++++----------- Assets/Scenes/Sandbox.unity | 22 +--------------- Assets/Scripts/Combat/Fighter.cs | 23 ++++++++++++++--- Assets/Scripts/Control/PlayerController.cs | 2 +- Assets/Scripts/Movement/Mover.cs | 13 ++++++++-- 5 files changed, 48 insertions(+), 41 deletions(-) diff --git a/Assets/Game/Characters/Player.prefab b/Assets/Game/Characters/Player.prefab index a3a06013..80429603 100644 --- a/Assets/Game/Characters/Player.prefab +++ b/Assets/Game/Characters/Player.prefab @@ -9,9 +9,9 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8015539583010702812} - - component: {fileID: 3587278676972554892} - component: {fileID: 6569204325918158683} - component: {fileID: 749274615958258337} + - component: {fileID: 3587278676972554892} - component: {fileID: 8167086997812937973} - component: {fileID: 8689862253730295348} m_Layer: 0 @@ -37,19 +37,6 @@ Transform: - {fileID: 4809187057887522556} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3587278676972554892 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2547158256837586042} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 99048001b4ebc1543911415b71049d4a, type: 3} - m_Name: - m_EditorClassIdentifier: '::' - target: {fileID: 0} --- !u!195 &6569204325918158683 NavMeshAgent: m_ObjectHideFlags: 0 @@ -94,6 +81,19 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &3587278676972554892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2547158256837586042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 99048001b4ebc1543911415b71049d4a, type: 3} + m_Name: + m_EditorClassIdentifier: '::' + target: {fileID: 0} --- !u!114 &8167086997812937973 MonoBehaviour: m_ObjectHideFlags: 0 @@ -118,6 +118,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0dac85c6432a11746b07d2f6a021e2e4, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::RPG.Combat.Fighter + weaponRange: 2 --- !u!1001 &4809187057887722868 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Sandbox.unity b/Assets/Scenes/Sandbox.unity index 45ecd22a..224be169 100644 --- a/Assets/Scenes/Sandbox.unity +++ b/Assets/Scenes/Sandbox.unity @@ -323,28 +323,11 @@ Transform: m_CorrespondingSourceObject: {fileID: 404700, guid: f88e0c5504d699d4ebb950b8944bffcb, type: 3} m_PrefabInstance: {fileID: 1272537384} m_PrefabAsset: {fileID: 0} ---- !u!1 &301881566 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2547158256837586042, guid: a71733727311bfb40aadb9f960845a85, type: 3} - m_PrefabInstance: {fileID: 8511385713409244773} - m_PrefabAsset: {fileID: 0} --- !u!4 &301881567 stripped Transform: m_CorrespondingSourceObject: {fileID: 8015539583010702812, guid: a71733727311bfb40aadb9f960845a85, type: 3} m_PrefabInstance: {fileID: 8511385713409244773} m_PrefabAsset: {fileID: 0} ---- !u!114 &301881572 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 301881566} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0dac85c6432a11746b07d2f6a021e2e4, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::RPG.Combat.Fighter --- !u!1001 &345756676 PrefabInstance: m_ObjectHideFlags: 0 @@ -1915,10 +1898,7 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 2547158256837586042, guid: a71733727311bfb40aadb9f960845a85, type: 3} - insertIndex: -1 - addedObject: {fileID: 301881572} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: a71733727311bfb40aadb9f960845a85, type: 3} --- !u!1001 &8689034387179525829 PrefabInstance: diff --git a/Assets/Scripts/Combat/Fighter.cs b/Assets/Scripts/Combat/Fighter.cs index b716fe59..ad6b9722 100644 --- a/Assets/Scripts/Combat/Fighter.cs +++ b/Assets/Scripts/Combat/Fighter.cs @@ -1,22 +1,39 @@ using UnityEngine; using RPG.Movement; +using UnityEngine.Rendering; namespace RPG.Combat -{ +{ public class Fighter : MonoBehaviour { + [SerializeField] + private float weaponRange = 2f; Transform target; private void Update() { - if(target != null) + if (target == null) return; + if (!GetIsInRange()) { GetComponent().MoveTo(target.position); - target = null; + } + else + { + GetComponent().Stop(); } } + + private bool GetIsInRange() + { + return Vector3.Distance(transform.position, target.position) <= weaponRange; + } + public void Attack(CombatTarget combatTarget) { target = combatTarget.transform; } + public void Cancel() + { + target = null; + } } } diff --git a/Assets/Scripts/Control/PlayerController.cs b/Assets/Scripts/Control/PlayerController.cs index 1c89927f..2353bcaf 100644 --- a/Assets/Scripts/Control/PlayerController.cs +++ b/Assets/Scripts/Control/PlayerController.cs @@ -61,7 +61,7 @@ namespace RPG.Control if (hasHit) { if (moveAction.IsPressed()) - GetComponent().MoveTo(hit.point); + GetComponent().StartMoveAction(hit.point); return true; } return false; diff --git a/Assets/Scripts/Movement/Mover.cs b/Assets/Scripts/Movement/Mover.cs index f1f625fd..3810f589 100644 --- a/Assets/Scripts/Movement/Mover.cs +++ b/Assets/Scripts/Movement/Mover.cs @@ -1,3 +1,4 @@ +using RPG.Combat; using UnityEngine; using UnityEngine.AI; using UnityEngine.InputSystem; @@ -23,16 +24,24 @@ namespace RPG.Movement { UpdateAnimator(); } + public void StartMoveAction(Vector3 destination) + { + GetComponent().Cancel(); + MoveTo(destination); + } public void MoveTo(Vector3 destination) { navMeshAgent.destination = destination; + navMeshAgent.isStopped = false; + } + public void Stop() + { + navMeshAgent.isStopped = true; } private void UpdateAnimator() { - // This is your original code, which is correct! - // It just uses the cached variables now. Vector3 velocity = navMeshAgent.velocity; Vector3 localVelocity = transform.InverseTransformDirection(velocity); float speed = localVelocity.z;