Итак, как следует из названия, мой OnCollisionEnter не вызывается. Я не знаю, почему. Объекты отскакивают от поверхностей, с которыми они контактируют.OnCollisionEnter() не работает с жестким телом и непрерывным обнаружением при подпрыгивании ..?
Вот соответствующий код:
static Rigidbody m_ProjectileRigidbody;
internal void FireProjectile(GameObject projectile, float speed)
{
projectile.transform.position =
State.PlayerTransform.position + State.PlayerTransform.forward;
projectile.transform.rotation = State.PlayerTransform.rotation;
m_ProjectileRigidbody = projectile.GetComponent<Rigidbody>();
m_ProjectileRigidbody.AddForce
(State.PlayerTransform.forward * speed, ForceMode.Impulse);
if (State.PlayerState.Consumes)
{
State.PlayerState.ConsumeCellEnergy(EnergyConsumption);
State.PlayerState.GenerateCellHeat(HeatProduction);
}
}
void OnCollisionEnter(Collision collision)
{
Debug.Log("Collided With: " + collision.gameObject.name);
}
Примечания: События коллизии отправляются только в том случае, если один из коллайдеров также прикреплен без кинематической жесткости. «Вы знаете об этом? –
Яр. Вот почему я поставил скриншот сборника. Это не кинематика. –
Вы работаете с 2D-коллайдером? Можем ли мы увидеть объект, с которым он сталкивается? – Matriac