コード例 #1
0
        //GameObject LastSelectObject;
        public void SelectObject(GameObject Obj)
        {
            int ObjectId = GetIdOfObject(Obj);

            bool contains = Selection.Ids.Contains(ObjectId);

            if (contains && !IsSelectionRemove() && !IsSelectionAdd())
            {
                if (Time.time < LastClickTime + 0.2f)
                {
                    CameraControler.FocusOnObject(Obj);
                }
                LastClickTime = Time.time;

                return;
            }

            //LastSelectObject = Obj;

            LastClickTime = Time.time;


            if (ObjectId >= 0)
            {
                Undo.Current.RegisterSelectionChange();
                if (IsSelectionRemove())
                {
                    if (contains)
                    {
                        Selection.Ids.Remove(ObjectId);
                        FinishSelectionChange();
                    }
                }
                else if (IsSelectionAdd())
                {
                    if (!contains)
                    {
                        Selection.Ids.Add(ObjectId);
                        FinishSelectionChange();
                    }
                }
                else
                {
                    if (Selection.Ids.Count == 1 && Selection.Ids[0] == ObjectId)
                    {
                    }
                    else
                    {
                        Selection.Ids = new List <int>();
                        Selection.Ids.Add(ObjectId);
                        FinishSelectionChange();
                    }
                }
            }
        }