Beispiel #1
0
 public void AddKeyframe(EditorObject instance, Transform2 keyframe, float time)
 {
     if (instance.AnimatedTransform == null)
     {
         instance.AnimatedTransform = new CurveTransform2();
     }
     instance.AnimatedTransform.AddKeyframe(time, keyframe);
 }
 //Constructor
 public EditorObjectConnection(EditorObject.EditorObjectMessage message, EditorObject caller, EditorObject subject, EventTransceiver.Events onEvent)
 {
     OnEvent = onEvent;
     Message = message;
     Caller = caller;
     Subject = subject;
     GUID = System.Guid.NewGuid().ToString();
     SetColor();
 }
Beispiel #3
0
 public void Add(EditorObject selected)
 {
     if (selected == null)
     {
         return;
     }
     SetFirst(selected);
     selected.SetSelected(true);
     SelectionChanged(GetAll());
 }
Beispiel #4
0
 public MementoDrag(EditorObject transformable)
 {
     Transformable = transformable;
     _polygonCoord = transformable.GetPolygonCoord();
     _transform = null;
     if (_polygonCoord != null)
     {
         _parent = (IWall)transformable.Parent;
     }
     else
     {
         _transform = transformable.GetTransform();
     }
 }
Beispiel #5
0
        public void RenameTest0()
        {
            Initialize();
            EditorObject editorObject = new EditorObject(scene);
            string oldName = "old name";
            string newName = "new name";

            editorObject.Name = oldName;
            stateList.Add(new Rename(editorObject, newName));
            Assert.IsTrue(editorObject.Name == newName);

            stateList.Undo();
            Assert.IsTrue(editorObject.Name == oldName);

            stateList.Redo();
            Assert.IsTrue(editorObject.Name == newName);
        }
 public void SetSelected(EditorObject selected)
 {
     if (selected != _selected)
     {
         _selected = selected;
         if (_selected == null)
         {
             IsEnabled = false;
             Type.Content = "";
             ObjectName.Text = "";
         }
         else
         {
             Type.Content = selected.GetType().ToString();
             ObjectName.Text = selected.Name;
             IsEnabled = true;
         }
     }
 }
Beispiel #7
0
            public ObjectListItemWrapper(EditorObject obj, bool useObjectName)
            {
                mEditorObject = obj;

                if (mEditorObject == null)
                {
                    Text = "NULL OBJECT ERROR!!";
                    return;
                }

                string displayValue;

                if (useObjectName == true)
                {
                    Text = obj.Name;
                }
                else
                {
                    Text = mEditorObject.ToString();
                }
            }
Beispiel #8
0
 public void RemoveGridObject()
 {
     if (gridObject != null)
     {
         //Grid has change and file is no longer consistant with grid
         if (gridCreator.currentGridFile != null)
         {
             gridCreator.currentGridFile = null;
         }
         gridObject.DestroyObject();
         if (gridObject.IsUnit())
         {
             gridCreator.RemoveCharacterSpawn((EditorUnit)gridObject);
         }
         else
         {
             gridCreator.RemoveLevelHazard((EditorLevelObject)gridObject);
         }
         gridObject = null;
     }
 }
