`UnityEngine.Quaternion.eulerAngles'. Consider storing the value in a temporary varia

private Quaternion soldierRotation;	
float turnAngle = Mathf.Pow(Mathf.Abs(deltaAngle), 2.5f) * Mathf.Sign(deltaAngle) / 80f;

soldierRotation.eulerAngles.y += turnAngle * Time.deltaTime;

what is wrong with this Cannot modify a value type return value of `UnityEngine.Quaternion.eulerAngles’. Consider storing the value in a temporary variable

It’s down to the way properties and value types work. Fix it like this:

Vector3 soldierEuler = soldierRotation.eulerAngles;
soldierEuler.y += turnAngle * Time.deltaTime;
soldierRotation.eulerAngles = soldierEuler;