/// <summary>
/// 限制在指定范围内的移动
/// 比如:挂载相机上面,当相机被其他逻辑控制移动时,最后会将相机设置到受限范围内
/// </summary>
[Comment("限制目标位置在指定范围内")]
public class ConstraintPosFollowComponent : MonoBehaviour
{
public Collider Constraint; //控制限制的Collider,设置好Collider的位置与Size范围即可
public Transform Target; //被限制的对象
public bool IsLimitY; //是否限制Y轴
void Start()
{
}
void LateUpdate()
{
if (Constraint == null || Target == null)
{
return;
}
var targetpos = Constraint.ClosestPoint(Target.transform.position); //计算目标的位置在指定Collider的范围内的受限位置
if (!IsLimitY)
targetpos.y = transform.position.y; //Y轴位置不受限
gameObject.transform.position = targetpos; //重置目标的位置
}
}