Punching networked enemies
Gameplay: multiple people facing a wave of enemies. If I punch an enemy, I want it to fly for everyone. Is this the right architecture?
Enemies have kinematic rigidbodies with RealtimeTransform. If I punch an enemy (via OnTriggerEnter), I claim ownership of the enemy RealtimeTransform. I turn the rigidbody (on my client) to kinematic = false, apply my custom punch force with physics. The enemy flies on my client and its transform gets synced to other clients via RealtimeTransform. SO everyone sees it fly. Once the enemy hits the ground and finishes rolling, I release the ownership and set the rigidbody kinematic = true again.
I understand we can just do networked rigidbodies and Unity physics collision and this is handled mostly "automatically" but I want to use OnTriggerEnter to do some custom punch power calculations based on the puncher's "strength level."
Enemies have kinematic rigidbodies with RealtimeTransform. If I punch an enemy (via OnTriggerEnter), I claim ownership of the enemy RealtimeTransform. I turn the rigidbody (on my client) to kinematic = false, apply my custom punch force with physics. The enemy flies on my client and its transform gets synced to other clients via RealtimeTransform. SO everyone sees it fly. Once the enemy hits the ground and finishes rolling, I release the ownership and set the rigidbody kinematic = true again.
I understand we can just do networked rigidbodies and Unity physics collision and this is handled mostly "automatically" but I want to use OnTriggerEnter to do some custom punch power calculations based on the puncher's "strength level."