Exemplo n.º 1
0
    static void OpenMapEditor()
    {
        if (!EditorApplication.isPlaying)
        {
            return;
        }

        Debug.Log("打开地图编辑");
        if (GameObject.Find("MapDesignCanvas"))
        {
            UIDialogMessage.Show("已经添加了地图编辑器");
            return;
        }


        if (Camera.main & Camera.main.GetComponent <CameraController>())
        {
            Camera.main.GetComponent <CameraController>().enabled = false;
        }
#if UNITY_EDITOR
        GameObject mapEditor = GameObject.Instantiate(UnityEditor.AssetDatabase.LoadAssetAtPath <GameObject>("Assets/PublishRes/DesignTools/MapDesignCanvas" + ".prefab"));
#endif
        mapEditor.name = "MapDesignCanvas";
        if (GameObject.Find("EventSystem") == null)
        {
            GameObject go = new GameObject("EventSystem");
            go.AddComponent <EventSystem>();
            go.AddComponent <StandaloneInputModule>();
        }
    }
Exemplo n.º 2
0
    void Awake()
    {
        instance = this;
        Message  = transform.FindChild("Dialog/Text").GetComponent <Text>();
        Transform CloseBntTra = transform.FindChild("Dialog/Button");
        Button    LoginBnt    = CloseBntTra.GetComponent <Button>();

        LoginBnt.onClick.AddListener(delegate()
        {
            Close(gameObject);
        });
        gameObject.SetActive(false);
    }
Exemplo n.º 3
0
    public void Clicked()
    {
        Vector2 screenCenter = new Vector2(Screen.width / 2, Screen.height / 2);

        Vector3 pos = MapDataProccess.instance.GetTerrainPos(screenCenter, true);

        if (pos == Vector3.zero)
        {
            UIDialogMessage.Show("位置错误,请重新放置");
            return;
        }
        else
        {
            pos.y += 0.01f;
            MapDesignTools.instance.InstantUnit(Respath, pos, eID, kResType, kName, ResID, Quaternion.identity, true);
        }
    }
Exemplo n.º 4
0
    void OnGUI()
    {
        if (MapDesignTools.instance.SelectedGO)
        {
            bIsScale = false;
            MapResProperty resProp      = MapDesignTools.instance.SelectedGO.GetComponent <MapResProperty>();
            Transform      Seledtf      = MapDesignTools.instance.SelectedGO.transform.FindChild("SelectedReg");
            Vector3        selScale     = Seledtf.localScale;
            float          facx         = 1f;
            float          facy         = 1f;
            float          facz         = 1f;
            float          scaleFactorx = 0f;
            float          scaleFactory = 0f;
            float          scaleFactorz = 0f;
            if (resProp.GetResType() != 16 && resProp.GetResType() != 18)
            {
                return;
            }
            Vector3 localScale = MapDesignTools.instance.SelectedGO.transform.localScale;
            Vector3 scale      = Vector3.one;
            if (Input.GetKey(KeyCode.LeftArrow))
            {
                if (resProp.GetResType() == 16)
                {
                    scaleFactorx = -0.1f;
                }
                else
                {
                    scaleFactorz = -0.1f;
                }
                bIsScale = true;
            }
            if (Input.GetKey(KeyCode.RightArrow))
            {
                if (resProp.GetResType() == 16)
                {
                    scaleFactorx = 0.1f;
                }
                else
                {
                    scaleFactorz = 0.1f;
                }
                bIsScale = true;
            }
            if (Input.GetKey(KeyCode.UpArrow))
            {
                if (resProp.GetResType() == 16)
                {
                    scaleFactorz = 0.1f;
                }
                else
                {
                    scaleFactory = 0.1f;
                }
                bIsScale = true;
            }
            if (Input.GetKey(KeyCode.DownArrow))
            {
                if (resProp.GetResType() == 16)
                {
                    scaleFactorz = -0.1f;
                }
                else
                {
                    scaleFactory = -0.1f;
                }
                bIsScale = true;
            }

            if (bIsScale)
            {
                scale = new Vector3(localScale.x + scaleFactorx, localScale.y + scaleFactory, localScale.z + scaleFactorz);
                facx  = scale.x / localScale.x;
                facy  = scale.y / localScale.y;
                facz  = scale.z / localScale.z;
                if (resProp.GetResType() == 16 && (scale.x <= 3f || scale.z <= 3f))
                {
                    UIDialogMessage.Show("已经缩放到最小了.......");
                    return;
                }

                MapDesignTools.instance.SelectedGO.transform.localScale = scale;
                Vector3 Selectedscale = new Vector3(selScale.x / facx, selScale.y / facy, selScale.z / facz);
                Seledtf.localScale = Selectedscale;  //选中面片不缩放
            }
        }
    }
Exemplo n.º 5
0
    public MapResProperty InstantUnit(string Respath, Vector3 pos, int eID, int kResType, string kName, int resID, Quaternion rot, bool bSelected = false)
    {
        GameObject goRes     = null;
        GameObject goResSign = null;

        if (kResType != 16)
        {
            goRes = Resources.Load <GameObject>(Respath);
        }
        else
        {
#if UNITY_EDITOR
            goRes = UnityEditor.AssetDatabase.LoadAssetAtPath <GameObject>("Assets/PublishRes/" + Respath + ".prefab");
#endif
        }
#if UNITY_EDITOR
        goResSign = UnityEditor.AssetDatabase.LoadAssetAtPath <GameObject>("Assets/PublishRes/DesignTools/SelectedReg" + ".prefab");
#endif
        if (goRes == null || goResSign == null)
        {
            return(null);
        }
        if (pos == Vector3.zero)
        {
            UIDialogMessage.Show("位置错误,请重新放置");
            return(null);
        }

        GameObject     go      = (GameObject)Instantiate(goRes, pos, rot);
        MapResProperty mResPro = go.AddComponent <MapResProperty>();

        if (MapDesignTools.instance.ResRoot == null)
        {
            MapDesignTools.instance.ResRoot = new GameObject("ResRoot");
        }
        go.transform.SetParent(MapDesignTools.instance.ResRoot.transform);
        mResPro.SetResType(kResType);
        mResPro.SetEid(eID);
        mResPro.SetName(kName);
        mResPro.SetResPath(Respath);
        mResPro.SetResID(resID);
        go.name = Path.GetFileName(Respath) + eID.ToString();
        if (kResType == 18)
        {
            BoxCollider collider = go.AddComponent <BoxCollider>();
            collider.size   = new Vector3(1, 3, 3);
            collider.center = new Vector3(0, 1.5f, 0);
        }

        if (bSelected)
        {
            GameObject gosel = (GameObject)Instantiate(goResSign, pos, Quaternion.identity);

            gosel.name = "SelectedReg";
            gosel.transform.SetParent(go.transform);
            gosel.transform.localPosition      = Vector3.zero;
            MapDesignTools.instance.SelectedGO = go;
        }

        MapDesignTools.instance.Hide();
        MapDataProccess.instance.ResList.Add(eID, mResPro);
        return(mResPro);
    }