Setup ========================== .. code-block:: csharp public void Setup(Unit owner, Unit target, Transform visualTransform, DamageablesService damageables, UnitsService units, LayerMask unitLayerMask) Initializes the shell right after it's created. Called automatically by :ref:`shell_service`'s ``SpawnShell`` — you normally don't need to call it yourself, unless you're spawning a ``Shell`` through your own custom path instead of ``ShellService``. Sets ``OwnerUnit`` and the shooting player, pulls damage/damage type/lifetime and the rest of the shell's config from the owner unit's ``ShellAttackData`` (``owner.Data.Attack``), remembers the ``Transform`` of the spawned visual prefab instance (which ``Tick`` moves every frame) and sets the initial target via ``SetTarget``. ``units``/``unitLayerMask`` are used internally for the shell's hit checks.