Je n'arrive pas coder pour positionner et translater avec différents vecteurs prédéfinis des objets crées dynamiquement(pas par Instantiate de manière à éviter de les faire glisser un à un dans ce script)
Mon code presque juste qui ne fonctionne pas ,bien qu'arrangé de manières différentes à plusieurs reprises,ressemble à ceci:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//ne fonctionne pas!
public class list_of_vectors : MonoBehaviour
{
public float moveSpeed = 2f;
static int i=0;
public GameObject objet_mesh_de_reference;
List<Transform> allCreations = new List<Transform>();
List<MeshRenderer> allRender = new List<MeshRenderer>();
List<MeshFilter> allMeshFilter = new List<MeshFilter>();
List<Vector3>vector=new List<Vector3>();
List<Vector3>endroit=new List<Vector3>();
// Use this for initialization
void Start ()
{
vector[0]=new Vector3(1,1,1);
vector[1]=new Vector3(1,0,1);
vector[2]=new Vector3(1,0,-1);
vector[3]=new Vector3(1,1,0);
endroit [0] =vector[0];
endroit [1] =vector[1];
endroit [2] =vector[2];
endroit [3] =vector[3];
}
void Update(){
for (i = 0; i <= 3; i++) {//création dynamique d'objets(ça fonctionne)
GameObject objeti = new GameObject ("objet" + i);
//à chaque objet crée dynamiquement,une transformation est rajoutée dans la liste des
transformations
allCreations.Add (objet.transform);
//devrait positionner chaque objeti à un endroit précis(ça ne fonctionne pas!)
allCreations [i].position = endroit [i];
allRender.Add (objeti.AddComponent<MeshRenderer> ());
llMeshFilter.Add (objeti.AddComponent<MeshFilter> ());
//une translation de vecteur différent à chaque objet i(ça ne fonctionne pas)
allCreations[i].Translate (vector [i] * moveSpeed * Time.deltaTime, Space.Self);
}
foreach (var mesh in allMeshFilter) {
if (mesh != null)
mesh.mesh = objet_mesh_de_reference.GetComponent<MeshFilter> ().mesh;
}
}
}
merci de votre aide