28 lines
831 B
C#
28 lines
831 B
C#
using UnityEngine;
|
|
|
|
namespace DDD
|
|
{
|
|
public class RestaurantCharacterMovement : MonoBehaviour
|
|
{
|
|
private RestaurantCharacterMovementConstraint _constraint;
|
|
private void Awake()
|
|
{
|
|
_constraint = gameObject.AddComponent<RestaurantCharacterMovementConstraint>();
|
|
}
|
|
|
|
public virtual bool CanMove()
|
|
{
|
|
// Get all components implements IRestaurantMovementConstraint
|
|
var constraints = GetComponents<IRestaurantMovementConstraint>();
|
|
// TODO : Maybe need optimize GetComponents?
|
|
foreach (var movementConstraint in constraints)
|
|
{
|
|
if (movementConstraint.IsBlockingMovement())
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
} |