TL;DR:
centerPosition 추가, Boid에 boundaryWeight와 CalculateBoundarySteering() 추가, CombineSteering에 합산// 중심으로 향하는 방향 계산
private Vector3 CalculateBoundarySteering()
{
,,,예외처리,,,
// 중심으로부터 거리 측정
Vector3 toCenter = centerPosition - transform.position;
float distanceToCenter = toCenter.magnitude;
if (distanceToCenter <= boundaryRadius) return Vector3.zero;
// 조종 벡터 값 계산
Vector3 desiredDir = toCenter.normalized;
Vector3 desiredVel = desiredDir * maxSpeed;
Vector3 steering = desiredVel - currentDirection * maxSpeed;
if (steering.magnitude > maxForce)
{
steering = steering.normalized * maxForce;
}
float t = Mathf.Clamp01((distanceToCenter - boundaryRadius) / boundaryRadius);
steering *= (boundaryWeight * t);
return steering;
}