47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
namespace Marro.PacManUdon
|
|
{
|
|
using System;
|
|
using UnityEngine;
|
|
|
|
public abstract class GridMover : SyncedObject
|
|
{
|
|
protected Vector2 direction;
|
|
|
|
public virtual Vector2 GetPosition()
|
|
{
|
|
return (Vector2)transform.localPosition;
|
|
}
|
|
|
|
public virtual void SetPosition(Vector2 position)
|
|
{
|
|
transform.localPosition = new Vector3(position.x, position.y, transform.localPosition.z);
|
|
}
|
|
|
|
public virtual Vector2 GetDirection()
|
|
{
|
|
return direction;
|
|
}
|
|
|
|
public void SetDirection(Vector2 direction)
|
|
{
|
|
this.direction = direction;
|
|
UpdateAnimator();
|
|
}
|
|
|
|
protected abstract void UpdateAnimator();
|
|
|
|
public override void CollectSyncedData(byte[] data, ref int index, NetworkEventType eventType)
|
|
{
|
|
data.Append(GetPosition(), ref index);
|
|
data.Append(GetDirection(), ref index);
|
|
}
|
|
|
|
public override bool WriteSyncedData(byte[] data, ref int index, NetworkEventType eventType)
|
|
{
|
|
SetPosition(data.ReadVector2(ref index));
|
|
SetDirection(data.ReadVector2(ref index));
|
|
|
|
return true;
|
|
}
|
|
}
|
|
} |