@NickName7331

Unity(C#) — Почему пуля не уничтожается при касании коллайдера?

Нажимая на определенную кнопку, персонаж стреляет пулей, она должна уничтожаться при касании с любым коллайдером кроме коллайдера хозяина(чтобы пуля не уничтожалась при появлении). Пуля выпускается, но не уничтожается когда пролетает другие коллайдеры. В чём проблема? Вот код:
private GameObject parent;  //Хозяин пули
	public GameObject Parent { set { parent = value; } get { return parent; } }

	private float speed = 10.0F;
	private Vector3 direction;
	public Vector3 Direction { set {direction = value; } }

	public Color Color
	{
		set { sprite.color = value; }
	}

	private SpriteRenderer sprite;

	private void Awake()
	{
		sprite = GetComponentInChildren<SpriteRenderer>();
	}

	private void Start()
	{
		Destroy (gameObject, 1.4F);
	}

	private void Update()
	{
		transform.position = Vector3.MoveTowards (transform.position, transform.position + direction, speed * 
        Time.deltaTime);
	}


	private void OnTriggerEnter2D(Collider2D collider) 
	{
		Unit unit = collider.GetComponent<Unit> ();

		if (unit.gameObject != parent) //Если игровой объект не является родителем(хозяином)
		{
			Destroy (gameObject);
		}
	}

За ранее спасибо.
  • Вопрос задан
  • 620 просмотров
Решения вопроса 3
Griboks
@Griboks Куратор тега C#
OnTriggerEnter2D работает с триггерами, OnCollisionEnter2D - с коллайдерами. Определитесь сначала.
Ответ написан
Комментировать
MrMureno
@MrMureno Куратор тега Unity
VR for all
а в иерархии в сцене покажите пожалуйста что из себя представляет пуля. и что из себя представляют коллайдеры , с которыми она соприкасается.

потому что так не ясно что у вас там не так.

а вообще вам наверняка поможет табличка коллизий. кто с кем "соприкасается"
https://docs.unity3d.com/ru/current/Manual/Collide...
(или на английском оригинал почитатйте) статичный. кинетик, с физическим телом. тригер. куча условий от которых может не засчитывать
OnTriggerEnter.
а тем более у вас там вроде как код под 2D,а сцена не понятно какая.
Ответ написан
@saylar
Разработчик Unity C#
Ну если у тебя все Тригер а не Колижон, то должно работать.
Сделай Debug Посмотри, что происходит.
Если ни чего не происходит, значит не правильно настроил коллайдеры.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы