Godot Version
v4.5
Question
I have a large enemy, let's call it the boss, which can move towards the player, and our player which can also move.
I need the player to effectively be pushed by the enemy if it they collide (think monster hunter dynamics where a tail can push you around if the monster spins).
My setup based on prior research is as such
Layers
Layer 1: Level
Layer 2: Player
Layer 3: Enemy
Layer 4: EnemyPhysical (static)
Mask Setup
Player → CharacterBody3D, Layer 2 (Player), Mask 1 (level) and 4 (EnemyPhysical)
Boss → CharacterBody3D, Layer 3 (Enemy), Mask 1 (level)
The boss also has a StaticBody3D as it’s child, Layer 4 (Enemy Physical), Mask 2 (Player)
So in theory the player should interact with the static body in layer 4, but instead it walks right through the boss.
My collision shapes are correct and have been double checked.
Additionally I have a RigidBody3D object in the scene acting as a crate/box; this is pushed by the enemy exactly as I envision. Just not the player.
I hope that this is explained in an understandable manner, please let me know if I need to elaborate on any points!
Many thanks,
Ben
Additional Info:
Movement is done using MoveAndSlide in ProcessPhysics, not a separate translation system.
