networkplayercontroller 개선

This commit is contained in:
2026-01-24 02:04:18 +09:00
parent f29f44e8ac
commit 84d4decd3a
2 changed files with 77 additions and 81 deletions

View File

@@ -607,6 +607,10 @@
<HintPath>Library\PackageCache\com.unity.visualscripting@191c0d7e3b69\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>Library\PackageCache\com.unity.nuget.newtonsoft-json@4dfd81071c64\Runtime\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>Library\PackageCache\com.unity.nuget.mono-cecil@ecb9724e46ff\Mono.Cecil.dll</HintPath>
<Private>False</Private>
@@ -615,10 +619,6 @@
<HintPath>Library\PackageCache\com.unity.collections@aea9d3bd5e19\Unity.Collections.Tests\System.Runtime.CompilerServices.Unsafe\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>Library\PackageCache\com.unity.nuget.newtonsoft-json@4dfd81071c64\Runtime\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="netstandard">
<HintPath>C:\Program Files\Unity\Hub\Editor\6000.3.3f1\Editor\Data\NetStandard\ref\2.1.0\netstandard.dll</HintPath>
<Private>False</Private>
@@ -1151,12 +1151,16 @@
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkSolutionInterface.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetStats">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetStats.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Rendering.LightTransport.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Rendering.LightTransport.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetStats">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetStats.dll</HintPath>
<Reference Include="Unity.Netcode.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Netcode.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.Core.ShaderLibrary">
@@ -1167,30 +1171,26 @@
<HintPath>Library\ScriptAssemblies\Unity.2D.IK.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Netcode.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Netcode.Runtime.dll</HintPath>
<Reference Include="Unity.Multiplayer.Tools.NetworkSimulator.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkSimulator.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.VisualScripting.SettingsProvider.Editor">
<HintPath>Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Animation.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Animation.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetworkSimulator.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkSimulator.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InternalAPIEditorBridge.001">
<HintPath>Library\ScriptAssemblies\Unity.InternalAPIEditorBridge.001.dll</HintPath>
<Reference Include="Unity.Multiplayer.Tools.DependencyInjection">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.DependencyInjection.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Networking.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Networking.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InternalAPIEditorBridge.001">
<HintPath>Library\ScriptAssemblies\Unity.InternalAPIEditorBridge.001.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Splines.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Splines.Editor.dll</HintPath>
<Private>False</Private>
@@ -1203,32 +1203,28 @@
<HintPath>Library\ScriptAssemblies\Unity.RenderPipelines.Universal.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Common.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Common.Editor.dll</HintPath>
<Reference Include="Unity.Multiplayer.Tools.NetworkProfiler.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkProfiler.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Timeline">
<HintPath>Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetworkProfiler.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkProfiler.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PPv2URPConverters">
<HintPath>Library\ScriptAssemblies\PPv2URPConverters.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Tooling.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Tooling.Editor.dll</HintPath>
<Reference Include="Unity.2D.Common.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Common.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetVis.Configuration">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetVis.Configuration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.DependencyInjection">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.DependencyInjection.dll</HintPath>
<Reference Include="Unity.2D.Tooling.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Tooling.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PPv2URPConverters">
<HintPath>Library\ScriptAssemblies\PPv2URPConverters.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Animation.Runtime">
@@ -1259,6 +1255,10 @@
<HintPath>Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Animation.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Animation.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Burst.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Burst.Editor.dll</HintPath>
<Private>False</Private>
@@ -1267,18 +1267,22 @@
<HintPath>Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.Adapters">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.Adapters.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Mathematics.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Mathematics.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Cinemachine.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Cinemachine.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetStatsMonitor.Configuration">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetStatsMonitor.Configuration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Cinemachine.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Cinemachine.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.UnifiedRayTracing.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.UnifiedRayTracing.Runtime.dll</HintPath>
<Private>False</Private>
@@ -1295,10 +1299,6 @@
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetVis.Editor.Visualization.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.Adapters">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.Adapters.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Rider.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
<Private>False</Private>
@@ -1311,6 +1311,10 @@
<HintPath>Library\ScriptAssemblies\Unity.2D.Aseprite.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.DependencyInjection.UIElements">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.DependencyInjection.UIElements.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.Psdimporter.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.Psdimporter.Editor.dll</HintPath>
<Private>False</Private>
@@ -1351,16 +1355,12 @@
<HintPath>Library\ScriptAssemblies\Unity.2D.IK.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.SpriteShape.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.2D.SpriteShape.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.DependencyInjection.UIElements">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.DependencyInjection.UIElements.dll</HintPath>
<Reference Include="Unity.2D.SpriteShape.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.2D.SpriteShape.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.VisualStudio.Editor">
@@ -1379,20 +1379,16 @@
<HintPath>Library\ScriptAssemblies\Unity.Collections.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InputSystem.ForUI">
<HintPath>Library\ScriptAssemblies\Unity.InputSystem.ForUI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.GPUDriven.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.RenderPipelines.GPUDriven.Runtime.dll</HintPath>
<Reference Include="Unity.Profiling.Core">
<HintPath>Library\ScriptAssemblies\Unity.Profiling.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Networking.Transport">
<HintPath>Library\ScriptAssemblies\Unity.Networking.Transport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Profiling.Core">
<HintPath>Library\ScriptAssemblies\Unity.Profiling.Core.dll</HintPath>
<Reference Include="Unity.InputSystem.ForUI">
<HintPath>Library\ScriptAssemblies\Unity.InputSystem.ForUI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Timeline.Editor">
@@ -1403,6 +1399,10 @@
<HintPath>Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.GPUDriven.Runtime">
<HintPath>Library\ScriptAssemblies\Unity.RenderPipelines.GPUDriven.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Mathematics">
<HintPath>Library\ScriptAssemblies\Unity.Mathematics.dll</HintPath>
<Private>False</Private>
@@ -1483,12 +1483,8 @@
<HintPath>Library\ScriptAssemblies\Unity.RenderPipelines.Core.Editor.Shared.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.2D.SpriteShape.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.SpriteShape.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetworkSimulator.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkSimulator.Editor.dll</HintPath>
<Reference Include="Unity.Multiplayer.Tools.Initialization">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.Initialization.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InputSystem">
@@ -1499,6 +1495,10 @@
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetStatsMonitor.Component.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetworkSimulator.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetworkSimulator.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Settings.Editor">
<HintPath>Library\ScriptAssemblies\Unity.Settings.Editor.dll</HintPath>
<Private>False</Private>
@@ -1507,16 +1507,16 @@
<HintPath>Library\ScriptAssemblies\Unity.Splines.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.Initialization">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.Initialization.dll</HintPath>
<Reference Include="Unity.Multiplayer.Tools.NetVis.Editor.UI">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetVis.Editor.UI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Multiplayer.Tools.NetVis.Editor.UI">
<HintPath>Library\ScriptAssemblies\Unity.Multiplayer.Tools.NetVis.Editor.UI.dll</HintPath>
<Reference Include="Unity.2D.SpriteShape.Editor">
<HintPath>Library\ScriptAssemblies\Unity.2D.SpriteShape.Editor.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>

