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