using System;
using UnityEngine;
namespace FastArena
{
public class GameObjectId : MonoBehaviour
{
public int Id { get; private set; } = -1;
internal void _SetId(int packetGameObjectId)
{
if (Id != -1)
throw new Exception($"GameObjectId is already set to {Id}");
Id = packetGameObjectId;
}
}
///
/// Component fetching GameObject's Transform from the server every tick.
///
public class SyncTransform : MonoBehaviour
{
public GameObjectId IdRef { get; private set; }
private void Start()
{
IdRef = GetComponent();
}
#if UNITY_SERVER
private void FixedUpdate()
{
Server.SendTransformUpdate(IdRef.Id, transform);
}
#else
internal void UpdateTransform(ref TransformUpdatePacket data)
{
transform.position = data.position;
transform.rotation = data.rotation;
}
#endif
}
}