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>(); } }
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); }
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); } }
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; //选中面片不缩放 } } }
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); }