public void ProcessEnemyPartImpact(EnemyPartType dmgType, Transform placement) { Vector3 position = placement.position; Vector3 direction = (placement.position - placement.parent.position).normalized; position = position + direction * enemyPartImpactOffset; Quaternion rot = Quaternion.FromToRotation(Vector3.forward, direction); GameObject effect = null; //部位破壞,特效 if (dmgType == EnemyPartType.Head) { if (headBloodEffect) { effect = Instantiate(headBloodEffect, position, rot); } } else { if (defaultBloodEffect) { effect = Instantiate(defaultBloodEffect, position, rot); } } if (effect) { // attach the effect to the mesh effect.transform.parent = placement; Destroy(effect, enemyPartImpactLifetime); } }
public void OnLimbDie(EnemyPartType dmgType, Transform placement) { ////部位破壞,特效 _ImpactProcessor.ProcessEnemyPartImpact(dmgType, placement); }