Beispiel #9
0
        void TryCreateEditField(EditorObject ob, PropertyInfo prop, EditableField attr)
        {
            float y        = elements.Count * FIELD_Y_AREA;
            UDim2 position = new UDim2(0, 0, 0, y + 25);

            GUILabel label     = null;
            string   labelText = string.Format("{0}:", attr.Name);

            Type type = prop.PropertyType;

            if (type == typeof(bool))
            {
                GUICheckbox checkbox;
                form.AddLabledCheckbox(labelText, (bool)prop.GetValue(ob), position,
                                       out label, out checkbox);
                elements.Add(checkbox);

                checkbox.OnCheckChanged += (sender, e) =>
                {
                    prop.SetValue(ob, e);
                };
            }
            else if (type == typeof(string))
            {
                GUITextField field;
                form.AddLabledTextField(labelText, (string)prop.GetValue(ob), position,
                                        out label, out field);
                elements.Add(field);

                field.OnTextChanged += (sender, e) =>
                {
                    prop.SetValue(ob, e);
                };
            }

            if (label != null)
            {
                elements.Add(label);
            }
        }
    public static void DrawLine(EditorObject source, EditorObject target, Color color)
    {
        Vector3 sourcePosition = source.transform.position;
        Vector3 targetPosition = target.transform.position;

        float arrowSize = kArrowSize;
        Vector3 direction = (sourcePosition - targetPosition).normalized;
        Quaternion rotation = Quaternion.LookRotation(direction);
        rotation *= Quaternion.Euler(0, 180, 0);
        float amt = ((sourcePosition - targetPosition).magnitude - (kArrowSpacing + kArrowSize));

        Handles.color = color;

        for(float i = 0; i < amt; i += kArrowSpacing)
        {
            Handles.ArrowCap(0, targetPosition + ((( direction * arrowSize) / 0.5f) + (direction * i)), rotation, arrowSize);
        }

        Handles.DrawLine( sourcePosition,  targetPosition + (( direction * arrowSize) / 0.5f));

        Handles.color = Color.white;
    }
        private void OnSelectionChanged()
        {
            if (this.m_updatingList)
            {
                return;
            }
            int index = this.treeViewObjectSelection.SelectedNode.Index;

            if (index == this.m_value)
            {
                return;
            }
            this.m_value         = index;
            this.m_currentObject = (EditorObject)this.treeViewObjectSelection.SelectedNode.Tag;
            if (this.ValueChanged != null)
            {
                this.ValueChanged(this, new EventArgs());
            }
            if (this.CurrentObjectChanged != null)
            {
                this.CurrentObjectChanged(this, new EventArgs());
            }
        }
    public static void DrawLine(EditorObject source, EditorObject target, Color color)
    {
        Vector3 sourcePosition = source.transform.position;
        Vector3 targetPosition = target.transform.position;

        float      arrowSize = kArrowSize;
        Vector3    direction = (sourcePosition - targetPosition).normalized;
        Quaternion rotation  = Quaternion.LookRotation(direction);

        rotation *= Quaternion.Euler(0, 180, 0);
        float amt = ((sourcePosition - targetPosition).magnitude - (kArrowSpacing + kArrowSize));

        Handles.color = color;

        for (float i = 0; i < amt; i += kArrowSpacing)
        {
            Handles.ArrowCap(0, targetPosition + (((direction * arrowSize) / 0.5f) + (direction * i)), rotation, arrowSize);
        }

        Handles.DrawLine(sourcePosition, targetPosition + ((direction * arrowSize) / 0.5f));

        Handles.color = Color.white;
    }
    /// <summary>
    /// 判断一个资源是否已经在bundle列表中
    /// </summary>
    /// <param name="obj">资源对象</param>
    /// <returns>是否存在</returns>
    bool isExist_AllBundle(EditorObject obj)
    {
        for (int i = 0; i < bundles.Count; i++)
        {
            if (EqualsEditorObject(bundles[i].mainObject, obj))
            {
                return(true);
            }

            if (isExist_Bundle(obj, bundles[i]))
            {
                return(true);
            }
        }

        //for (int i = 0; i < relyPackages.Count; i++)
        //{
        //    if (isExist_Bundle(obj, relyPackages[i]))
        //    {
        //        return true;
        //    }
        //}
        return(false);
    }
    void ObjectListView(EditPackageConfig pack)
    {
        EditorGUILayout.LabelField("Size: " + pack.objects.Count);
        for (int j = 0; j < pack.objects.Count; j++)
        {

            EditorGUILayout.LabelField("Path:", pack.objects[j].path);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.ObjectField(pack.objects[j].obj, typeof(Object), false);

            if (GUILayout.Button("删除", GUILayout.Width(ButtonWidth)))
            {
                pack.objects.RemoveAt(j);
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
        }

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField("Button:");
        if (GUILayout.Button("增加选中资源"))
        {
            Object[] selects = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);

            for (int k = 0; k < selects.Length; k++)
            {
                EditorObject tmp = new EditorObject();

                tmp.obj = selects[k];
                tmp.path = GetObjectPath(selects[k]);

                if (!isExist_EditorList(pack.objects, tmp))
                {
                    pack.objects.Add(tmp);
                }
                else
                {
                    Debug.Log(CustomToString(selects[k]) + " has Exists");
                }
            }
        }
        //if (GUILayout.Button("资源去重"))
        //{
        //}
        EditorGUILayout.EndHorizontal();
    }
    bool IsPackage(EditorObject obj)
    {
        bool result = true;

        for (int i = 0; i < m_NoPackagekFile.Count; i++)
        {
            
            if (obj.obj.name == m_NoPackagekFile[i])
            {
                return false;
            }
        }

        return result;
    }
    void AddAssetBundle(Object obj, string path)
    {
        if (obj == null) return;//都是空了也就是没有意义的
        EditorObject objTmp = new EditorObject();
        objTmp.obj = obj;
        objTmp.path = GetObjectPath(obj);

        if (isExist_AllBundle(objTmp) || !IsPackage(objTmp))
        {
            //Debug.Log(obj.name + " 已经存在!");
        }
        else
        {
            EditPackageConfig EditPackageConfigTmp = new EditPackageConfig();

            if (obj == null)
            {
                Debug.LogError("AddAssetBundle ERROR : path: " + path);
                return;
            }
            EditPackageConfigTmp.name = obj.name;

            EditorObject mainObjTmp = new EditorObject();
            mainObjTmp.obj = obj;
            mainObjTmp.path = GetObjectPath(obj);

            EditPackageConfigTmp.mainObject = mainObjTmp;
            EditPackageConfigTmp.path = GetRelativePath(FileTool.RemoveExpandName(GetObjectPath(obj)));

            Object[] res = GetCorrelationResource(obj);

            //判断依赖包中含不含有该资源,如果有,则不将此资源放入bundle中
            //依赖包判断
            for (int j = 0; j < res.Length; j++)
            {
                if (res[j] == null)
                {
                    //Debug.LogWarning(obj + " 有资源丢失!");
                    continue;
                }

                ////过滤掉一些不必要加载进去的组件
                //if (ComponentFilter(res[j]))
                //{
                //    continue;
                //}

                EditorObject tmp = new EditorObject();
                tmp.obj = res[j];
                tmp.path = GetObjectPath(res[j]);

                //bool isExistRelyPackage = false;

                for (int i = 0; i < relyPackages.Count; i++)
                {
                    if (isExist_Bundle(tmp, relyPackages[i]))
                    {
                        //在依赖包选项中添加此依赖包
                        EditPackageConfigTmp.relyPackagesMask = EditPackageConfigTmp.relyPackagesMask | 1 << i;
                        //isExistRelyPackage = true;
                        break;
                    }
                }
            }

            bundles.Add(EditPackageConfigTmp);

            m_BundleDictCatch.Add(EditPackageConfigTmp.name, EditPackageConfigTmp);
        }
    }
    /// <summary>
    /// 检查单个资源是否全都被其依赖包引用
    /// </summary>
    bool GetResIsUseByRelyBundle(EditPackageConfig pack, EditorObject res)
    {

        //根据mask获取所有依赖包
        List<EditPackageConfig> relysBundles = GetRelyPackListByMask(pack.relyPackagesMask);

        for (int i = 0; i < relysBundles.Count; i++)
        {
            if (isExist_Bundle(res, relysBundles[i]))
            {
                return true;
            }
        }

        return false;
    }
    void CreateObject()
    {
        GameObject newObj;

        // Item 1
        if (itemOption == ItemList.Item_1)
        {
            // Create object
            newObj = Instantiate(item_1);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_1;
        }
        // Item 2
        else if (itemOption == ItemList.Item_2)
        {
            // Create object
            newObj = Instantiate(item_2);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_2;
        }
        // Item 3
        else if (itemOption == ItemList.Item_3)
        {
            // Create object
            newObj = Instantiate(item_3);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_3;
        }
        // Item 4
        else if (itemOption == ItemList.Item_4)
        {
            // Create object
            newObj = Instantiate(item_4);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_4;
        }
        // Item 5
        else if (itemOption == ItemList.Item_5)
        {
            // Create object
            newObj = Instantiate(item_5);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_5;
        }
        // Item 6
        else if (itemOption == ItemList.Item_6)
        {
            // Create object
            newObj = Instantiate(item_6);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_6;
        }
        // Item 7
        else if (itemOption == ItemList.Item_7)
        {
            // Create object
            newObj = Instantiate(item_7);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_7;
        }
        // Item 8
        else if (itemOption == ItemList.Item_8)
        {
            // Create object
            newObj = Instantiate(item_8);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
            newObj.layer = 9;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Item_8;
        }
        else if (itemOption == ItemList.Player)
        {
            // Create object
            if (manager.playerPlaced == false)
            {
                newObj = Instantiate(playerSt);
                newObj.transform.position = SnapToGrid(_rayHit.point);
                newObj.transform.Translate(new Vector3(0.0f, -0.5f, 0.0f));
                newObj.layer         = 9;
                manager.playerPlaced = true;

                // Add editor object component
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Player;
            }
        }
        else if (itemOption == ItemList.Collectable)
        {
            // Create object
            newObj = Instantiate(collectable);
            newObj.transform.position = SnapToGrid(_rayHit.point);
            // newObj.transform.Translate(new Vector3(0.0f, 0.0f, 0.0f));
            newObj.layer = 8;

            // Add editor object component
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.obPosition = newObj.transform.position;
            eo.data.obRotation = newObj.transform.rotation;
            eo.data.obType     = EditorObject.ObjectType.Collectable;
        }
    }
    void AddAssetBundle(Object obj, string path)
    {
        EditorObject objTmp = new EditorObject();

        objTmp.obj  = obj;
        objTmp.path = GetObjectPath(obj);

        if (isExist_AllBundle(objTmp))
        {
            //Debug.Log(obj.name + " 已经存在!");
        }
        else
        {
            EditPackageConfig EditPackageConfigTmp = new EditPackageConfig();
            EditPackageConfigTmp.name = obj.name;

            EditorObject mainObjTmp = new EditorObject();
            mainObjTmp.obj  = obj;
            mainObjTmp.path = GetObjectPath(obj);

            EditPackageConfigTmp.mainObject = mainObjTmp;
            EditPackageConfigTmp.path       = GetRelativePath(FileTool.RemoveExpandName(GetObjectPath(obj)));

            Object[] res = GetCorrelationResource(obj);

            //判断依赖包中含不含有该资源,如果有,则不将此资源放入bundle中
            //依赖包判断
            for (int j = 0; j < res.Length; j++)
            {
                if (res[j] == null)
                {
                    Debug.LogWarning(obj + " 有资源丢失!");
                    continue;
                }

                ////过滤掉一些不必要加载进去的组件
                //if (ComponentFilter(res[j]))
                //{
                //    continue;
                //}

                EditorObject tmp = new EditorObject();
                tmp.obj  = res[j];
                tmp.path = GetObjectPath(res[j]);

                //bool isExistRelyPackage = false;

                for (int i = 0; i < relyPackages.Count; i++)
                {
                    if (isExist_Bundle(tmp, relyPackages[i]))
                    {
                        //在依赖包选项中添加此依赖包
                        EditPackageConfigTmp.relyPackagesMask = EditPackageConfigTmp.relyPackagesMask | 1 << i;
                        //isExistRelyPackage = true;
                        break;
                    }
                }

                ////该资源不在依赖包中,并且也与主资源不同时,放入包中
                //if (isExistRelyPackage == false
                //    &&!EqualsEditorObject(EditPackageConfigTmp.mainObject,tmp)
                //    )
                //{

                //    EditPackageConfigTmp.objects.Add(tmp);
                //}
            }

            bundles.Add(EditPackageConfigTmp);
        }
    }
