AderKonstantin 3cb9351bdf Huge Updates
Non-code updates:
- add new package Multiplayer Play Mode
- add new (test) Build Profile
- update (test) Level Design for MultiplayerScene
Code updates:
- RobotController.cs:
  - changed variable scopes to protected
  - changed function scopes to protected
  - add audioListener to NetworkObject
  - add new Input Methods: OnAim, OnCrouch, OnInteract
  - Trooper.cs - (test) descendant class for RobotController
2024-11-27 03:29:12 +03:00

91 lines
1.9 KiB
C#

using Unity.Netcode;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
public class Trooper : RobotController
{
// Gameplay - Scene Awake & Start
private void Awake()
{
characterController = GetComponent<CharacterController>();
playerInput = GetComponent<PlayerInput>();
}
// PlayerInput Events
// overrided Inputs Here
// Gameplay - Game Loop
private void Update()
{
if (!IsOwner)
{
return;
}
HandleMovement();
HandleRotation();
InternalLockUpdate();
}
// Networking Staff - Spawn & Despawn
public override void OnNetworkSpawn()
{
base.OnNetworkSpawn();
playerInput.enabled = IsOwner;
characterController.enabled = IsOwner;
mainCam.enabled = IsOwner;
Debug.Log($"NetworkObject ID: {NetworkObjectId} spawned with OwnerClientId: {OwnerClientId}");
}
public override void OnNetworkDespawn()
{
base.OnNetworkDespawn();
playerInput.enabled = false;
characterController.enabled = false;
mainCam.enabled = false;
Debug.Log($"NetworkObject ID: {NetworkObjectId} despawned");
}
// Networking Staff - Gameplay
[ServerRpc]
private new void JumpServerRPC()
{
if (characterController.isGrounded)
{
Debug.Log("Jumping as Trooper triggered.");
}
}
[ServerRpc]
private new void ShootServerRPC()
{
Debug.Log("Shooting as Trooper triggered.");
}
[ServerRpc]
private new void AimServerRPC()
{
Debug.Log("Aim as Trooper triggered.");
}
[ServerRpc]
private new void CrouchServerRPC()
{
Debug.Log("Crouch as Trooper triggered.");
}
[ServerRpc]
private new void InteractServerRPC()
{
Debug.Log("Interact as Trooper triggered.");
}
}