50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
public class FollowBox : MonoBehaviour
|
|
{
|
|
public Transform target;
|
|
|
|
public Rect box;
|
|
|
|
private Vector3 _position;
|
|
|
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
if (target == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_position = transform.position;
|
|
if (_position.x + box.x > target.position.x)
|
|
{
|
|
//Debug.Log($"position {_position}\nBox eval {_position.x + box.x}\nTarget position {target.position}");
|
|
_position.x = target.position.x + box.x + box.width;
|
|
}
|
|
|
|
if (_position.x + (box.x + box.width) < target.position.x)
|
|
{
|
|
_position.x = target.position.x - (box.x + box.width);
|
|
}
|
|
|
|
if (_position.y + box.y > target.position.y)
|
|
{
|
|
_position.y = target.position.y + box.y + box.height;
|
|
}
|
|
|
|
if (_position.y + (box.y + box.height) < target.position.y)
|
|
{
|
|
_position.y = target.position.y - (box.y + box.height);
|
|
}
|
|
|
|
transform.position = _position;
|
|
}
|
|
}
|