En este momento estás viendo Duplicar y mover un objeto en cierta cantidad en Unity3D

 – Unity

Duplicar y mover un objeto en cierta cantidad en Unity3D – Unity

Duplicar y mover un objeto en cierta cantidad en Unity3D

– UnityAssets3Free

bienvenido , por aqui Daniel y para hoy os traigo
nueva pregunta

Quiero duplicar un objeto por un cierto valor (entero) y moverlo por ese x-0.2 (entonces el primero sería -0.2, el segundo sería -0.4, el tercero sería -0.6). Cuando trato de hacer esto, aparece el error «No se puede modificar el valor de retorno de ‘Transform.position’ porque no es una variable». Mi código:

public GameObject object;

// Start is called before the first frame update
void Awake()

    GameObject[] clones = null;
    for (int i = 0; i < GameManager.singleton.currentLevel; i++)
    
        clones[i] = GameObject.Instantiate(object);
        clones[i].transform.position.y = -0.2 * (i + 1);
    

¡Desde ya gracias!

2 respuestas 2

entrando en un null valor en una variable no define una matriz. En este caso, no tiene una matriz para configurar sus miembros. object en sí mismo también es una palabra reservada en C# y no se puede utilizar como nombre de variable. Para resolver el problema, cambie el código como se muestra a continuación.

public GameObject obj;

void Awake()

    var clones = new GameObject[GameManager.singleton.currentLevel];
    for (int i = 0; i < clones.Length; i++)
    
        clones[i] = GameObject.Instantiate(obj);

        var pos = clones[i].transform.position;
        pos.y = -0.2f * (i + 1);
        clones[i].transform.position = pos;
    

Puede usar Transform.translate para mover el clon. Los documentos para esto se pueden encontrar aquí: https://docs.unity3d.com/ScriptReference/Space.World.html

También puede establecer transform.position en un nuevo vector3 como este ejemplo: https://docs.unity3d.com/ScriptReference/Transformar-posición.html

Obtiene este error porque no puede establecer directamente los valores x, y y z de transform.position (creo que son de solo lectura), pero puede establecer transform.position en un nuevo vector3

Esto también podría ayudar a explicarlo: https://respuestas.unity.com/questions/656129/c-cambiar-los-valores-x-e-y-de-un-objeto-de-juego.html

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

sin mas,espero que te halla servido

Deja una respuesta