示例#1
0
    /// <summary>
    /// This function goes through the list of compnonents and determines if the
    /// search text is within the sensor name. If it is than it will turn it on
    /// else it will set it to not show.
    /// </summary>
    /// <param name="value"></param>
    public void SearchFunction(string value)
    {
        bool inName = false;

        foreach (GameObject item in this.sensors)
        {
            inName = item.name.Contains(value.ToLower());
            headingController controller = item.transform.parent.GetComponentInChildren <headingController>();
            // advoid double count sensors
            if (inName && !item.transform.gameObject.activeInHierarchy)
            {
                controller.AddSensor();
            }
            else if (!inName && item.transform.gameObject.activeInHierarchy)
            {
                controller.RemoveSensor();
            }
            item.transform.gameObject.SetActive(inName);
        }
        foreach (KeyValuePair <int, GameObject> category in categoryHolderList)
        {
            headingController controller = category.Value.GetComponentInChildren <headingController>();
            controller.UpdateSensorCount();
            category.Value.SetActive(controller.hasSensors());
        }
    }
示例#2
0
    /// <summary>
    /// Sets up the sensor panel by placing sensors in the appropriate category using the
    /// available prefabs.
    /// </summary>
    void SensorPanelSetup()
    {
        List <SensorCategoriesModel> categories = urdf.GetSensorCategories();
        List <UrdfTypeModel>         types      = urdf.GetUrdfTypes();
        List <UrdfItemModel>         sensorList = urdf.GetUrdfs();

        this.dropdowns["ddCategory"].options.Add(new Dropdown.OptionData("Unknown"));
        foreach (SensorCategoriesModel category in categories)
        {
            this.dropdowns["ddCategory"].options.Add(new Dropdown.OptionData(category.name));
        }

        this.dropdowns["ddTypes"].options.Add(new Dropdown.OptionData("Unknown"));
        foreach (UrdfTypeModel type in types)
        {
            this.dropdowns["ddTypes"].options.Add(new Dropdown.OptionData(type.name));
        }

        List <headingController> headingControllers = new List <headingController>();
        GameObject        unknownHolder             = GameObject.Instantiate(categoryContainerPrefab);
        headingController unknownController         = unknownHolder.GetComponentInChildren <headingController>();

        unknownController.SetHeadingName("Unknown");
        headingControllers.Add(unknownController);
        unknownHolder.transform.SetParent(sensorViewPort.transform, false);
        categoryHolderList.Add(0, unknownHolder);

        foreach (SensorCategoriesModel category in categories)
        {
            GameObject        categoryHolder = GameObject.Instantiate(categoryContainerPrefab);
            headingController controller     = categoryHolder.GetComponentInChildren <headingController>();
            controller.SetHeadingName(category.name);
            headingControllers.Add(controller);
            categoryHolder.GetComponent <CategoryHeading>().category = category;
            categoryHolder.transform.SetParent(sensorViewPort.transform, false);
            categoryHolderList.Add(category.uid, categoryHolder);
        }


        foreach (UrdfItemModel item in sensorList)
        {
            GameObject sensorBtn = GameObject.Instantiate(sensorBtnPrefab);
            Button     btn       = sensorBtn.GetComponent <Button>();
            Text       value     = sensorBtn.GetComponentInChildren <Text>();
            Sensor     sensor    = sensorBtn.GetComponent <Sensor>();
            sensor.item     = item;
            sensor.category = categoryHolderList[item.fk_category_id].GetComponent <CategoryHeading>().category;
            value.text      = item.name;
            sensorBtn.name  = item.name.ToLower();
            headingControllers[item.fk_category_id].AddSensor();
            sensorBtn.transform.SetParent(categoryHolderList[item.fk_category_id].transform, false);
            btn.onClick.AddListener(() => SensorOnClick(sensorBtn));
            this.sensors.Add(sensorBtn);
        }

        foreach (headingController controller in headingControllers)
        {
            controller.UpdateSensorCount();
        }
    }
示例#3
0
    /// <summary>
    /// Sets up the sensor panel by placing sensors in the appropriate category using the
    /// available prefabs.
    /// </summary>
    void SensorPanelSetup()
    {
        this.categories = urdf.GetSensorCategories();
        this.types      = urdf.GetUrdfTypes();
        UrdfItemModel[] sensorList = urdf.GetUrdfs();

        this.dropdowns["ddCategory"].options.Add(new Dropdown.OptionData("Unknown"));
        foreach (string category in categories)
        {
            this.dropdowns["ddCategory"].options.Add(new Dropdown.OptionData(category));
        }

        this.dropdowns["ddTypes"].options.Add(new Dropdown.OptionData("Unknown"));
        foreach (string type in types)
        {
            this.dropdowns["ddTypes"].options.Add(new Dropdown.OptionData(type));
        }

        Dictionary <string, headingController> headingControllers = new Dictionary <string, headingController>();
        GameObject        unknownHolder     = GameObject.Instantiate(categoryContainerPrefab);
        headingController unknownController = unknownHolder.GetComponentInChildren <headingController>();

        unknownController.SetHeadingName("Unknown");
        headingControllers.Add("unknown", unknownController);
        unknownHolder.transform.SetParent(sensorViewPort.transform, false);
        categoryHolderList.Add("unknown", unknownHolder);

        foreach (string category in categories)
        {
            GameObject        categoryHolder = GameObject.Instantiate(categoryContainerPrefab);
            headingController controller     = categoryHolder.GetComponentInChildren <headingController>();
            controller.SetHeadingName(category);
            headingControllers.Add(category, controller);
            categoryHolder.GetComponent <CategoryHeading>().category = category;
            categoryHolder.transform.SetParent(sensorViewPort.transform, false);
            categoryHolderList.Add(category, categoryHolder);
        }


        foreach (UrdfItemModel item in sensorList)
        {
            if (item == null)
            {
                continue;
            }
            GameObject sensorBtn = GameObject.Instantiate(sensorBtnPrefab);
            Button     btn       = sensorBtn.GetComponent <Button>();
            Text       value     = sensorBtn.GetComponentInChildren <Text>();
            Sensor     sensor    = sensorBtn.GetComponent <Sensor>();
            sensor.item    = item;
            value.text     = item.name;
            sensorBtn.name = item.name.ToLower();
            headingControllers[item.category].AddSensor();
            sensorBtn.transform.SetParent(categoryHolderList[item.category].transform, false);
            btn.onClick.AddListener(() => SensorOnClick(sensorBtn));
            this.sensors.Add(sensorBtn);
        }

        foreach (KeyValuePair <string, headingController> controller in headingControllers)
        {
            controller.Value.UpdateSensorCount();
        }
    }