Untitled
Anonymous
csharp
10/14/2026 11:16 PM
5.9 KB
1
Indexable
using UnityEngine;
using Unity.Netcode;
[RequireComponent(typeof(CharacterController))]
public class PlayerMovement : NetworkBehaviour
{
public float moveSpeed = 5f;
public float rotationSpeed = 12f;
public float gravity = -20f;
private CharacterController controller;
private Vector3 verticalVelocity;
public override void OnNetworkSpawn()
{
controller = GetComponent<CharacterController>();
// Only the owning player controls this character.
if (!IsOwner)
{
enabled = false;
}
}
private void Update()
{
if (!IsOwner || controller == null) return;
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Vector3 move = new Vector3(x, 0f, z);
move = Vector3.ClampMagnitude(move, 1f);
if (move.sqrMagnitude > 0.01f)
{
transform.rotation = Quaternion.Slerp(
transform.rotation,
Quaternion.LookRotation(move),
rotationSpeed * Time.deltaTime
);
}
controller.Move(move * moveSpeed * Time.deltaTime);
if (controller.isGrounded && verticalVelocity.y < 0f)
verticalVelocity.y = -2f;
verticalVelocity.y += gravity * Time.deltaTime;
controller.Move(
verticalVelocity * Time.deltaTime
);
}
}
)
)
}
}
}
}
}Editor is loading...
Leave a Comment