Example #1
0
    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;
     }
 }
Example #3
0
    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));
        }
    }
Example #4
0
    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;
        }
    }
Example #5
0
 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;
         }
     }
 }