Как использовать нажатие кнопки и передать значения, чтобы удалить значения из списка? - PullRequest
0 голосов
/ 26 октября 2018
    private List<int> modelid = new List<int>();
    private List<int> modelrefno = new List<int>();
    private List<string> modelname = new List<string>();

int touchescount0 = 0;
int touchescount1 = 0;
int touchescount2 = 0;

Ниже приведены три метода кнопок, когда я нажимаю на каждую кнопку, значение ключа передается в другое место и, наконец, достигает метода Listadd ().

public void AddPath()

{

key = 0;

}

public void AddModel()

{

key = 1;

}
public void AddNewmodel()

{

key = 2;

}

Значение достигает метода, описанного ниже, и создаются экземпляры следующих моделей. Добавление информации о модели в различные списки ir моделиid, modelrefno и имя модели.

public GameObject Listadd(ModelInfo info)


{


    key = info.shapeType;

if (key == 0)
        {

            touchescount0 = touchescount0 + 1;


            shape = Instantiate(models[key], new Vector3(info.px, info.py, info.pz), Quaternion.Euler(info.qx, info.qy, info.qz));


            modelid.Add(0);
            modelrefno.Add(touchescount0);
            shape.name = "Path" + " " + touchescount0;
            modelname.Add(shape.name);
            Debug.Log("Model Details " + modelid[0] + "-" + modelrefno[0] + "-" + modelname[0]);



        }
        else if (key == 1)
        {

            touchescount1 = touchescount1 + 1;

            GameObject objs = Instantiate(models[key], new Vector3(info.px, info.py, info.pz), Quaternion.Euler(info.qx, info.qy, info.qz));
            shape = objs;


            modelid.Add(1);
            modelrefno.Add(touchescount1);

            shape.name = "SBlue" + " " + touchescount1;
            modelname.Add(shape.name);


        }



else if (key == 2)
            {

            touchescount2 = touchescount2 + 1;

            GameObject objs = Instantiate(models[key], new Vector3(info.px, info.py, info.pz), Quaternion.Euler(info.qx, info.qy, info.qz));
            shape = objs;


            modelid.Add(1);
            modelrefno.Add(touchescount2);

            shape.name = "SBlue" + " " + touchescount2;
            modelname.Add(shape.name);


        }


}

    }

Теперь, когда я удаляю, используяКнопка удаления используется нижеприведенный метод. Здесь я хочу продолжить удаление последней сохраненной информации о модели. Если я удаляю дважды, удаляются последние сохраненные две информации о модели. Когда я добавляю одну модель и удаляю, соответственно она будет удалена, но еслиЯ добавляю несколько моделей, значение ключа будет последней добавленной моделью. Поэтому, когда я пытаюсь удалить информацию, она все еще будет там. Как удалить несколько сохраненных данных из списка.

 public void DeleteShapes()
    {
            if (key == 0 && touchescount0 > 0)
            {
                touchescount0 = touchescount0 - 1;
            }
            if (key == 1 && touchescount1 > 0)
            {
                touchescount1 = touchescount1 - 1;
                Debug.Log("While Deleting SMblue = " + touchescount1);
            }

            if (key == 2 && touchescount2 > 0)
            {
                touchescount2 = touchescount2 - 1;

            }
            if(modelid.Count>0)
            {
                modelid.RemoveAt(modelid.Count - 1);

            }

            if (modelrefno.Count > 0)
            {
                modelrefno.RemoveAt(modelrefno.Count - 1);
            }

            if (modelname.Count > 0)
            {

                modelname.RemoveAt(modelname.Count - 1);
            }
            //Debug.Log("Model Details " + modelid[0] + "-" + modelrefno[0] + "-" + modelname[0]);


        }

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете использовать Stack. Это просто.

Если вы хотите добавить что-то в топ, просто используйте:

myStack.Push(myobject);

И удалить что-нибудь из стека:

myStack.Pop();

Это также намного быстрее, так что ... никаких минусов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...