iFactory.Cutting.Unity/Assets/BITKit/Unity/Scripts/Entity/Net/EntityNetConfig.cs

33 lines
705 B
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BITKit.Entities
{
public sealed class EntityNetConfig : EntityBehavior
{
[SerializeField] private bool serverOnly;
[SerializeReference,SubclassSelector] private INetClient netClient;
[SerializeReference,SubclassSelector] private INetServer netServer;
[SerializeReference,SubclassSelector] private ITicker ticker;
public override void OnStart()
{
base.OnStart();
ticker?.Add(OnTick);
}
private void OnDestroy()
{
ticker?.Remove(OnTick);
}
private void OnTick(float deltaTime)
{
if (netClient.IsConnected && serverOnly)
{
Destroy(gameObject);
}
}
}
}