From 88fb3d4cec80cd1ace17ffce12422f7f8bbf969a Mon Sep 17 00:00:00 2001 From: Stedd Date: Sat, 2 Sep 2023 15:50:05 +0200 Subject: [PATCH] WIP player movement --- Assets/PlayerMovement.cs | 50 ++++++++++++ Assets/PlayerMovement.cs.meta | 11 +++ Assets/Prefabs/Player.prefab | 74 +++++++++++++----- Assets/Scenes/SampleScene.meta | 8 ++ Assets/Scenes/SampleScene.unity | 32 ++++++++ .../SampleScene/NavMesh-NavMesh Surface.asset | Bin 0 -> 8652 bytes .../NavMesh-NavMesh Surface.asset.meta | 8 ++ Assets/Scenes/SampleScene/NavMesh-World.asset | Bin 0 -> 8644 bytes .../SampleScene/NavMesh-World.asset.meta | 8 ++ ProjectSettings/NavMeshAreas.asset | 6 +- 10 files changed, 176 insertions(+), 21 deletions(-) create mode 100644 Assets/PlayerMovement.cs create mode 100644 Assets/PlayerMovement.cs.meta create mode 100644 Assets/Scenes/SampleScene.meta create mode 100644 Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset create mode 100644 Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset.meta create mode 100644 Assets/Scenes/SampleScene/NavMesh-World.asset create mode 100644 Assets/Scenes/SampleScene/NavMesh-World.asset.meta diff --git a/Assets/PlayerMovement.cs b/Assets/PlayerMovement.cs new file mode 100644 index 0000000..c10b80a --- /dev/null +++ b/Assets/PlayerMovement.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Mirror; +using UnityEngine; +using UnityEngine.AI; +using UnityEngine.InputSystem; + +public class PlayerMovement : NetworkBehaviour +{ + [SerializeField] private NavMeshAgent _navMeshAgent; + + private Camera _camera; + + #region Server + + [Command] private void CmdMove() + { + _navMeshAgent.SetDestination(new(1, 1, 1)); + } + + #endregion + + #region Client + + private void OnEnable() + { + _camera = GetComponent(); + } + + private void KDSUpdate() + { + var mouse = Mouse.current; + + if (mouse.leftButton.wasPressedThisFrame) + { + RaycastHit hit; + Ray ray = _camera.ScreenPointToRay(new(mouse.position.x, mouse.position.y, 0)); + if (Physics.Raycast(GetComponent().transform.position, + transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity)) + { + Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, + Color.yellow); + Debug.Log("Did Hit"); + } + } + } + + #endregion +} \ No newline at end of file diff --git a/Assets/PlayerMovement.cs.meta b/Assets/PlayerMovement.cs.meta new file mode 100644 index 0000000..937f6ca --- /dev/null +++ b/Assets/PlayerMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc5d69536d0782647a3de12f2d524c45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index b5d759f..8bef261 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -286,8 +286,10 @@ GameObject: m_Component: - component: {fileID: 6498975337014063786} - component: {fileID: 2811985185363063978} - - component: {fileID: 1756213952929103018} - component: {fileID: 1712231977480214618} + - component: {fileID: 1756213952929103018} + - component: {fileID: 6135570535502036925} + - component: {fileID: 5713810977702277177} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -329,24 +331,6 @@ MonoBehaviour: serverOnly: 0 visible: 0 hasSpawned: 0 ---- !u!114 &1756213952929103018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9197140212603367960} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 91a604620298dff4fb1301fafef543f7, type: 3} - m_Name: - m_EditorClassIdentifier: - syncDirection: 0 - syncMode: 0 - syncInterval: 0.1 - _playerNameObject: {fileID: 9109353986266369291} - _displayName: Missing Name - _playerColor: {r: 0, g: 0, b: 0, a: 1} --- !u!114 &1712231977480214618 MonoBehaviour: m_ObjectHideFlags: 0 @@ -382,3 +366,55 @@ MonoBehaviour: compressRotation: 0 positionPrecision: 0.01 scalePrecision: 0.01 +--- !u!114 &1756213952929103018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9197140212603367960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91a604620298dff4fb1301fafef543f7, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0.1 + _playerNameObject: {fileID: 9109353986266369291} + _displayName: Missing Name + _playerColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!195 &6135570535502036925 +NavMeshAgent: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9197140212603367960} + m_Enabled: 1 + m_AgentTypeID: 0 + m_Radius: 0.5 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: 1 + m_BaseOffset: 0 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 +--- !u!114 &5713810977702277177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9197140212603367960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc5d69536d0782647a3de12f2d524c45, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Scenes/SampleScene.meta b/Assets/Scenes/SampleScene.meta new file mode 100644 index 0000000..1f2fb45 --- /dev/null +++ b/Assets/Scenes/SampleScene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5664a1e35aa07c547b1e1e4b1120d325 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index cc34b7c..47783f9 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -735,6 +735,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1393983815} + - component: {fileID: 1393983816} m_Layer: 0 m_Name: World m_TagString: Untagged @@ -759,6 +760,37 @@ Transform: - {fileID: 1808786537} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1393983816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393983814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a5ac11cc976e418e8d13136b07e1f52, type: 3} + m_Name: + m_EditorClassIdentifier: + 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.16666667 + m_MinRegionArea: 2 + m_NavMeshData: {fileID: 23800000, guid: 3cdd8be731de6b64bb0c689b1653771e, type: 2} + m_BuildHeightMesh: 0 --- !u!1 &1808786533 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset b/Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset new file mode 100644 index 0000000000000000000000000000000000000000..8b6f1a669105b20b8a595e50d9671238948ea0b8 GIT binary patch literal 8652 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 literal 0 HcmV?d00001 diff --git a/Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset.meta b/Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset.meta new file mode 100644 index 0000000..0469ecd --- /dev/null +++ b/Assets/Scenes/SampleScene/NavMesh-NavMesh Surface.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e15dabff909482c4384b55498acd5510 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene/NavMesh-World.asset b/Assets/Scenes/SampleScene/NavMesh-World.asset new file mode 100644 index 0000000000000000000000000000000000000000..18b4fa765d989c61a0e670009acd49669a47bb73 GIT binary patch literal 8644 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 literal 0 HcmV?d00001 diff --git a/Assets/Scenes/SampleScene/NavMesh-World.asset.meta b/Assets/Scenes/SampleScene/NavMesh-World.asset.meta new file mode 100644 index 0000000..8868f1b --- /dev/null +++ b/Assets/Scenes/SampleScene/NavMesh-World.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cdd8be731de6b64bb0c689b1653771e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset index 3b0b7c3..2e2e369 100644 --- a/ProjectSettings/NavMeshAreas.asset +++ b/ProjectSettings/NavMeshAreas.asset @@ -71,7 +71,7 @@ NavMeshProjectSettings: cost: 1 m_LastAgentTypeID: -887442657 m_Settings: - - serializedVersion: 2 + - serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -84,7 +84,9 @@ NavMeshProjectSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_SettingNames: