Ejemplo n.º 1
0
        void OnSelectionChange()
        {
            if (window == null)
            {
                return;
            }

            srlObj = null;

            selectedUnitList = new List <UnitPlayer>();

            UnityEngine.Object[] filtered = Selection.GetFiltered(typeof(UnitPlayer), SelectionMode.Editable);
            for (int i = 0; i < filtered.Length; i++)
            {
                selectedUnitList.Add((UnitPlayer)filtered[i]);
            }

            //if no no relevent object is selected
            if (selectedUnitList.Count == 0)
            {
                SelectItem();
                if (unitPlayerDB.unitList.Count > 0 && selectID >= 0)
                {
                    UpdateObjectHierarchyList(unitPlayerDB.unitList[selectID].gameObject);
                }
            }
            else
            {
                //only one relevent object is selected
                if (selectedUnitList.Count == 1)
                {
                    //if the selected object is a prefab and match the selected item in editor, do nothing
                    if (selectID > 0 && selectedUnitList[0] == unitPlayerDB.unitList[selectID])
                    {
                        UpdateObjectHierarchyList(selectedUnitList[0].gameObject);
                    }
                    //if the selected object doesnt match...
                    else
                    {
                        //if the selected object existed in DB
                        if (TDSEditor.ExistInDB(selectedUnitList[0]))
                        {
                            window.selectID = TDSEditor.GetUnitPlayerIndex(selectedUnitList[0].prefabID) - 1;
                            UpdateObjectHierarchyList(selectedUnitList[0].gameObject);
                            SelectItem();
                        }
                        //if the selected object is not in DB
                        else
                        {
                            selectID = -1;
                            UpdateObjectHierarchyList(selectedUnitList[0].gameObject);
                        }
                    }
                }
                //selected multiple editable object
                else
                {
                    selectID = -1;
                    UpdateObjectHierarchyList(selectedUnitList[0].gameObject);
                }

                srlObj = new SerializedObject(filtered);
            }

            Repaint();
        }