public void DisplayConsiderations(UAI_Property property, bool selected) { for (int i = 0; i < considerationElements.Count; i++) { Destroy(considerationElements[i]); } considerationElements.Clear(); if (!selected) { if (selectedProperty != null) { for (int i = 0; i < propertyElements.Count; i++) { UAI_Property tempProperty = propertyElements[i].GetComponent <OverlayUIPropertyElement>().GetProperty(); if (selectedProperty == tempProperty) { propertyElements[i].GetComponent <OverlayUIPropertyElement> ().Select(); break; } } } for (int i = 0; i < displayedAgent.linkedActions.Count; i++) { for (int j = 0; j < displayedAgent.linkedActions[i].action.considerations.Count; j++) { if (displayedAgent.linkedActions [i].action.considerations [j].property == property) { GameObject tempCon = Instantiate(considerationElement, new Vector3(considerationContent.transform.position.x, considerationContent.transform.position.y + considerationElements.Count * -27, considerationContent.transform.position.z), Quaternion.identity) as GameObject; tempCon.transform.SetParent(considerationContent.transform); tempCon.GetComponent <OverlayUIConsiderationElement> ().SetConsideration( displayedAgent.linkedActions [i].action.considerations [j], false, displayedAgent.linkedActions[i].action.name); considerationElements.Add(tempCon); } } } considerationContent.GetComponent <RectTransform>().sizeDelta = new Vector2(200, considerationElements.Count * 27); utilityCurve.SetActive(false); displayingCurve = false; propertyConsiderationsPanel.SetActive(true); selectedProperty = property; } else { utilityCurve.SetActive(false); displayingCurve = false; propertyConsiderationsPanel.SetActive(false); selectedProperty = null; selectedPropertyConsideration = null; } }
public void SetConsideration(UAI_Consideration p_consideration, bool isAction, string actionName) { consideration = p_consideration; isActionConsideration = isAction; if (isAction) { nameText.text = consideration.property.name; } else { nameText.text = actionName; } }
void BuildUtilityCurve(UAI_Consideration con, bool isActionConsideration) { Texture2D texture = new Texture2D(128, 128, TextureFormat.RGBA32, false); for (int i = 0; i < 128; i++) { int y = Mathf.FloorToInt(con.utilityCurve.Evaluate(i / 128.0f) * 128.0f); texture.SetPixel(i, y, Color.black); } texture.Apply(); if (isActionConsideration) { Rect rect = actionUtilityCurveRenderer.sprite.rect; actionUtilityCurveRenderer.sprite = Sprite.Create(texture, rect, new Vector2(0.5f, 0.5f)); } else { Rect rect = utilityCurveRenderer.sprite.rect; utilityCurveRenderer.sprite = Sprite.Create(texture, rect, new Vector2(0.5f, 0.5f)); } }
public void DisplayAgent(UAI_Agent agent, bool selected) { for (int i = 0; i < actionElements.Count; i++) { Destroy(actionElements[i]); } for (int i = 0; i < considerationElements.Count; i++) { Destroy(considerationElements[i]); } for (int i = 0; i < propertyElements.Count; i++) { Destroy(propertyElements[i]); } actionElements.Clear(); considerationElements.Clear(); agentProperties.Clear(); propertyElements.Clear(); propertyConsiderationsPanel.SetActive(false); actionConsiderationsPanel.SetActive(false); selectedAction = null; selectedProperty = null; selectedActionConsideration = null; selectedPropertyConsideration = null; //deselect other agents if (!selected) { if (displayedAgent != null) { for (int i = 0; i < agentElements.Count; i++) { if (agentElements [i].GetComponent <OverlayUIAgentElement> ().GetAgent() == displayedAgent) { agentElements [i].GetComponent <OverlayUIAgentElement> ().Select(); break; } } } displayedAgent = agent; displayingAgent = true; for (int i = 0; i < agent.GetComponentsInChildren <UAI_Property>().Length; i++) { agentProperties.Add(agent.GetComponentsInChildren <UAI_Property> () [i]); } for (int i = 0; i < agentProperties.Count; i++) { GameObject tempProp; if (agentProperties [i].modifiable) { tempProp = Instantiate(ModifiablePropertyElement, new Vector3(propertyContent.transform.position.x, considerationContent.transform.position.y + propertyElements.Count * -27, considerationContent.transform.position.z), Quaternion.identity) as GameObject; } else { tempProp = Instantiate(PropertyElement, new Vector3(propertyContent.transform.position.x, considerationContent.transform.position.y + propertyElements.Count * -27, considerationContent.transform.position.z), Quaternion.identity) as GameObject; } tempProp.transform.SetParent(propertyContent.transform); tempProp.GetComponent <OverlayUIPropertyElement> ().SetProperty(agentProperties [i]); propertyElements.Add(tempProp); } propertyContent.GetComponent <RectTransform>().sizeDelta = new Vector2(200, propertyElements.Count * 27); for (int i = 0; i < agent.linkedActions.Count; i++) { //populate UI actions GameObject tempAct = Instantiate(actionElement, new Vector3(actionContent.transform.position.x + 100, actionContent.transform.position.y + actionElements.Count * -27, actionContent.transform.position.z), Quaternion.identity) as GameObject; tempAct.transform.SetParent(actionContent.transform); tempAct.GetComponent <OverlayUIActionElement> ().SetAction(agent.linkedActions[i].action); actionElements.Add(tempAct); } actionContent.GetComponent <RectTransform>().sizeDelta = new Vector2(200, actionElements.Count * 27); } else { displayingAgent = false; displayedAgent = null; } }
public void DisplayCurve(UAI_Consideration consideration, bool isActionConsideration, bool selected) { if (!selected) { if (isActionConsideration) { if (selectedActionConsideration != null) { for (int i = 0; i < actionConsiderationElements.Count; i++) { UAI_Consideration tempCon = actionConsiderationElements[i].GetComponent <OverlayUIConsiderationElement>().GetConsideration(); if (selectedActionConsideration == tempCon) { actionConsiderationElements[i].GetComponent <OverlayUIConsiderationElement>().Select(); break; } } } BuildUtilityCurve(consideration, true); displayingActionCurve = true; displayedActionConsideration = consideration; actionConsiderationCurve.SetActive(true); selectedActionConsideration = consideration; } else { if (selectedPropertyConsideration != null) { for (int i = 0; i < considerationElements.Count; i++) { UAI_Consideration tempCon = considerationElements[i].GetComponent <OverlayUIConsiderationElement>().GetConsideration(); if (selectedPropertyConsideration == tempCon) { considerationElements[i].GetComponent <OverlayUIConsiderationElement>().Select(); break; } } } BuildUtilityCurve(consideration, false); displayingCurve = true; displayedConsideration = consideration; utilityCurve.SetActive(true); selectedPropertyConsideration = consideration; } } else { if (isActionConsideration) { actionConsiderationCurve.SetActive(false); displayingActionCurve = false; selectedActionConsideration = null; } else { utilityCurve.SetActive(false); displayingCurve = false; selectedPropertyConsideration = null; } } }