Beispiel #20
0
 public void Set(EditorObject selected)
 {
     Reset();
     SetFirst(selected);
     if (selected != null)
     {
         selected.SetSelected(true);
     }
     SelectionChanged(GetAll());
 }
Beispiel #21
0
    public bool WaitingForCallerAndMessage(EditorObject caller, EditorObject.EditorObjectMessage message)
    {
        if (_callerRegistry.ContainsKey(caller) && _callerRegistry[caller] == message)
        {
            return true;
        }

        return false;
    }
Beispiel #22
0
 public MementoSelection(Selection selection)
 {
     Selected = selection.GetAll().AsReadOnly();
     First = selection.First;
 }
Beispiel #23
0
        /// <summary>
        /// Adds a new object to the level
        /// </summary>
        /// <param name="position">The vector on the level, NOT the mouse vector. That will fail. Seriously</param>
        private void AddLevelObject(Vector2 position)
        {
            if(currentSelectedTexture != null)
            {
                EditorObject levelBlock = new EditorObject(string.Empty, position);

                using(FileStream textureStream = new FileStream(currentSelectedTexture.ImageLocation, FileMode.Open)){
                    levelBlock.Texture = Texture2D.FromStream(xna.GraphicsDevice, textureStream);
                }

                gameStateManager.AddExternalObject(levelBlock);
                gameStateManager.AdjustPosition(levelBlock);
            }
            else
            {
                MessageBox.Show("How about selecting a texture, genious?");
            }
            return;
        }
 //Constructor
 public EditorObjectConnection(EditorObject.EditorObjectMessage message, EditorObject caller, EditorObject subject, EventTransceiver.Events onEvent)
 {
     OnEvent = onEvent;
     Message = message;
     Caller  = caller;
     Subject = subject;
     GUID    = System.Guid.NewGuid().ToString();
     SetColor();
 }
Beispiel #25
0
    /// <summary>
    /// Create level.
    /// </summary>
    void CreateFromFile()
    {
        GameObject newObj;

        for (int i = 0; i < _level.editorObjects.Count; i++)
        {
            if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_1)
            {
                newObj = Instantiate(item_1);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_1;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_2)
            {
                newObj = Instantiate(item_2);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_2;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_3)
            {
                newObj = Instantiate(item_3);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_3;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_4)
            {
                newObj = Instantiate(item_4);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_4;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_5)
            {
                newObj = Instantiate(item_5);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_5;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_6)
            {
                newObj = Instantiate(item_6);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_6;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_7)
            {
                newObj = Instantiate(item_7);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_7;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_8)
            {
                newObj = Instantiate(item_8);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_8;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Player)
            {
                // This sets the player starting position
                // PLAYER_POSITION = _level.editorObjects[i].obPosition;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Collectable)
            {
                newObj = Instantiate(steakPickup);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 8;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Collectable;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Background)
            {
                backgroundMenuIndex = _level.editorObjects[i].bckGrndIndex;
                ChangeBackgroundImage();
            }
        }
    }
Beispiel #26
0
    // create objects based on data within level.
    private void CreateFromFile()
    {
        players  = new GameObject("Players");
        units    = GameObject.Find("Units");
        cellGrid = GameObject.Find("CellGrid");
        mCamera  = Camera.main;
        var cameraObject = new GameObject("Main Camera");

        cameraObject.tag = "MainCamera";
        mCamera          = cameraObject.AddComponent <Camera>();

        cellGrid.GetComponent <CellGrid>().PlayersParent = players.transform;

        for (int i = 0; i < 2; i++)
        {
            var player = new GameObject(string.Format("Player_{0}", players.transform.childCount));
            player.AddComponent <HumanPlayer>();
            player.GetComponent <Player>().PlayerNumber = players.transform.childCount;
            player.transform.parent = players.transform;
        }

        EditorObject p = players.AddComponent <EditorObject>();

        p.data.pos        = players.transform.position;
        p.data.rot        = players.transform.rotation;
        p.data.objectType = EditorObject.ObjectType.Player;



        GameObject LoadLevels;
        var        ret = new List <Cell>();


        for (int i = 0; i < level.editorObjects.Count; i++)
        {
            if (level.editorObjects[i].objectType == EditorObject.ObjectType.Unit)
            {
                LoadLevels = Instantiate(itemsToPickFrom[0]);
                LoadLevels.transform.position = level.editorObjects[i].pos; // set position from data in level
                LoadLevels.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                LoadLevels.layer = 9;                                       // assign to SpawnedObjects layer.

                LoadLevels.GetComponent <Unit>().PlayerNumber = 0;
                units = GameObject.Find("Units");

                LoadLevels.transform.SetParent(units.transform);

                //Add editor object component and feed data.
                EditorObject eo = LoadLevels.AddComponent <EditorObject>();
                eo.data.pos        = LoadLevels.transform.position;
                eo.data.rot        = LoadLevels.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Unit;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Unit2) // if a cylinder object
            {
                LoadLevels = Instantiate(itemsToPickFrom[1]);
                LoadLevels.transform.position = level.editorObjects[i].pos; // set position from data in level
                LoadLevels.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                LoadLevels.layer = 9;                                       // assign to SpawnedObjects layer.

                LoadLevels.GetComponent <Unit>().PlayerNumber = 1;
                units = GameObject.Find("Units");

                LoadLevels.transform.SetParent(units.transform);

                //Add editor object component and feed data.
                EditorObject eo = LoadLevels.AddComponent <EditorObject>();
                eo.data.pos        = LoadLevels.transform.position;
                eo.data.rot        = LoadLevels.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Unit2;
            }

            /*else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Obstacle)
             * {
             *  LoadLevels = Instantiate(itemsToPickFrom[2]);
             *  LoadLevels.transform.position = level.editorObjects[i].pos; // set position from data in level
             *  LoadLevels.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
             *  LoadLevels.layer = 9; // assign to SpawnedObjects layer.
             *
             *  //Add editor object component and feed data.
             *  EditorObject eo = LoadLevels.AddComponent<EditorObject>();
             *  eo.data.pos = LoadLevels.transform.position;
             *  eo.data.rot = LoadLevels.transform.rotation;
             *  eo.data.objectType = EditorObject.ObjectType.Obstacle;
             * }*/

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Obstacle)
            {
                LoadLevels = Instantiate(itemsToPickFrom[2]);
                LoadLevels.transform.position = level.editorObjects[i].pos; // set position from data in level
                LoadLevels.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                LoadLevels.layer = 9;                                       // assign to SpawnedObjects layer.

                LoadLevels.GetComponent <Unit>().PlayerNumber = 2;
                units = GameObject.Find("Units");

                LoadLevels.transform.SetParent(units.transform);

                //Add editor object component and feed data.
                EditorObject eo = LoadLevels.AddComponent <EditorObject>();
                eo.data.pos        = LoadLevels.transform.position;
                eo.data.rot        = LoadLevels.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Unit2;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Cell)
            {
                Debug.Log("loading grid");
                var LoadLevelss = Instantiate(itemsToPickFrom[3]);
                if (level.editorObjects[i].isTaken == true)
                {
                    LoadLevelss.GetComponent <Cell>().IsTaken = true;
                }
                LoadLevelss.transform.position = level.editorObjects[i].pos; // set position from data in level
                LoadLevelss.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                LoadLevelss.GetComponent <Cell>().OffsetCoord  = level.editorObjects[i].coord;
                LoadLevelss.GetComponent <Cell>().MovementCost = 1;
                cellGrid = GameObject.Find("CellGrid");
                LoadLevelss.transform.SetParent(cellGrid.transform);


                Debug.Log(LoadLevelss.GetComponent <Cell>().OffsetCoord);
                EditorObject eo = LoadLevelss.AddComponent <EditorObject>();
                eo.data.pos        = LoadLevelss.transform.position;
                eo.data.rot        = LoadLevelss.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Cell;
            }
            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Camera)
            {
                mCamera.transform.position = level.editorObjects[i].pos; // set position from data in level
                mCamera.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                mCamera.fieldOfView        = 35.3f;

                EditorObject eo = cameraObject.AddComponent <EditorObject>();
                eo.data.pos        = cameraObject.transform.position;
                eo.data.rot        = cameraObject.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Camera;
            }
        }
    }
    bool isExist_EditorList(List<EditorObject> list, EditorObject obj)
    {
        for (int i = 0; i < list.Count; i++)
        {
            if (list[i] == null
                || list[i].obj == null)
            {
                continue;
            }

            if (EqualsEditorObject(list[i], obj))
            {
                return true;
            }
        }

        return false;
    }
Beispiel #28
0
 public static bool RayCastPhysics(Vec3 raySrc, Vec3 rayDir, EditorObject ignore, out Vec3 hitPos, out float hitDist, out Vec3 hitNormal)
 {
     return(Binding.FCE_Editor_RayCastPhysics(raySrc.X, raySrc.Y, raySrc.Z, rayDir.X, rayDir.Y, rayDir.Z, ignore.Pointer, out hitPos.X, out hitPos.Y, out hitPos.Z, out hitDist, out hitNormal.X, out hitNormal.Y, out hitNormal.Z));
 }
 void ReLoadEditObject(EditorObject editObj)
 {
     editObj.obj = AssetDatabase.LoadAssetAtPath<Object>(editObj.path);
 }
Beispiel #30
0
    private void CreateObject(Vector3 clickPoint)
    {
        var        finalPosition = grid.GetNearestPointOnGrid(clickPoint);
        Vector3    dummy         = new Vector3(0.0f, 0, 0);
        GameObject newobj;
        GameObject temp;

        if (itemOption == ItemList.Wall)
        {
            newobj       = Instantiate(prog.wall, finalPosition, Quaternion.identity);
            newobj.layer = 9;
            newobj.tag   = "Wall";
            EditorObject eo = newobj.AddComponent <EditorObject>();
            eo.data.pos        = newobj.transform.position;
            eo.data.objectType = EditorObject.ObjectType.Wall;
        }
        else if (itemOption == ItemList.Player)
        {
            if (prog.playerPlaced == false)
            {
                prog.StartPT.transform.position = finalPosition;
                Debug.Log("In Placer, Start: " + finalPosition);
                //prog.StartPT.transform.position = finalPosition;
                temp              = Instantiate(prog.StartPT, finalPosition, Quaternion.identity);
                newobj            = Instantiate(prog.player, dummy, Quaternion.identity);
                prog.playerPlaced = true;
                EditorObject eo = newobj.AddComponent <EditorObject>();
                eo.data.pos        = newobj.transform.position;
                eo.data.objectType = EditorObject.ObjectType.Player;
                Destroy(newobj);
            }
        }
        else if (itemOption == ItemList.End)
        {
            Debug.Log("In Placer, End: " + finalPosition);
            prog.EndPT.transform.position = finalPosition;
            //prog.EndPT.transform.position = finalPosition;
            newobj = Instantiate(prog.EndPT, finalPosition, Quaternion.identity);
            //newobj = Instantiate(prog.EndPT, dummy, Quaternion.identity);
            EditorObject eo = newobj.AddComponent <EditorObject>();
            eo.data.pos        = newobj.transform.position;
            eo.data.objectType = EditorObject.ObjectType.End;
            //destroy(newobj);
        }
        else if (itemOption == ItemList.Mud)
        {
            newobj       = Instantiate(prog.mud, finalPosition, Quaternion.identity);
            newobj.layer = 9;
            EditorObject eo = newobj.AddComponent <EditorObject>();
            eo.data.pos        = newobj.transform.position;
            eo.data.objectType = EditorObject.ObjectType.Mud;
        }
        else if (itemOption == ItemList.Caltrop)
        {
            newobj       = Instantiate(prog.caltrop, finalPosition, Quaternion.identity);
            newobj.layer = 9;
            EditorObject eo = newobj.AddComponent <EditorObject>();
            eo.data.pos        = newobj.transform.position;
            eo.data.objectType = EditorObject.ObjectType.Caltrop;
        }
    }
 //Constructor
 public EditorObjectConnection(EditorObject.EditorObjectMessage message)
 {
     Message = message;
     GUID = System.Guid.NewGuid().ToString();
     SetColor();
 }
Beispiel #32
0
 public void Add(EditorObject obj)
 {
     EditorForm.EditorObjectTreeView.Nodes.Add(obj.Name);
     EditorForm.ObjectPropertyGrid.SelectedObject = obj;
     _editorObjectList.Add(obj);
 }
Beispiel #33
0
 public void SetFirst(EditorObject first)
 {
     First = first;
     /*if (First != null)
     {
         _firstMarker.Visible = true;
         _firstMarker.SetParent(First.Marker);
     }
     else
     {
         _firstMarker.Visible = false;
         _firstMarker.SetParent(null);
     }*/
 }
Beispiel #34
0
    /// <summary>
    /// Create level.
    /// </summary>
    void CreateFromFile()
    {
        GameObject newObj;

        for (int i = 0; i < _level.editorObjects.Count; i++)
        {
            if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_1)
            {
                newObj = Instantiate(msScript.item_1);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_1;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_2)
            {
                newObj = Instantiate(msScript.item_2);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_2;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_3)
            {
                newObj = Instantiate(msScript.item_3);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_3;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_4)
            {
                newObj = Instantiate(msScript.item_4);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_4;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_5)
            {
                newObj = Instantiate(msScript.item_5);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_5;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_6)
            {
                newObj = Instantiate(msScript.item_6);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_6;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_7)
            {
                newObj = Instantiate(msScript.item_7);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_7;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Item_8)
            {
                newObj = Instantiate(msScript.item_8);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Item_8;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Player)
            {
                newObj       = Instantiate(msScript.playerSt, transform.position, Quaternion.identity);
                newObj.layer = 9;
                newObj.AddComponent <CapsuleCollider>();
                newObj.GetComponent <CapsuleCollider>().height = 2;
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                playerPlaced = true;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Player;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Collectable)
            {
                newObj = Instantiate(msScript.collectable);
                newObj.transform.position = _level.editorObjects[i].obPosition;
                newObj.transform.rotation = _level.editorObjects[i].obRotation;
                newObj.layer = 9;

                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.obPosition = newObj.transform.position;
                eo.data.obRotation = newObj.transform.rotation;
                eo.data.obType     = EditorObject.ObjectType.Collectable;
            }
            else if (_level.editorObjects[i].obType == EditorObject.ObjectType.Background)
            {
                backgroundMenuIndex = _level.editorObjects[i].bckGrndIndex;
                dropdownMenu.GetComponent <Dropdown>().value = backgroundMenuIndex;
                ChangeBackgroundImage();
            }
        }

        levelNameLoad.text = "";
        levelNameLoad.DeactivateInputField();
        loadUIAnimation.SetTrigger("SaveLoadOut");
        _loadPositionIn   = false;
        saveLoadMenuOpen  = false;
        levelMessage.text = "Level loaded";
        messageAnim.Play("MessageFade", 0, 0);
    }
Beispiel #35
0
 public void Toggle(EditorObject selected)
 {
     if (selected == null)
     {
         return;
     }
     if (selected.IsSelected)
     {
         Remove(selected);
     }
     else
     {
         Add(selected);
     }
 }
Beispiel #36
0
 public void BeginSession(EditorSession session, EditorObject editorObject)
 {
     Session      = session;
     EditorObject = editorObject;
 }
 void ReLoadEditObject(EditorObject editObj)
 {
     editObj.obj = AssetDatabase.LoadAssetAtPath <Object>(editObj.path);
 }
Beispiel #38
0
 public bool Remove(EditorObject deselect)
 {
     if (deselect == null)
     {
         return false;
     }
     if (First == deselect)
     {
         if (GetAll().Count > 0)
         {
             SetFirst(GetAll()[0]);
         }
     }
     bool wasSelected = deselect.IsSelected;
     deselect.SetSelected(false);
     SelectionChanged(GetAll());
     return wasSelected;
 }
    /// <summary>
    /// Object creation
    /// </summary>
    void CreateObject()
    {
        GameObject newObj;

        if (itemOption == ItemList.Cylinder) // cylinder
        {
            //Create object
            newObj = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
            newObj.transform.position = transform.position;
            newObj.layer = 9; // set to Spawned Objects layer

            //Add editor object component and feed it data.
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.pos        = newObj.transform.position;
            eo.data.rot        = newObj.transform.rotation;
            eo.data.objectType = EditorObject.ObjectType.Cylinder;
        }
        else if (itemOption == ItemList.Cube) // cube
        {
            //Create object
            newObj = GameObject.CreatePrimitive(PrimitiveType.Cube);
            newObj.transform.position = transform.position;
            newObj.layer = 9; // set to Spawned Objects layer

            //Add editor object component and feed it data.
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.pos        = newObj.transform.position;
            eo.data.rot        = newObj.transform.rotation;
            eo.data.objectType = EditorObject.ObjectType.Cube;
        }
        else if (itemOption == ItemList.Sphere) // sphere
        {
            //Create object
            newObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            newObj.transform.position = transform.position;
            newObj.layer = 9; // set to Spawned Objects layer

            //Add editor object component and feed it data.
            EditorObject eo = newObj.AddComponent <EditorObject>();
            eo.data.pos        = newObj.transform.position;
            eo.data.rot        = newObj.transform.rotation;
            eo.data.objectType = EditorObject.ObjectType.Sphere;
        }
        else if (itemOption == ItemList.Player) // player start
        {
            if (ms.playerPlaced == false)       // only perform next actions if player not yet placed.
            {
                //Create object and give it capsule collider component.
                newObj       = Instantiate(Player, transform.position, Quaternion.identity);
                newObj.layer = 9; // set to Spawned Objects layer
                newObj.AddComponent <CapsuleCollider>();
                newObj.GetComponent <CapsuleCollider>().center = new Vector3(0, 1, 0);
                newObj.GetComponent <CapsuleCollider>().height = 2;
                ms.playerPlaced = true;

                //Add editor object component and feed it data.
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.pos        = newObj.transform.position;
                eo.data.rot        = newObj.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Player;
            }
        }
    }
 public static void DrawLine(EditorObject source, EditorObject target, Color color)
 {
     DrawLine(source.gameObject, target.gameObject, color);
 }
    /// <summary>
    /// 检查某个资源包内有没有重复资源
    /// </summary>
    /// <param name="pack"></param>

    void CheckBundle(EditPackageConfig pack)
    {
        if (bundleName.ContainsKey(pack.name))
        {
            Debug.LogError(pack.name + "包名重复! ");
            pack.errorMsg.Add("包名重复! ");
            errorCount++;
        }
        else
        {
            bundleName.Add(pack.name, 0);
        }

        if (pack.mainObject != null)
        {
            string resNameTmp = CustomToString(pack.mainObject.obj);

            if (checkDict.ContainsKey(resNameTmp))
            {
                //判断该资源是否在它的依赖包里,如果不在,加入判重
                if (!GetResIsUseByRelyBundle(pack, pack.mainObject)
                    && !ComponentFilter(pack.mainObject.obj))
                {
                    if (isExist_EditorList(checkDict[resNameTmp], pack.mainObject))
                    {
                        pack.warnMsg.Add("MainObject 重复! " + resNameTmp);
                        warnCount++;
                    }
                    else
                    {
                        checkDict[resNameTmp].Add(pack.mainObject);
                    }
                }
            }
            else
            {
                checkDict.Add(resNameTmp, new List<EditorObject>());
                checkDict[resNameTmp].Add(pack.mainObject);
            }
        }

        Object[] res = GetCorrelationResource(pack.mainObject.obj);

        for (int i = 0; i < res.Length; i++)
        {
            string resNameTmp = CustomToString(res[i]);
            EditorObject tmp = new EditorObject();
            tmp.obj = res[i];
            tmp.path = GetObjectPath(res[i]);

            if (checkDict.ContainsKey(resNameTmp))
            {
                //判断该资源是否在它的依赖包里,如果不在,加入判重
                if (!EqualsEditorObject(pack.mainObject, tmp)
                    && !GetResIsUseByRelyBundle(pack, tmp)
                    && !ComponentFilter(res[i]))
                {
                    if (isExist_EditorList(checkDict[resNameTmp], tmp))
                    {
                        pack.warnMsg.Add("Objects存在重复资源 ! " + resNameTmp);
                        warnCount++;
                    }
                    else
                    {
                        checkDict[resNameTmp].Add(tmp);
                    }
                }
            }
            else
            {
                checkDict.Add(resNameTmp, new List<EditorObject>());
                checkDict[resNameTmp].Add(tmp);
            }
        }
    }
