Prise en compte du module factory pour créer et afficher des gameobjects dynamiquement

This commit is contained in:
2024-01-12 15:41:11 +01:00
parent f181fd9935
commit e5a1e71788
6 changed files with 485 additions and 720 deletions

View File

@ -37,18 +37,23 @@ public class MoleculeFactory : MonoBehaviour{
return MoleculeFactory.instance;
}
public Boolean hasMolecule(String formula)
{
return moleculesDictionary.ContainsKey(formula);
}
public GameObject createMolecule (string formula){
if(!moleculesDictionary.ContainsKey(formula)){
Debug.LogError("molecules does not existe in json");
}
Molecule molecule = moleculesDictionary[formula];
GameObject sortie = new GameObject(molecule.name);
foreach (Atom atom in molecule.atoms) {
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.parent = sortie.transform;
sphere.name = atom.element;
sphere.transform.localPosition = new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]);
var template = GameObject.Find("SPHERE");
var createdObj = Instantiate(template, new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]), Quaternion.identity);
createdObj.transform.parent = sortie.transform;
createdObj.name = atom.element;
createdObj.transform.localPosition = new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]);
//TODO: géré les laision
//TODO: géré la taille de l'atome
//TODO: géré la couleur de l'atome