Я пытаюсь сделать строительный аспект игры, который я делаю в единстве, используя c #. Мне нужно определить, строю ли я определенный слой.
Я пытался редактировать код ниже несколько раз, но не могу найти проблему. Я также посмотрел несколько видео, которые объясняют, что мой код должен работать, но, возможно, я просто не вижу что-то. Любая помощь будет великолепна.
Вот код, который у меня есть для определения слоя:
[SerializeField]
private LayerMask weaponNoBuildLayer;
[SerializeField]
private LayerMask pathNoBuildLayer;
private bool buildBlocked = false;
private GameObject blockTemplate;
blockTemplate.transform.position = new Vector2(newPosx, newPosy);
RaycastHit2D rayHit;
if(currentBlock.isWeapon == true)
{
rayHit = Physics2D.Raycast(blockTemplate.transform.position, Vector2.zero, Mathf.Infinity, weaponNoBuildLayer);
}
else
{
rayHit = Physics2D.Raycast(blockTemplate.transform.position, Vector2.zero, Mathf.Infinity, pathNoBuildLayer);
}
if(rayHit.collider != null)
{
Debug.Log("yh");
buildBlocked = true;
}
else
{
buildBlocked = false;
}
Что нужно сделать, так это установить для Boolean buildBlocked значение true, если луч сталкивается с определенными слоями (в дальнейшем в коде в качестве маски слоя), но это не так, а buildBlocked постоянно имеет значение false. Опять же, любая помощь будет высоко ценится.