Unity – Cannot modify a value type return value of `UnityEngine.Transform.position’. Consider storing the value in a temporary variable
Este error nos da cuando intentamos cambiar el valor de uno de los ejes de algún elemento en C#
Para ello estamos usando un código al estilo:
if (transform.position.y > 26){
transform.position.y = 26;
}
y he hay nuestro error, Unity no acepta cambios directamente en uno de sus ejes, para poder llevarlo a cabo necesitaremos un código al estilo:
if (transform.position.y > 26){
Vector3 temp = transform.position;
temp.y = 26f;
transform.position = temp;
}
En donde Copiamos el vector con las posiciones de todos los ejes a una variable temporal, a la cual le cambiamos el valor del eje en cuestión(en el ejemplo el eje «y») asignándole el valor deseado, pero teniendo en cuenta que debe ser un Float, y para finalizar asignamos nuestro Vector temporal al position de nuestro elemento.
Espero os resulte de utilidad
Apasionado de la montaña, del SEO y la programación a partes iguales, llevo más de 20 años trabajando en distintos sectores, pero siempre enfocado a la web, si quieres saber más de mí, sigue el enlace.