vampire-like/Assets/GameMain/Scripts/Simulation/Jobs/SimulationWorld.CollisionPi...

46 lines
1.7 KiB
C#

using Unity.Jobs;
using UnityEngine;
namespace Simulation
{
public sealed partial class SimulationWorld
{
// Shared collision pipeline configuration and runtime state.
// Request buffering, broad-phase scheduling, resolve, and presentation
// dispatch live in dedicated partial files under Jobs/.
private const int PlayerEntityId = -1;
private JobHandle _collisionCandidateQueryHandle;
private bool _collisionCandidateQueryScheduled;
[Header("Projectile Collision Query")]
[Tooltip("Projectile broad-phase collision query radius.")]
[SerializeField]
private float _projectileCollisionQueryRadius = 0.35f;
[Tooltip("Maximum retained candidates per projectile query.")]
[SerializeField]
private int _projectileMaxCandidatesPerQuery = 1;
[Tooltip("Broad-phase bucket cell size. <=0 derives from query radius.")]
[SerializeField]
private float _projectileCollisionCellSize = 0f;
[Header("Projectile Hit Event Dispatch")]
[Tooltip("Dispatch projectile hit presentation event.")]
[SerializeField]
private bool _dispatchProjectileHitPresentationEvent = true;
[Tooltip("Request hit marker when projectile hits.")]
[SerializeField]
private bool _dispatchProjectileHitMarkerEvent = true;
[Tooltip("Request hit effect when projectile hits.")]
[SerializeField]
private bool _dispatchProjectileHitEffectEvent = true;
[Tooltip("Default hit effect entity type id in presentation event. 0 means not specified.")]
[SerializeField]
private int _projectileHitPresentationEffectTypeId = 0;
}
}