Exemplo n.º 1
0
    void ShowZhongGuai(string[] FarmingType)
    {
        /*出生到地图上(锁定Y轴)*/
        BornAtMap = EditorGUILayout.Toggle(EditorStringConfig.getString(10017), BornAtMap);
        if (BornAtMap)
        {
            Vector2 bornPos = new Vector2(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionZ);
            /*出生坐标*/
            bornPos = EditorGUILayout.Vector2Field(EditorStringConfig.getString(10018), bornPos);
            SceneEditorSettings.BronPostionX = (int)bornPos.x;
            SceneEditorSettings.BronPostionZ = (int)bornPos.y;
        }
        else
        {
            Vector3 bornPos = new Vector3(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionY, SceneEditorSettings.BronPostionZ);
            /*出生坐标*/
            bornPos = EditorGUILayout.Vector3Field(EditorStringConfig.getString(10018), bornPos);
            SceneEditorSettings.BronPostionX = (int)bornPos.x;
            SceneEditorSettings.BronPostionY = (int)bornPos.y;
            SceneEditorSettings.BronPostionZ = (int)bornPos.z;
        }

        GUILayout.Space(20f);
        GUILayout.BeginHorizontal();
        /*创建*/
        if (GUILayout.Button(EditorStringConfig.getString(10015) + FarmingType[SceneEditorSettings.farmingTypeIndex], GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.CreatePlant(PlantSourceObject[PlantSourceIndex],
                                         new Vector3(SceneEditorSettings.BronPostionX, SceneEditorSettings.BronPostionY, SceneEditorSettings.BronPostionZ),
                                         Vector3.one,
                                         (SceneElementType)SceneEditorSettings.farmingTypeIndex,
                                         BornAtMap);
        }
        /*保存配置表*/
        if (GUILayout.Button(EditorStringConfig.getString(10019), GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.AutoGenerateSettingFile();
        }
        /*导出游戏数据*/
        if (GUILayout.Button(EditorStringConfig.getString(10020), GUILayout.Width(150), GUILayout.Height(40)))
        {
            SceneEditorTools.AutoGenerateGameData();
        }
        GUILayout.EndHorizontal();
    }
Exemplo n.º 2
0
    public void OnSceneGUI()
    {
        if (element == null)
        {
            element = (UISceneElement)target;
        }

        if (element == null || !element.enabled)
        {
            return;
        }

        if (element.isDeleteGameObject)
        {
            //销毁
            EditorMemoryRecycle.RemoveMemory(element.gameObject);
            element.isDeleteGameObject = false;
        }


        base.OnSceneGUI();

        //反算屏幕坐标
        if (MoveFllowMouse)
        {
            //Debug.LogError("[MoveFllowMouse]"+MoveFllowMouse.ToString());
            Vector3 mypos = element.transform.position;
            if (element.settingData.Type == SceneElementType.NPC)
            {
                mypos.y = 0;
            }
            else
            {
                mypos.y = element.transform.localScale.y / 2f;
            }

            element.transform.position = mypos;
            Vector3 ScenePos      = SceneCamera.WorldToScreenPoint(element.transform.position);
            Vector3 mousePosition = Event.current.mousePosition;
            float   height        = SceneView.currentDrawingSceneView.position.height;
            mousePosition.y = height - mousePosition.y - 15f;
            mousePosition.z = ScenePos.z;
            Vector3 resultPos = SceneCamera.ScreenToWorldPoint(mousePosition);
            element.transform.position = resultPos;
        }


        //绘制文本框
        Handles.Label(element.transform.position + Vector3.up * 3,
                      element.transform.name + " : " + element.transform.position.ToString());

        //开始绘制GUI
        Handles.BeginGUI();

        //规定GUI显示区域
        GUILayout.BeginArea(new Rect(100, 100, 200, 400));

        //GUI绘制文本框
        /*正在编辑*/
        GUILayout.Label(EditorStringConfig.getString(10030) + ":" + element.gameObject.name);


        /*吸附到地图*/
        element.isAtMap = GUILayout.Toggle(element.isAtMap, EditorStringConfig.getString(10031));
//		/*鼠标跟随*/
//		element.isSeletctedFllowMouse = GUILayout.Toggle(element.isSeletctedFllowMouse,EditorStringConfig.getString(10032));
//
//		if(element.isSeletctedFllowMouse) element.isAtMap = true;

        //自动吸附到地图
        if (element.isAtMap)
        {
            element.AdsorptionToMap();
        }
        else
        {
            /*种植*/
            if (GUILayout.Button(EditorStringConfig.getString(10034), GUILayout.Width(100), GUILayout.Height(20)))
            {
                element.CorrectionPostion();
            }
        }

        /*克隆*/
        if (GUILayout.Button(EditorStringConfig.getString(10035), GUILayout.Width(100), GUILayout.Height(20)))
        {
            Object     prefab      = EditorUtility.GetPrefabParent(Selection.activeObject);
            GameObject cloneSource = Selection.activeObject as GameObject;
            GameObject cloneObject = null;
            if (prefab)
            {
                Vector3 oldpos = element.gameObject.transform.position;
                cloneObject = SceneEditorTools.CreatePlant(prefab, new Vector3(oldpos.x + 3f + element.transform.localScale.x, oldpos.y, oldpos.z), element.transform.localScale, element.settingData.Type, element.isAtMap, element.transform.rotation.eulerAngles);
            }
            //克隆代码
            element.CloneScript(cloneSource, cloneObject);
        }

        /*销毁*/
        if (GUILayout.Button(EditorStringConfig.getString(10033), GUILayout.Width(100), GUILayout.Height(20)))
        {
            element.isDeleteGameObject = true;
        }
        //GUILayout.BeginHorizontal();
        element.isSetTransform = GUILayout.Toggle(element.isSetTransform, "Transform(World)", EditorStyles.foldout);
        //GUILayout.EndHorizontal();
        Rect lastRect = GUILayoutUtility.GetLastRect();

        if (element.isSetTransform)
        {
            ++EditorGUI.indentLevel;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "P"))
            {
                element.transform.position = Vector3.zero;
            }
            element.transform.position = EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.position);
            GUILayout.EndHorizontal();

            lastRect.yMax += 20f;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "R"))
            {
                element.transform.rotation = Quaternion.Euler(Vector3.zero);
            }
            element.transform.rotation = Quaternion.Euler(EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.rotation.eulerAngles));
            GUILayout.EndHorizontal();

            lastRect.yMax += 20f;
            GUILayout.BeginHorizontal();
            if (GUI.Button(new Rect(16, lastRect.yMax, 20, 18), "S"))
            {
                element.transform.localScale = Vector3.one;
            }
            element.transform.localScale = EditorGUI.Vector3Field(new Rect(20, lastRect.yMax + 2, 150, 20), "", element.transform.localScale);
            GUILayout.EndHorizontal();

            --EditorGUI.indentLevel;
        }
        GUILayout.EndArea();

        Handles.EndGUI();
    }