Unity 2D Тригер

2075Unity / 2D / Тригер

Потрібна галочка Is Trigger

Reload2D LoadNextScene2D
Killzone2D LoadScene2D
Destroy2D DestroyShow2D
HealthBar2D HealthBarNumber2D
Teleport2D TwoWayTeleport2D
ChangeSize2D ChangeTransparent2D

public int sceneNumber;

void OnTriggerEnter2D(Collider2D other)
{
  if (other.tag == "Player")
  {
    UnityEngine.SceneManagement.SceneManager.LoadScene(sceneNumber);
  }
}


 

  • other – колайдер
  • other.name – назва
  • other.tag – назва групи ігрових об'єктів
  • other.gameObject – об'єкт
  • obj.activeSelf – чи об'єкт видимий
  • obj.SetActive(false) – зробити невидимим 
  • Destroy(this) – видалити скрипт
  • Destroy(obj, 3f) – знищити через 3 секунди
  • Destroy(GetComponent<BoxCollider2D>()) – видалити наш колайдер
  • SceneManager.LoadScene("Level 1") – перейти на сцену з назвою
  • Тригер може спрацьовувати двічі, особливо на великій швидкості

 


 

Щокадра
Rigidbody2D -> Sleeping Mode: Never Sleep - аби продовжував реагувати, коли герой зупинився
void OnTriggerStay2D(Collider2D other) {
  Debug.Log("Я тут. Я тут. Я тут...");
}
 

При виході або смерті, тригерний колайдер сина може трохи збивати
void OnTriggerExit2D(Collider2D other) {
  Debug.Log("Вийшов");
}
 
 
Без тригера
void OnCollisionEnter2D(Collision2D collision)
{
  print(collision.gameObject.tag);
}