Как предотвратить создание клонов объекта в Unity
Суть следующая. У меня есть шарик. Передвижение осуществляется при помощи мыши. Если его коллайдер сталкивается с любым другим коллайдером, то объект уничтожается. И создаётся новый объект в точке респауна. Когда столкновение происходит одновременно с несколькими коллайдерами, то создаётся несколько объектов. А должен один. Каким образом можно ограничить количество клонов, либо выполнять проверку на наличие клонов и уничтожать их?
Собственно код.
public class PlayerController : MonoBehaviour
{
public GameObject _player;
public Transform _startPosition;
private Vector2 _distance;
private float _playerPosX;
private float _playerPosY;
private void OnMouseDown()
{
_distance = Camera.main.WorldToScreenPoint(transform.position);
_playerPosX = Input.mousePosition.x - _distance.x;
_playerPosY = Input.mousePosition.y - _distance.y;
}
private void OnMouseDrag()
{
Vector2 _currentPosition = new Vector2(Input.mousePosition.x - _playerPosX, Input.mousePosition.y - _playerPosY);
Vector2 _worldPosition = Camera.main.ScreenToWorldPoint(_currentPosition);
_player.transform.position = _worldPosition;
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag.Equals("Hardles"))
{
ReInstantiatePlayer();
Debug.Log("TAG is HARDLES");
}
Debug.Log("Collizion enter");
}
private void ReInstantiatePlayer()
{
Instantiate(_player, _startPosition.transform.position, Quaternion.identity);
Destroy(_player, 0.0f);
}
}
Ответы (1 шт):
Если честно, по описанию не понятно почему бы просто не перемещать готовый шар на стартовую позицию, зачем удалять старые и плодить новые. Но если прям необходимо пересоздавать, то ранее вам уже описали идею с булевой isDead.