В основном мне нужен объект, чтобы иметь возможность проходить сквозь объект точно так же, как если бы он был триггером, но все равно определять его как столкновение, потому что я сделал удар по врагам действующим (или способ получить phys22.overlapboxall чтобы обнаружить триггеры), вот код для атаки моего оружия и врага, который мне нужно пройти через игрока, но также нанести урон игроку.
if (AttackDelay <= 0)
{ //attacking
Collider2D[] EnemiesToDmg = Physics2D.OverlapBoxAll(AttackPos.position,new Vector2(AttackRangeX,AttackRangeY),0, WhatIsEnemy);
for (int i = 0; i < EnemiesToDmg.Length; i++)
{EnemiesToDmg[i].GetComponent<Health>().takeDamage(AttackDamage);}
и врагу
void FixedUpdate()
{
RotateAndMove(target2);
if (AttackRecharge<=AttackRechargeMax)
{
AttackRecharge += Time.deltaTime;
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.gameObject.layer==10)
{
player.gameObject.GetComponent<Health>().takeDamage(20);
}
if(collision.gameObject.transform==target2)
{
if (!IsVisible)
{
target2.position = player.position + (player.position - transform.position) / 5;
}
else
{
TeleportToCamera(target2);
}
}
}