Beispiel #42
0
 public Add(ControllerEditor controller, EditorObject editorObject)
 {
     IsMarker = true;
     _editorObject = editorObject;
     _controller = controller;
 }
    /// <summary>
    /// 判断某个资源是否
    /// </summary>
    /// <param name="pack"></param>
    /// <param name="res"></param>
    /// <returns></returns>
    bool GetResIsUseByMainObject(EditPackageConfig pack, EditorObject res)
    {
        if (EqualsEditorObject(pack.mainObject, res))
        {
            return true;
        }

        return false;
    }
Beispiel #44
0
        public static EditorObject GetObjectFromScreenPoint(Vec2 pt, out Vec3 hitPos, bool includeFrozen, EditorObject ignore)
        {
            PhysEntityVector vector = PhysEntityVector.Null;

            if (ignore.IsValid)
            {
                vector = PhysEntityVector.Create();
                ignore.GetPhysEntities(vector);
            }
            EditorObject result = new EditorObject(Binding.FCE_ObjectManager_GetObjectFromScreenPoint(pt.X, pt.Y, out hitPos.X, out hitPos.Y, out hitPos.Z, includeFrozen, vector.Pointer));

            if (vector.IsValid)
            {
                vector.Dispose();
            }
            return(result);
        }
 /// <summary>
 /// 判断一个资源是否已经在bundle列表中
 /// </summary>
 /// <param name="obj">资源对象</param>
 /// <returns>是否存在</returns>
 bool isExist_AllBundle(EditorObject obj)
 {
     if (obj != null && obj.obj != null && m_BundleDictCatch != null && m_BundleDictCatch.ContainsKey(obj.obj.name))
     {
         return true;
     }
     else
     {
         return false;
     }
 }
    void CreateFromFile()
    {
        GameObject NewObject;

        for (int i = 0; i < level.editorObjects.Count; i++)
        {
            if (level.editorObjects[i].objectType == EditorObject.ObjectType.Platform)
            {
                NewObject       = Instantiate(Platform, level.editorObjects[i].pos, Quaternion.identity);
                NewObject.layer = 9;

                EditorObject eo = NewObject.AddComponent <EditorObject>();
                eo.data.pos        = NewObject.transform.position;
                eo.data.objectType = EditorObject.ObjectType.Platform;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Coin)
            {
                NewObject       = Instantiate(Coin, level.editorObjects[i].pos, Quaternion.identity);
                NewObject.layer = 9;

                EditorObject eo = NewObject.AddComponent <EditorObject>();
                eo.data.pos        = NewObject.transform.position;
                eo.data.objectType = EditorObject.ObjectType.Coin;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Player)
            {
                NewObject       = Instantiate(Player, level.editorObjects[i].pos, Quaternion.identity);
                NewObject.layer = 9;     // set to Spawned Objects layer
                PlayerPlaced    = true;

                EditorObject eo = NewObject.AddComponent <EditorObject>();
                eo.data.pos        = NewObject.transform.position;
                eo.data.objectType = EditorObject.ObjectType.Player;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.StartPos)
            {
                NewObject         = Instantiate(StartPos, level.editorObjects[i].pos, Quaternion.identity);
                NewObject.layer   = 9;   // set to Spawned Objects layer
                StartpointPresent = true;

                EditorObject eo = NewObject.AddComponent <EditorObject>();
                eo.data.pos        = NewObject.transform.position;
                eo.data.objectType = EditorObject.ObjectType.StartPos;
            }

            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.EndPos)
            {
                NewObject       = Instantiate(EndPos, level.editorObjects[i].pos, Quaternion.identity);
                NewObject.layer = 9;     // set to Spawned Objects layer
                EndPointPlaced  = true;

                EditorObject eo = NewObject.AddComponent <EditorObject>();
                eo.data.pos        = NewObject.transform.position;
                eo.data.objectType = EditorObject.ObjectType.EndPos;
            }
        }
        LoadlevelName.text = "";
        LoadlevelName.DeactivateInputField();
        SaveLoadMessage.text = " Level Loading done";
    }
 bool isExist_Bundle(EditorObject obj, EditPackageConfig package)
 {
     return isExist_EditorList(package.objects, obj);
 }
    /// <summary>
    /// 检查某个资源包内有没有重复资源
    /// </summary>
    /// <param name="pack"></param>

    void CheckBundle(EditPackageConfig pack)
    {
        if (bundleName.ContainsKey(pack.name))
        {
            Debug.LogError(pack.name + "包名重复! ");
            pack.errorMsg.Add("包名重复! ");
            errorCount++;
        }
        else
        {
            bundleName.Add(pack.name, 0);
        }

        if (pack.mainObject != null)
        {
            string resNameTmp = CustomToString(pack.mainObject.obj);

            if (checkDict.ContainsKey(resNameTmp))
            {
                //判断该资源是否在它的依赖包里,如果不在,加入判重
                if (!GetResIsUseByRelyBundle(pack, pack.mainObject) &&
                    !ComponentFilter(pack.mainObject.obj))
                {
                    if (isExist_EditorList(checkDict[resNameTmp], pack.mainObject))
                    {
                        pack.warnMsg.Add("MainObject 重复! " + resNameTmp);
                        warnCount++;
                    }
                    else
                    {
                        checkDict[resNameTmp].Add(pack.mainObject);
                    }
                }
            }
            else
            {
                checkDict.Add(resNameTmp, new List <EditorObject>());
                checkDict[resNameTmp].Add(pack.mainObject);
            }
        }

        Object[] res = GetCorrelationResource(pack.mainObject.obj);

        for (int i = 0; i < res.Length; i++)
        {
            string       resNameTmp = CustomToString(res[i]);
            EditorObject tmp        = new EditorObject();
            tmp.obj  = res[i];
            tmp.path = GetObjectPath(res[i]);

            if (ComponentFilter(tmp.obj))
            {
                continue;
            }

            if (checkDict.ContainsKey(resNameTmp))
            {
                //判断该资源是否在它的依赖包里,如果不在,加入判重
                if (!EqualsEditorObject(pack.mainObject, tmp) &&
                    !GetResIsUseByRelyBundle(pack, tmp) &&
                    !ComponentFilter(res[i]))
                {
                    if (isExist_EditorList(checkDict[resNameTmp], tmp))
                    {
                        pack.warnMsg.Add(pack.path + " 存在重复资源 ! " + resNameTmp);
                        warnCount++;
                    }
                    else
                    {
                        checkDict[resNameTmp].Add(tmp);
                    }
                }
            }
            else
            {
                checkDict.Add(resNameTmp, new List <EditorObject>());
                checkDict[resNameTmp].Add(tmp);
            }
        }
    }
 //比较两个EditorObject是否相等
 bool EqualsEditorObject(EditorObject obj_a, EditorObject obj_b)
 {
     //只比较加载路径,如果加载路径相等则认为是一个
     if (obj_a.path.Equals(obj_b.path))
     {
         return true;
     }
     else
     {
         return false;
     }
 }
Beispiel #50
0
 public void AddKeyframe(EditorObject instance, Transform2 keyframe)
 {
     AddKeyframe(instance, keyframe, (float)Time);
 }
Beispiel #51
0
 public void RemoveCaller(EditorObject caller)
 {
     if (_callerRegistry.ContainsKey(caller))
     {
         _callerRegistry.Remove(caller);
     }
 }
Beispiel #52
0
 protected void OnEditorObjectHover(EditorObject eo)
 {
     EditorObject.CurrentHoveredEditorObject = eo;
 }
