[Add] FishNet

This commit is contained in:
2026-03-30 20:11:57 +07:00
parent ee793a3361
commit c22c08753a
1797 changed files with 197950 additions and 1 deletions
@@ -0,0 +1,60 @@
using FishNet.Object;
using UnityEngine;
namespace FishNet.Example.ColliderRollbacks
{
/// <summary>
/// DEMO. CODE IS NOT OPTIMIZED.
/// Aims the camera.
/// </summary>
public class Aim : NetworkBehaviour
{
public PlayerCamera PlayerCamera { get; private set; }
private readonly Vector3 _offset = new(0f, 1.65f, 0f);
public override void OnStartClient()
{
if (IsOwner)
PlayerCamera = Camera.main.transform.GetComponent<PlayerCamera>();
}
private void Update()
{
if (!IsOwner || PlayerCamera == null)
return;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
MoveAim();
MoveCamera();
}
/// <summary>
/// Aims camera.
/// </summary>
private void MoveAim()
{
float speed = 2f;
// Yaw.
transform.Rotate(new(0f, Input.GetAxis("Mouse X") * speed, 0f));
// Pitch.
float pitch = PlayerCamera.transform.eulerAngles.x - Input.GetAxis("Mouse Y") * speed;
/* If not signed on X then make it
* signed for easy clamping. */
if (pitch > 180f)
pitch -= 360f;
pitch = Mathf.Clamp(pitch, -89f, 89f);
PlayerCamera.transform.eulerAngles = new(pitch, transform.eulerAngles.y, transform.eulerAngles.z);
}
/// <summary>
/// Moves camera.
/// </summary>
private void MoveCamera()
{
PlayerCamera.transform.position = transform.position + _offset;
PlayerCamera.transform.rotation = Quaternion.Euler(PlayerCamera.transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: e6d656f377f37164d8d7431aa4e43cdb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
assetPath: Assets/FishNet/Demos/ColliderRollback/Scripts/Player/Aim.cs
uploadId: 866910
@@ -0,0 +1,17 @@
using FishNet.Component.ColliderRollback;
using FishNet.Managing.Timing;
using FishNet.Object;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace FishNet.Example.ColliderRollbacks
{
/// <summary>
/// DEMO. CODE IS NOT OPTIMIZED.
/// Fires at objects.
/// </summary>
public class Fire : NetworkBehaviour
{
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 9d3558aad46c24549bea48d0e3938264
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
assetPath: Assets/FishNet/Demos/ColliderRollback/Scripts/Player/Fire.cs
uploadId: 866910
@@ -0,0 +1,16 @@
using UnityEngine;
namespace FishNet.Example.ColliderRollbacks
{
/// <summary>
/// DEMO. CODE IS NOT OPTIMIZED.
/// Doesn't do much...
/// </summary>
public class PlayerCamera : MonoBehaviour
{
/// <summary>
/// MuzzleFlash on the weapon.
/// </summary>
public Transform MuzzleFlash;
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: fe0209d73083bf744ba4925f8cad7144
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
assetPath: Assets/FishNet/Demos/ColliderRollback/Scripts/Player/PlayerCamera.cs
uploadId: 866910
@@ -0,0 +1,41 @@
using FishNet.Object;
using UnityEngine;
namespace FishNet.Example.ColliderRollbacks
{
/// <summary>
/// DEMO. CODE IS NOT OPTIMIZED.
/// Moves the player around.
/// </summary>
public class PlayerMotor : NetworkBehaviour
{
[SerializeField]
private float _moveRate = 3f;
private CharacterController _characterController;
public override void OnStartClient()
{
if (IsOwner)
_characterController = GetComponent<CharacterController>();
}
private void Update()
{
if (IsOwner)
{
Move();
}
}
private void Move()
{
if (_characterController == null)
return;
Vector3 gravity = new(0f, -10f, 0f);
Vector3 inputs = transform.TransformDirection(new(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")));
_characterController.Move((gravity + inputs) * _moveRate * Time.deltaTime);
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: c718ab30626bbd648952910f74780a06
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
assetPath: Assets/FishNet/Demos/ColliderRollback/Scripts/Player/PlayerMotor.cs
uploadId: 866910