private GameObject characterGo; //Stores the most recent character to have activated the dress selection dialog void Awake() { foreach (Transform child in container.transform) { DressObject d = child.GetComponent <DressObject>(); if (d) { dressList.Add(d); } else { inventory.Add(child.gameObject); pickupObject po = child.gameObject.GetComponent <pickupObject>(); //Try to pull the inventory item's name from a pickupObject script. If none is found, use the GameObject's name. bool useGOName = true; if (po) { if (po.name != "") { inventoryNames.Add(po.name); useGOName = false; } } if (useGOName) { inventoryNames.Add(child.gameObject.name); } child.gameObject.SetActive(false); } } RebuildSelectMenu(); }
//This is called by our selectDialog using the Dialog.onCompletedCallback. It passes the name of the selected answer. public void itemSelected(string answer) { characterGo.SendMessage("Side", SendMessageOptions.DontRequireReceiver); if (type == types.dresserWithClothes) { if (canChangeColor && answer == changeColorString) { //Create a color picker and tell it to send us messages about it's state GameObject cpo = Instantiate(colorPicker); ColorPicker cp = cpo.GetComponent <ColorPicker>(); cp.addMessageObject(gameObject); BlubberAnimation ba = characterGo.GetComponent <BlubberAnimation>(); if (ba) { cp.highlightColor(ba.getColor()); } } else { if (answer == nakedString) { characterGo.SendMessage("removeNonessentialDresses", SendMessageOptions.DontRequireReceiver); } DressObject d = dressList.Find(e => e.name == answer); if (d) { characterGo.SendMessage("removeNonessentialDresses", SendMessageOptions.DontRequireReceiver); GameObject newDress = Instantiate(d.gameObject, characterGo.transform); SpriteRenderer dressRenderer = newDress.GetComponent <SpriteRenderer>() as SpriteRenderer; dressRenderer.enabled = true; characterGo.SendMessage("addDressObject", newDress, SendMessageOptions.DontRequireReceiver); if (sceneSettingsGO != null) { sceneSettingsGO.objectCreated(newDress); } } base.Close("", characterGo); } } if (type == types.spawnItemSelect) { int index = inventoryNames.IndexOf(answer); if (index != -1) { instantiateInventoryItem(index); } base.Close("", characterGo); } }
public void addDressObject(GameObject obj) { DressObject d = obj.GetComponent <DressObject>() as DressObject; if (d) { dressList.Add(new dress(d)); executeFacingDirection(); } obj.transform.parent = gameObject.transform; obj.transform.position = new Vector3(0f, 0f, 0f); FlipX(controller.isFacingRight()); }
public dress(DressObject obj) { this.dressObject = obj; Initiate("", "", null); //We don't need the parameters because Initiate will see that we have a predefined dress object and pull the parameters from there. }