Beispiel #53
0
        public void GenerateGrid()
        {
            players  = new GameObject("Players");
            units    = new GameObject("Units");
            cellGrid = new GameObject("CellGrid");
            //cellGrid = GameObject.Find("CellGrid");

            for (int i = 0; i < Dimensions.players; i++)
            {
                var player = new GameObject(string.Format("Player_{0}", players.transform.childCount));
                player.AddComponent <HumanPlayer>();
                player.GetComponent <Player>().PlayerNumber = players.transform.childCount;
                player.transform.parent = players.transform;
            }

            EditorObject p = players.AddComponent <EditorObject>();

            p.data.pos        = players.transform.position;
            p.data.rot        = players.transform.rotation;
            p.data.objectType = EditorObject.ObjectType.Player;


            var cellGridScript = cellGrid.AddComponent <CellGrid>();

            cellGrid.GetComponent <CellGrid>().PlayersParent = players.transform;

            //var cellGridScript = cellGrid.GetComponent<CellGrid>();



            var unitGenerator = cellGrid.AddComponent <CustomUnitGenerator>();

            unitGenerator.UnitsParent = units.transform;
            unitGenerator.CellsParent = cellGrid.transform;



            var ret = new List <Cell>();

            for (int x = 0; x < Dimensions.rows; x++)
            {
                for (int z = 0; z < Dimensions.cols; z++)
                {
                    Vector3    spawnPosition = new Vector3(x * gridSpacing, 0, z * gridSpacing) + origin;
                    GameObject square        = PickAndSpawn(spawnPosition, Quaternion.identity);
                    //square.transform.position = new Vector3(x * gridSpacing, 0, z * gridSpacing) + origin;
                    square.GetComponent <Cell>().OffsetCoord = new Vector2(x, z);
                    //square.GetComponent<MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
                    square.GetComponent <Cell>().MovementCost = 1;
                    Debug.Log(square.GetComponent <Cell>().OffsetCoord);


                    square.transform.SetParent(cellGrid.transform);

                    ret.Add(square.GetComponent <Cell>());

                    EditorObject eo = square.AddComponent <EditorObject>();
                    eo.data.pos        = square.transform.position;
                    eo.data.rot        = square.transform.rotation;
                    eo.data.coord      = square.GetComponent <Cell>().OffsetCoord;
                    eo.data.objectType = EditorObject.ObjectType.Cell;
                }
            }

            var cellDimensions = SquarePrefab.GetComponent <Cell>().GetCellDimensions();

            var gridInfo = new GridInfo();

            gridInfo.Cells      = ret;
            gridInfo.Dimensions = new Vector3(cellDimensions.x * (Dimensions.rows - 1), cellDimensions.y, cellDimensions.z * (Dimensions.cols - 1));
            gridInfo.Center     = gridInfo.Dimensions / 2;


            var camera       = Camera.main;
            var cameraObject = GameObject.Find("Main Camera");

            //cameraObject.tag = "MainCamera";
            camera = cameraObject.GetComponent <Camera>();
            camera.transform.position = new Vector3(gridInfo.Center.x, gridInfo.Center.y + (3.5f * Dimensions.rows), gridInfo.Center.z);

            //camera.transform.position -= new Vector3(0, 0, (gridInfo.Dimensions.x > gridInfo.Dimensions.z ? gridInfo.Dimensions.x : gridInfo.Dimensions.z) * Mathf.Sqrt(3) / 2);



            var rotationVector = new Vector3(0f, 0f, 0f);

            camera.transform.Rotate(rotationVector);


            camera.transform.parent = null;
            camera.transform.SetAsFirstSibling();

            EditorObject eoc = cameraObject.AddComponent <EditorObject>();

            eoc.data.pos        = cameraObject.transform.position;
            eoc.data.rot        = cameraObject.transform.rotation;
            eoc.data.objectType = EditorObject.ObjectType.Camera;


            //guiController = new GameObject("GUIController");
            guiController = GameObject.Find("GUIController");


            //var guiControllerScript = guiController.AddComponent<GUIController>();
            var guiControllerScript = guiController.GetComponent <GUIController>();

            guiControllerScript.CellGrid = cellGridScript;

            //guiController.SetActive(false);

            cellGrid.GetComponent <CellGrid>().enabled = false;
        }
Beispiel #54
0
    static void DrawGizmos(EditorObject eo, GizmoType gizmoType)
    {
        if (!Application.isPlaying)
        {
            if (SceneView.currentDrawingSceneView.camera == null)
            {
                return;
            }

            Camera currentCamera = SceneView.currentDrawingSceneView.camera;

            if (eo.ActivateHighlight)
            {
                Gizmos.DrawIcon(eo.transform.position, "Gizmo_Activate_Ring");
            }
            if (eo.DeactivateHighlight)
            {
                Gizmos.DrawIcon(eo.transform.position, "Gizmo_Deactivate_Ring");
            }
            if (eo.ToggleHighlight)
            {
                Gizmos.DrawIcon(eo.transform.position, "Gizmo_Toggle_Ring");
            }

            eo.ActivateHighlight   = false;
            eo.DeactivateHighlight = false;
            eo.ToggleHighlight     = false;

            if (Selection.activeGameObject != eo.gameObject)
            {
                Vector3 centre          = eo.transform.position;
                Vector3 right           = (centre + (currentCamera.transform.right * 0.4f));
                Vector3 centreConverted = currentCamera.WorldToScreenPoint(centre);
                Vector3 rightConverted  = currentCamera.WorldToScreenPoint(right);
                float   dist            = Mathf.Abs(centreConverted.x - rightConverted.x);

                centreConverted.y = currentCamera.pixelHeight - centreConverted.y;

                Rect labelRect = new Rect(centreConverted.x - dist, centreConverted.y - dist, dist * 2, dist * 2);
                EditorGUIUtility.AddCursorRect(labelRect, MouseCursor.Link);

                                #if DEBUG
                Handles.BeginGUI();
                GUI.Label(labelRect, "", GUI.skin.box);
                Handles.EndGUI();
                                #endif
                Event e = Event.current;


                if (labelRect.Contains(e.mousePosition))
                {
                    eo.HighlightHighlight = true;

                    foreach (EditorObjectConnection connection in ConnectionRegistry.DesignInstance.Registry)
                    {
                        if (connection.Caller != eo)
                        {
                            continue;
                        }
                        else if (connection.Subject.HighlightHighlight)
                        {
                            Handles.color = Color.cyan;
                            Handles.DrawLine(eo.transform.position, connection.Subject.transform.position);
                            continue;
                        }

                        Handles.color = GrendelColor.FlashingColor(connection.MessageColorDark, 4f);

                        switch (connection.Message)
                        {
                        case EditorObject.EditorObjectMessage.Activate:

                            Handles.DrawLine(eo.transform.position, connection.Subject.transform.position);

                            break;

                        case EditorObject.EditorObjectMessage.Deactivate:

                            Handles.DrawLine(eo.transform.position, connection.Subject.transform.position);

                            break;

                        case EditorObject.EditorObjectMessage.Toggle:

                            Handles.DrawLine(eo.transform.position, connection.Subject.transform.position);

                            break;

                        default:

                            break;
                        }
                    }

                    Gizmos.DrawIcon(eo.transform.position, "Gizmo_Cyan_Ring");
                    Gizmos.DrawIcon(eo.transform.position, "Gizmo_Fill");
                    EditorObject.CurrentHoveredEditorObject = eo;
                }
                else
                {
                    eo.HighlightHighlight = false;
                }

                Vector3 pos = eo.transform.position;
                pos += (currentCamera.transform.right) * 0.5f;
                pos += (currentCamera.transform.up) * 0.15f;

                Handles.color = eo.NameConflict == true ? Color.red : Color.white;

                Handles.Label(pos, eo.name, GrendelCustomStyles.CustomElement(GUI.skin.label, Color.white, Handles.color));

                Handles.color = Color.white;
            }
            else
            {
                eo.HighlightHighlight = false;
                Gizmos.DrawIcon(eo.transform.position, "Gizmo_Selected");
                Gizmos.DrawIcon(eo.transform.position, "Gizmo_White_Ring");
            }
        }        //end Application.isPlaying check

        Gizmos.DrawIcon(eo.transform.position, eo.GizmoName);

        try
        {
            if (SceneView.mouseOverWindow.GetInstanceID() == SceneView.currentDrawingSceneView.GetInstanceID())
            {
                SceneView.RepaintAll();
            }
        }
        catch
        {
            //mouse is out of scene view, no biggie
        }
    }