View File

@@ -8,11 +8,6 @@ public class NetworkPlayerController : NetworkBehaviour
[Header("Movement Settings")]
public float moveSpeed = 5f;
public float rotationSpeed = 10f;
public float jumpHeight = 1.5f;
public float gravity = -19.62f;
[Header("Input")]
[SerializeField] private InputActionAsset inputActions;
private Vector2 _moveInput;
private CharacterController _controller;
@@ -25,18 +20,14 @@ public class NetworkPlayerController : NetworkBehaviour
_animator = GetComponent<Animator>();
}
// NGO 초기화
public override void OnNetworkSpawn()
{
if (!IsOwner) return;
// 1. 씬에 있는 가상 카메라를 찾습니다.
// Unity 6에서는 CinemachineVirtualCamera 대신 CinemachineCamera를 주로 사용합니다.
var vcam = GameObject.FindAnyObjectByType<CinemachineCamera>();
var vcam = GameObject.FindFirstObjectByType<CinemachineCamera>();
if (vcam != null)
{
// 2. 카메라의 Follow와 LookAt 대상을 '나'로 설정합니다.
vcam.Follow = transform;
vcam.LookAt = transform;
Debug.Log("<color=green>[Camera] 로컬 플레이어에게 카메라가 연결되었습니다.</color>");
@@ -48,12 +39,9 @@ public class NetworkPlayerController : NetworkBehaviour
public override void OnNetworkDespawn()
{
if (IsOwner)
if (IsOwner && _inputActions != null)
{
if (inputActions != null)
{
inputActions.Disable();
}
_inputActions.Disable();
}
}
@@ -63,13 +51,21 @@ public class NetworkPlayerController : NetworkBehaviour
_moveInput = _inputActions.Player.Move.ReadValue<Vector2>();
Vector3 move = new Vector3(_moveInput.x, 0, _moveInput.y).normalized;
if (move.magnitude >= 0.1f)
{
Quaternion targetRotation = Quaternion.LookRotation(move);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);
_controller.Move(move * moveSpeed * Time.deltaTime);
if (_controller != null)
{
_controller.Move(move * moveSpeed * Time.deltaTime);
}
}
_animator.SetFloat("MoveSpeed", move.magnitude);
if (_animator != null)
{
_animator.SetFloat("MoveSpeed", move.magnitude);
}
}
}