[SerializeField] BoxCollider2D SpawnArea;
private void Randomposition()
{
Bounds bounds = SpawnArea.bounds;
float x =SpawnArea.transform.position.x+ Random.Range(bounds.min.x, bounds.max.x);
float y = SpawnArea.transform.position.y+Random.Range(bounds.min.y, bounds.max.y);
//перед изменением надо проверить на наличие змейки в точке
// не уверен что сработает , без должно тож работать
Vector3 newpos= new Vector3(Mathf.Round(x) + 0.5f, Mathf.Round(y) + 0.5f, -1f); //0.5 из за того что объект равен 1,1
if (IsGetSnake(newpos))
{
Randomposition();
return;
}
transform.position = newpos;
}
bool IsGetSnake(Vector3 pos)
{
bool shake = false;
if (Physics.Raycast(pos + Vector3.forward, -Vector3.forward, out RaycastHit hit))
{
if (hit.transform.tag == "snake")
{
shake = true;
}
}
return shake;
}
private void Start()
{
Randomposition();
}
private void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "snake")
{
Randomposition();
}
}