Beispiel #55
0
 public static void GetObjectsFromMagicWand(EditorObjectSelection selection, EditorObject obj)
 {
     Binding.FCE_ObjectManager_GetObjectsFromMagicWand(selection.Pointer, obj.Pointer);
 }
Beispiel #56
0
        public static bool RayCastPhysics(Vec3 raySrc, Vec3 rayDir, EditorObject ignore, out Vec3 hitPos, out float hitDist)
        {
            Vec3 vec;

            return(RayCastPhysics(raySrc, rayDir, ignore, out hitPos, out hitDist, out vec));
        }
    void AddAssetBundle(Object obj, string path)
    {
        if (obj == null)
        {
            return;             //都是空了也就是没有意义的
        }
        EditorObject objTmp = new EditorObject();

        objTmp.obj  = obj;
        objTmp.path = GetObjectPath(obj);

        if (isExist_AllBundle(objTmp))
        {
            Debug.LogWarning(obj.name + " 已经存在!");
        }
        else if (!IsPackage(objTmp))
        {
            //Debug.LogWarning(obj.name + " 资源不打包!");
        }
        else
        {
            EditPackageConfig EditPackageConfigTmp = new EditPackageConfig();

            if (obj == null)
            {
                Debug.LogError("AddAssetBundle ERROR : path: " + path);
                return;
            }
            EditPackageConfigTmp.name = obj.name;

            EditorObject mainObjTmp = new EditorObject();
            mainObjTmp.obj  = obj;
            mainObjTmp.path = GetObjectPath(obj);

            EditPackageConfigTmp.mainObject = mainObjTmp;
            EditPackageConfigTmp.path       = GetRelativePath(FileTool.RemoveExpandName(GetObjectPath(obj)));

            Object[] res = GetCorrelationResource(obj);

            //判断依赖包中含不含有该资源,如果有,则不将此资源放入bundle中
            //依赖包判断
            for (int j = 0; j < res.Length; j++)
            {
                if (res[j] == null)
                {
                    //Debug.LogWarning(obj + " 有资源丢失!");
                    continue;
                }

                ////过滤掉一些不必要加载进去的组件
                //if (ComponentFilter(res[j]))
                //{
                //    continue;
                //}

                EditorObject tmp = new EditorObject();
                tmp.obj  = res[j];
                tmp.path = GetObjectPath(res[j]);

                //bool isExistRelyPackage = false;

                for (int i = 0; i < relyPackages.Count; i++)
                {
                    if (isExist_Bundle(tmp, relyPackages[i]))
                    {
                        //Debug.Log("添加依赖包 : " + i);
                        //在依赖包选项中添加此依赖包
                        EditPackageConfigTmp.relyPackagesMask = EditPackageConfigTmp.relyPackagesMask | 1 << i;
                        //isExistRelyPackage = true;
                        break;
                    }
                }
            }

            bundles.Add(EditPackageConfigTmp);

            m_BundleDictCache.Add(EditPackageConfigTmp.name, EditPackageConfigTmp);
        }
    }
Beispiel #58
0
 public static void OnObjectAddedFromTool(EditorObject obj)
 {
     Binding.FCE_ObjectManager_OnObjectAddedFromTool(obj.Pointer);
 }
 bool isExist_Bundle(EditorObject obj, EditPackageConfig package)
 {
     return(isExist_EditorList(package.objects, obj));
 }
Beispiel #60
0
    // create objects based on data within level.
    void CreateFromFile()
    {
        GameObject newObj; // make a new object.

        for (int i = 0; i < level.editorObjects.Count; i++)
        {
            if (level.editorObjects[i].objectType == EditorObject.ObjectType.Cylinder) // if a cylinder object
            {
                // create cylinder
                newObj = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
                newObj.transform.position = level.editorObjects[i].pos; // set position from data in level
                newObj.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                newObj.layer = 9;                                       // assign to SpawnedObjects layer.

                //Add editor object component and feed data.
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.pos        = newObj.transform.position;
                eo.data.rot        = newObj.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Cylinder;
            }
            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Cube)
            {
                // create cube
                newObj = GameObject.CreatePrimitive(PrimitiveType.Cube);
                newObj.transform.position = level.editorObjects[i].pos; // set position from data in level
                newObj.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                newObj.layer = 9;                                       // assign to SpawnedObjects layer.

                //Add editor object component and feed data.
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.pos        = newObj.transform.position;
                eo.data.rot        = newObj.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Cube;
            }
            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Sphere)
            {
                // create sphere
                newObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                newObj.transform.position = level.editorObjects[i].pos; // set position from data in level
                newObj.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                newObj.layer = 9;                                       // assign to SpawnedObjects layer.

                //Add editor object component and feed data.
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.pos        = newObj.transform.position;
                eo.data.rot        = newObj.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Sphere;
            }
            else if (level.editorObjects[i].objectType == EditorObject.ObjectType.Player)
            {
                // create player marker
                newObj       = Instantiate(user.Player, transform.position, Quaternion.identity);
                newObj.layer = 9;                        // assign to SpawnedObjects layer.
                newObj.AddComponent <CapsuleCollider>(); // make capsule collider component
                newObj.GetComponent <CapsuleCollider>().center = new Vector3(0, 1, 0);
                newObj.GetComponent <CapsuleCollider>().height = 2;
                newObj.transform.position = level.editorObjects[i].pos; // set position from data in level
                newObj.transform.rotation = level.editorObjects[i].rot; // set rotation from data in level.
                playerPlaced = true;

                //Add editor object component and feed data.
                EditorObject eo = newObj.AddComponent <EditorObject>();
                eo.data.pos        = newObj.transform.position;
                eo.data.rot        = newObj.transform.rotation;
                eo.data.objectType = EditorObject.ObjectType.Player;
            }
        }

        //Clear level box
        levelNameLoad.text = "";
        levelNameLoad.DeactivateInputField();      // remove focus from input field

        loadUIAnimation.SetTrigger("SaveLoadOut"); // slide load menu off screen
        saveLoadPositionIn = false;                // indicate load menu off screen
        saveLoadMenuOpen   = false;                // allow camera movement.

        //Display message
        levelMessage.text = "Level loading...done.";
        messageAnim.Play("MessageFade", 0, 0);
    }