Я изменил версию вопроса, в первой версии вопрос был задан не совсем правильно. EdgeCollider2D работает, всё правильно, просто Противник не получает урона от EdgeCollider2D.
Код следующий.
Тут полный код.
https://pastebin.com/ytF2gGf3
На этом изображении видно, что всё включено как положено, выбран тэг, коллайдер выключен, выбран как триггер.
Ивент стоит, функция выбрана;
Мы убедились в том, что EdgeCollider2D работает. В вышеуказанном коде было видно, что можно указать Тэги, от которых Enemy должен получать урон (см. строка 20, 56). Как вы уже поняли, компонент EdgeCollider2D висит на пустом гм (SwordCollider), который в свою очередь висит на игроке "Player". У игрока тэг Player, у SwordCollider тэг Sword.
В инспекторе выбран Тэг, от которого Enemy должен получить урон:
Я надеюсь вы поняли, почему код написан в Character.cs, а на игроке Player.cs, делаю NPC.
Enemy вообще не будет получать урона от моего триггера EdgeCollider2D, пока я в самом NPC не выберу своё же оружие (Enemy.cs также как и Player.cs использует Character.cs):
В таком случае Enemy будет получать урон от оружия с тегом "Sword", и казалось бы всё круто. А вот и нет. Не так это должно работать. Я не должен указывать своё оружие в Enemy, он и без того должен получить от моего оружия урон, ведь я как никак указал его у своего Player, вы видели.
Да и вообще, хоть даже если это и работает, то не так, как должно. Enemy получает урон не от триггера EdgeCollider2D, а от объекта с тэгом Sword. Т.е как вы помните у пустого гм SwordCollider тэг Sword, и если я тупо подойду и коснусь этой пустышкой Enemy, то он получит урон просто так.
Прошу вас люди добрые, спасите помогите. Сори за такую печальную историю одного несчастного НЕ программиста. Плак.