void initSolutionObject(SolutionObject e) { GameObject position = GameObject.Find(e.pos); GameObject elem = InstantiatePrefabWithName(e.name); elem.transform.position = position.transform.position; GameObject newParent = GameObject.Find("SolutionObjects"); elem.transform.parent = newParent.transform; if (elem.GetComponent <DropData>() != null) { elem.GetComponent <DropData>().acceptedElements = e.acceptedElements; } /*if (elem.transform.Find ("target") != null) { * GameObject targetObj = elem.transform.Find ("target").gameObject; * targetObj.GetComponent<SpriteRenderer> (). * }*/ // B3 ? if (e.requiredObject()) {// && elem.transform.Find ("object2find") != null) { print("required object"); GameObject object2find = InstantiatePrefabWithName(e.acceptedElements); object2find.name = "similarObjectToFind"; object2find.transform.SetParent(elem.transform); Transform location = elem.GetComponent <DropData>().findFreePosition(); if (location != null) { moveObjectToPlaceWithName(object2find, location.name); //object2find.transform.position = location.position; object2find.GetComponent <DragNDropData>().moveable = false; //string layer = "solutionPlace"; //if (location.gameObject.GetComponent<SpriteRenderer> () != null) { // layer = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName; //} //object2find.GetComponent<SpriteRenderer> ().sortingLayerName = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName; object2find.GetComponent <DragNDropData>().DeactivateColliders(); } } // B4 ? if (e.requiredImage() && elem.transform.Find("image") != null) { print("Target Image of the solution element needs to be updated"); GameObject target = elem.transform.Find("image").gameObject; if (target != null) { LevelData data = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData(); target.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Sprites/" + data.sceneName + "/" + e.acceptedElements + "Image"); print("Target image updated !"); } else { print("pb when updating the target image"); } } else if (elem.transform.Find("image") != null) { // hide target Image GameObject target = elem.transform.Find("image").gameObject; if (target != null) { target.SetActive(false); } } foreach (Element element in e.elements) { GameObject elem2 = initElementInPos(element); // solution objects already placed must not be moved elem2.GetComponent <DragNDropData>().moveable = false; } string difficulty = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData().difficulty; if (!difficulty.Equals("EXPERT") && !difficulty.Equals("ADVANCED")) { GameObject.Find("FeedbacksManager").GetComponent <FeedbacksManager>().DisplayElem2Find(e, elem); } foreach (SolutionArea solArea in e.solutionAreas) { //print ("we look for " + solArea.pos); Transform area = elem.transform.Find(solArea.pos); //print (area.gameObject); area.gameObject.GetComponent <DropData>().acceptedElements = solArea.acceptedElement; area.gameObject.GetComponent <DropData>().dropable = true; area.gameObject.GetComponent <DropData>().solutionArea = true; } //target.tag = e.acceptedElements; //elem.transform.Find ("target").gameObject.tag = e.acceptedElements; }