Unity-WebSocket/Assets/FishNet/Runtime/Generated/Component/TakeOwnership/PredictedSpawn.cs
2025-06-28 11:28:54 +03:30

81 lines
3.0 KiB
C#

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();
}
}
}