Как сделать столкновение снарядов с игроком в Unity2d правильным?
Суть проблемы заключается в том, что снаряды противника работают некорректно, задевая игрока там, где его нет, а где он есть - проходят насквозь.
Код снаряда:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class shamrockProjectile : MonoBehaviour
{
public float shootSpeed;
public float distance;
public LayerMask isSolid;
void Start()
{
}
void Update()
{
transform.Translate(Vector2.right * shootSpeed * Time.deltaTime);
RaycastHit2D hitInfo = Physics2D.Raycast(transform.position, transform.up, distance, isSolid);
if(hitInfo.collider != null){
if(hitInfo.collider.CompareTag("Player")){
charscript.Instance.GetDamage();
Destroy(gameObject);
}
}
}
}
Грешу на Rayсast2D, Ведь снаряд пропадает именно там, где игрок был в момент выстрела, а не в момент прилетания снаряда. (Хотя когда игрок стоит на месте, как я уже сказал выше, снаряды просто проходят насквозь.)
Буду благодарен любой помощи, даже простому совету или ссылке на какой ни будь тутор, всем кто поможет - спасибо!
Источник: Stack Overflow на русском