Search Unity

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

Discussion in 'Scripting' started by mc_djavo, Mar 10, 2014.

  1. mc_djavo

    mc_djavo

    Joined:
    Jul 5, 2012
    Posts:
    46
    Code (csharp):
    1. private Quaternion soldierRotation;
    2. float turnAngle = Mathf.Pow(Mathf.Abs(deltaAngle), 2.5f) * Mathf.Sign(deltaAngle) / 80f;
    3.  
    4. 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
     
  2. Gibbonator

    Gibbonator

    Joined:
    Jul 27, 2012
    Posts:
    204
    It's down to the way properties and value types work. Fix it like this:
    Code (csharp):
    1.  
    2. Vector3 soldierEuler = soldierRotation.eulerAngles;
    3. soldierEuler.y += turnAngle * Time.deltaTime;
    4. soldierRotation.eulerAngles = soldierEuler;
    5.