// When a muscle is hit (through MuscleCollisionBroadcaster.Hit(...)) protected override void OnMuscleHitBehaviour(MuscleHit hit) { // Should we activate the puppet? if (masterProps.normalMode == NormalMode.Kinematic) puppetMaster.mode = PuppetMaster.Mode.Active; // Unpin the muscle (and other muscles) and add force UnPin(hit.muscleIndex, hit.unPin); // Add force puppetMaster.muscles[hit.muscleIndex].rigidbody.isKinematic = false; puppetMaster.muscles[hit.muscleIndex].rigidbody.AddForceAtPosition(hit.force, hit.position); }
// When a muscle is hit (through MuscleCollisionBroadcaster.Hit(...)) protected override void OnMuscleHitBehaviour(MuscleHit hit) { // Should we activate the puppet? if (masterProps.normalMode == NormalMode.Kinematic) { puppetMaster.mode = PuppetMaster.Mode.Active; } // Unpin the muscle (and other muscles) and add force UnPin(hit.muscleIndex, hit.unPin); // Add force puppetMaster.muscles[hit.muscleIndex].rigidbody.isKinematic = false; puppetMaster.muscles[hit.muscleIndex].rigidbody.AddForceAtPosition(hit.force, hit.position); }
protected virtual void OnMuscleHitBehaviour(MuscleHit hit) { }
public void OnMuscleHit(MuscleHit hit) { if (!initiated) return; if (OnPreMuscleHit != null) OnPreMuscleHit(hit); OnMuscleHitBehaviour(hit); if (OnPostMuscleHit != null) OnPostMuscleHit(hit); }