fix: rotation on getting hit fixed

This commit is contained in:
Chris
2025-10-03 20:59:17 -04:00
parent 7068d39b5b
commit c06ed7a46a
3 changed files with 9 additions and 5 deletions

View File

@@ -45,10 +45,10 @@ public class UnitCombat : MonoBehaviour{
Debug.LogError($"No available UnitMovement on {draggedUnit.name}. Aborting drag on this unit."); Debug.LogError($"No available UnitMovement on {draggedUnit.name}. Aborting drag on this unit.");
continue; continue;
} }
draggedUnitMovement.SetNewRotation(-transform.position.DirectionTo(draggedUnit.transform.position), 1f, true);
draggedUnitMovement.SetNewDirection((positionDelta).ToVector2(), 1f, true); draggedUnitMovement.SetNewDirection((positionDelta).ToVector2(), 1f, true);
draggedUnitMovement.SetNewSpeed(speedDelta, 1f, true); draggedUnitMovement.SetNewSpeed(speedDelta, 1f, true);
draggedUnitMovement.SetNewRotation(-transform.position.DirectionTo(draggedUnit.transform.position), 1f, true);
} }
} }
} }

View File

@@ -25,7 +25,7 @@ public class Player : NetworkBehaviour, IKillable{
void Start(){ void Start(){
if (((IKillable)this).maxHealth == 0f) { if (((IKillable)this).maxHealth == 0f) {
Debug.LogError($"Max health is not set for type of <b>{name}</b>. Setting to 100."); Debug.LogError($"Max health is not set for type of <b>{name}</b>. Setting to 100.");
((IKillable)this).currentHealth = 100f; ((IKillable)this).currentHealth = 10000f;
} else { } else {
((IKillable)this).currentHealth = ((IKillable)this).maxHealth; ((IKillable)this).currentHealth = ((IKillable)this).maxHealth;
} }

View File

@@ -246,14 +246,18 @@ namespace Reset.Units{
} }
public void SetNewRotation(Vector3 value, float relativity, bool absolute, Vector3 relativeTo = default){ // new public void SetNewRotation(Vector3 value, float relativity, bool absolute, Vector3 relativeTo = default){ // new
Vector3 relativeValue = Quaternion.LookRotation(relativeTo) * value; Quaternion valueAsQuaternion = Quaternion.LookRotation(value);
Quaternion valueAsQuaternion = Quaternion.Euler(relativeValue);
if (relativeTo != default) {
valueAsQuaternion = Quaternion.LookRotation(relativeTo) * valueAsQuaternion;
}
if (absolute){ if (absolute){
resolvedMovement.rotation = Quaternion.Lerp(resolvedMovement.rotation, valueAsQuaternion, relativity); resolvedMovement.rotation = Quaternion.Lerp(resolvedMovement.rotation, valueAsQuaternion, relativity);
} else { } else {
resolvedMovement.rotation = Quaternion.Lerp(resolvedMovement.rotation, resolvedMovement.rotation * valueAsQuaternion, relativity); resolvedMovement.rotation = Quaternion.Lerp(resolvedMovement.rotation, resolvedMovement.rotation * valueAsQuaternion, relativity);
} }
} }
public void SetSpecifiedRotation(Vector3 inputRotation){ public void SetSpecifiedRotation(Vector3 inputRotation){