[Add] FishNet
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
using FishNet.Connection;
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Component.Ownership
|
||||
{
|
||||
/// <summary>
|
||||
/// Adding this component allows any client to use predictive spawning on this prefab.
|
||||
/// </summary>
|
||||
public class PredictedSpawn : NetworkBehaviour
|
||||
{
|
||||
#region Serialized.
|
||||
/// <summary>
|
||||
/// True to allow clients to predicted spawn this object.
|
||||
/// </summary>
|
||||
public bool GetAllowSpawning() => _allowSpawning;
|
||||
|
||||
/// <summary>
|
||||
/// Sets to allow predicted spawning. This must be set on client and server.
|
||||
/// </summary>
|
||||
/// <param name = "value">New value.</param>
|
||||
public void SetAllowSpawning(bool value) => _allowSpawning = value;
|
||||
|
||||
[Tooltip("True to allow clients to predicted spawn this object.")]
|
||||
[SerializeField]
|
||||
private bool _allowSpawning = true;
|
||||
|
||||
/// <summary>
|
||||
/// True to allow clients to predicted despawn this object.
|
||||
/// </summary>
|
||||
public bool GetAllowDespawning() => _allowDespawning;
|
||||
|
||||
/// <summary>
|
||||
/// Sets to allow predicted despawning. This must be set on client and server.
|
||||
/// </summary>
|
||||
/// <param name = "value">New value.</param>
|
||||
public void SetAllowDespawning(bool value) => _allowDespawning = value;
|
||||
|
||||
[Tooltip("True to allow clients to predicted despawn this object.")]
|
||||
[SerializeField]
|
||||
private bool _allowDespawning = true;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Called on the client when trying to predicted spawn this object.
|
||||
/// </summary>
|
||||
/// <param name = "owner">Owner specified to spawn with.</param>
|
||||
/// <returns>True if able to spawn.</returns>
|
||||
public virtual bool OnTrySpawnClient(NetworkConnection owner = null)
|
||||
{
|
||||
return GetAllowSpawning();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on the server when a client tries to predicted spawn this object.
|
||||
/// </summary>
|
||||
/// <param name = "spawner">Connection trying to predicted spawn this object.</param>
|
||||
/// <param name = "owner">Owner specified to spawn with.</param>
|
||||
/// <returns>True if able to spawn.</returns>
|
||||
public virtual bool OnTrySpawnServer(NetworkConnection spawner, NetworkConnection owner = null)
|
||||
{
|
||||
return GetAllowSpawning();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on the client when trying to predicted spawn this object.
|
||||
/// </summary>
|
||||
/// <returns>True if able to despawn.</returns>
|
||||
public virtual bool OnTryDespawnClient()
|
||||
{
|
||||
return GetAllowDespawning();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on the server when a client tries to predicted despawn this object.
|
||||
/// </summary>
|
||||
/// <param name = "despawner">Connection trying to predicted despawn this object.</param>
|
||||
/// <returns>True if able to despawn.</returns>
|
||||
public virtual bool OnTryDespawnServer(NetworkConnection despawner)
|
||||
{
|
||||
return GetAllowDespawning();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user