void GetWu(string wuName, Vector2 qidian, Vector2 zhongdian, int SDOrder, Color color) { string _wuName = "wu_1_1"; GameObject _wu = GlobalTools.GetGameObjectByName(_wuName); //补的雾 看后面的需求 //GameObject _wu2 = GlobalTools.GetGameObjectByName(_wuName); _wu.transform.parent = GlobalTools.FindObjByName("maps").transform; float _w = GlobalTools.GetJingW(_wu); float _h = GlobalTools.GetJingH(_wu); float _w2 = Mathf.Abs(zhongdian.x - qidian.x); float _h2 = Mathf.Abs(zhongdian.y - qidian.y) + 5; _wu.transform.localScale = new Vector3(_w2 / _w + 0.6f, _h2 / _h * 3, 1); _wu.transform.position = new Vector2(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f + 2); //print(">????????????????????????????????????????????????????????????? "+ _w+" >-缩放后 " +GlobalTools.GetJingW(_wu)); GlobalTools.SetMapObjOrder(_wu, SDOrder); //print("雾的宽度 "+_w+" _w2宽度 "+_w2+" 宽度缩放比例 "+_w2/_w+" weizhi "+_wu.transform.position); //print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "+_wu.transform.position+" 起点 "+qidian+" 终点 "+zhongdian); //改变雾的颜色 _wu.GetComponent <SpriteRenderer>().color = color;// new Color(0.1f,1f,1f,0.5f);//new Color((129 / 255)f, (69 / 255)f, (69 / 255)f, (255 / 255)f); //Color.red; }
//大远背景 从中间开始 两面距离 分散的 排列方法(注意 大平地 排列方法 按以前的来) protected void SetDaYuanBeijing(List <string> JingLists, int nums, Vector2 pos1, Vector2 pos2, float _y, float _z, float _dz, int sd, string _cx, float ZYXiuzheng) { if (JingLists.Count == 0) { return; } List <string> strArr = JingLists;//GetDateByName.GetInstance().GetListByName(jinglistName, MapNames.GetInstance()); //string _jinglistNameTou = jinglistName.Split('_')[0]; //print(" ---------------------------------------------------------------------------- "+ _jinglistNameTou); for (int i = 0; i < nums; i++) { string objName = strArr[GlobalTools.GetRandomNum(strArr.Count)]; //print(" ----------------------------- 前景名字 "+ objName); GameObject jingObj = GlobalTools.GetGameObjectByName(objName); print("111111jingObj " + jingObj.name); if (jingObj == null) { continue; } jingObj.transform.parent = maps.transform; float __x = 0; float __y = 0; float __z = 0; float jingW = GlobalTools.GetJingW(jingObj); float jingH = GlobalTools.GetJingH(jingObj); float w = Mathf.Abs(pos1.x - pos2.x); float __dxXiuzheng = 1; float __dx = GlobalTools.GetRandomNum(100) > 50 ? GlobalTools.GetRandomDistanceNums(__dxXiuzheng) : -GlobalTools.GetRandomDistanceNums(__dxXiuzheng); __x = pos1.x + w * 0.5f + __dx; if (jingObj.GetComponent <JingBase>()) { __y = _y + jingObj.GetComponent <JingBase>().GetCenterPosY() - ZYXiuzheng - GlobalTools.GetRandomDistanceNums(0.4f); //GlobalTools.GetRandomDistanceNums(1); } else { __y = _y + 3f; } __z = _z + GlobalTools.GetRandomDistanceNums(_dz); jingObj.transform.position = new Vector3(__x, __y, __z); int _sd = sd + i % 10; GlobalTools.SetMapObjOrder(jingObj, _sd); GlobalTools.SaveGameObj(jingObj); } }
protected virtual void GetWu(string wuName, Vector2 qidian, Vector2 zhongdian, int SDOrder, Color color) { string _wuName = "wu_1_1"; if (wuName == "qWu") { _wuName = "wu_qWu_1"; } GameObject _wu = GlobalTools.GetGameObjectByName(_wuName); //print(" wu " +_wu.name+" pos "+_wu.transform.position); //补的雾 看后面的需求 //GameObject _wu2 = GlobalTools.GetGameObjectByName(_wuName); _wu.transform.parent = GlobalTools.FindObjByName("maps").transform; float _w = GlobalTools.GetJingW(_wu); float _h = GlobalTools.GetJingH(_wu); float _w2 = Mathf.Abs(zhongdian.x - qidian.x); float _h2 = Mathf.Abs(zhongdian.y - qidian.y) + 5; if (wuName != "qWu") { //print(" 地板宽度 "+_w2); _wu.transform.localScale = new Vector3(_w2 / (_w + 0.6f), _h2 / _h * 3, 1); //print(" 缩放 "+ _wu.transform.localScale); _wu.transform.position = new Vector2(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f - 0.3f); } else { _wu.transform.position = new Vector3(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f + GlobalTools.GetRandomDistanceNums(1), -0.8f - GlobalTools.GetRandomDistanceNums(1.8f)); } //print(">????????????????????????????????????????????????????????????? "+ _w+" >-缩放后 " +GlobalTools.GetJingW(_wu)); GlobalTools.SetMapObjOrder(_wu, SDOrder); //print("雾的宽度 "+_w+" _w2宽度 "+_w2+" 宽度缩放比例 "+_w2/_w+" weizhi "+_wu.transform.position); //print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "+_wu.transform.position+" 起点 "+qidian+" 终点 "+zhongdian); //改变雾的颜色 _wu.GetComponent <SpriteRenderer>().color = color;// new Color(0.1f,1f,1f,0.5f);//new Color((129 / 255)f, (69 / 255)f, (69 / 255)f, (255 / 255)f); //Color.red; }
protected virtual void SetTongYongXiushiJing(Transform JingTrans, List <string> JingNameList, int JingNums = 0) { print(" xs width " + GetWidth() * 0.6f); GetObjListNameList(JingTrans, JingNameList); if (JingNameList.Count == 0) { return; } //有字节头的 特殊处理 eg: qj_ yqj_ ybj_ //其他根据 大小来 判断 位置 float _l = tl.transform.position.x; float _r = rd.transform.position.x; float _topPosY = tl.transform.position.y; float _w = GetWidth(); int nums = 0; if (JingNums != 0) { nums = JingNums; } else { nums = 1 + GlobalTools.GetRandomNum(JingNameList.Count); } print(" xs nums " + nums); for (int i = 0; i < nums; i++) { string objName = JingNameList[GlobalTools.GetRandomNum(JingNameList.Count)]; print(" xs objName " + objName); GameObject jingObj = GlobalTools.GetGameObjectByName(objName); if (jingObj == null) { continue; } jingObj.transform.parent = maps.transform; //无法判断大小的 都作为修饰景 //和 雾一起配合 +一个 雾进去?? 是加 雾 还是 自带 ----- 先不加这个 //深度 在 -10 --- -40 //dY <= 2 float JingW = 0; float JingH = 0; float _x = 0; float _y = 0; float _z = 0; if (jingObj.GetComponent <JingBase>()) { JingW = jingObj.GetComponent <JingBase>().GetWidth(); JingH = jingObj.GetComponent <JingBase>().GetHeight(); } else { JingW = GlobalTools.GetJingW(jingObj); JingH = GlobalTools.GetJingH(jingObj); } float LeftPosX = tl.transform.position.x; float LeftPosY = tl.transform.position.y; float ___qishiX = LeftPosX + (GetWidth() - JingW) * 0.25f; float ___RandomDisX = (GetWidth() - JingW) * 0.5f; float _dy = 0; _dy = JingH <= 3 ? GlobalTools.GetRandomDistanceNums(0.5f) : 0.5f + GlobalTools.GetRandomDistanceNums(1f); if (JingH <= 1.4f) { _dy = GlobalTools.GetRandomDistanceNums(0.2f) - GlobalTools.GetRandomDistanceNums(0.5f); } //_dy = 0; int sd = 20; string[] strArr = jingObj.name.Split('_'); string touName = strArr[0]; string S2Name = ""; if (strArr[1] != null) { S2Name = strArr[1]; } if (touName == "qj") { } else if (touName == "yqj") { _z = -1.2f - GlobalTools.GetRandomDistanceNums(0.5f); _x = LeftPosX + GetWidth() * 0.4f + GlobalTools.GetRandomDistanceNums(GetWidth() * 0.2f); _dy = JingH - GlobalTools.GetRandomDistanceNums(0.8f); sd = 50 - i % 8; } else if (touName == "ybj") { } else { if (JingW >= 7.6f || JingH >= 4) { //居中靠后型的 _z = 1 + GlobalTools.GetRandomDistanceNums(1); _x = LeftPosX + GetWidth() * 0.2f + GlobalTools.GetRandomDistanceNums(GetWidth() * 0.6f); // ___qishiX+___RandomDisX; _dy = 0.5f + GlobalTools.GetRandomDistanceNums(2f); sd = -60 - i % 8; } else if (JingW <= 4f) { _z = GlobalTools.GetRandomDistanceNums(0.4f); _x = LeftPosX + JingW * 0.6f + GlobalTools.GetRandomDistanceNums(GetWidth() - JingW * 1.2f); sd = -1 - i % 8; } else { _z = 0.5f + GlobalTools.GetRandomDistanceNums(1); _x = LeftPosX + JingW * 0.8f + GlobalTools.GetRandomDistanceNums(GetWidth() - JingW * 1.8f); sd = -50 - i % 8; } //if (jingObj.GetComponent<JingBase>()) //{ //} //else //{ //} } if (touName == "wy" || S2Name != "") { //唯一 直接在 数组内取出删除 JingNameList.Remove(objName); } if (jingObj.GetComponent <JingBase>()) { jingObj.GetComponent <JingBase>().SetSD(sd); } else { GlobalTools.SetMapObjOrder(jingObj, sd); } _y = LeftPosY + JingH * 0.5f - _dy; jingObj.transform.position = new Vector3(_x, _y, _z); GlobalTools.SaveGameObj(jingObj); } }
protected virtual void GetTopDingJing(Transform JingTrans, List <string> JingNameList, int JingNums = 0) { GetObjListNameList(JingTrans, JingNameList); if (JingNameList.Count == 0) { return; } Vector2 pos1 = DingDBPosL.position; Vector2 pos2 = DingDBPosR.position; float _l = DingDBPosL.transform.position.x; float _r = DingDBPosR.transform.position.x; float _topPosY = DingDBPosL.transform.position.y; float _w = Mathf.Abs(_l - _r); int nums = 0; if (JingNums != 0) { nums = JingNums; } else { nums = 5 + GlobalTools.GetRandomNum(JingNameList.Count); } for (int i = 0; i < nums; i++) { string objName = JingNameList[GlobalTools.GetRandomNum(JingNameList.Count)]; print(" xs objName " + objName); GameObject jingObj = GlobalTools.GetGameObjectByName(objName); if (jingObj == null) { continue; } jingObj.transform.parent = maps.transform; float JingW = 0; float JingH = 0; float _x = 0; float _y = 0; float _z = 0; int sd = 0; if (jingObj.GetComponent <JingBase>()) { JingW = jingObj.GetComponent <JingBase>().GetWidth(); JingH = jingObj.GetComponent <JingBase>().GetHeight(); } else { JingW = GlobalTools.GetJingW(jingObj); JingH = GlobalTools.GetJingH(jingObj); } string touName = objName.Split('_')[0]; string touNmae2 = "";//objName.Split('_')[1]; if (objName.Split('_')[1] != null) { touNmae2 = objName.Split('_')[1]; } if (touName == "qj") { if (JingW >= 8f) { print("XXXX1 jingW " + JingW + " _w " + _w); _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f); _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.5f); _z = -GlobalTools.GetRandomDistanceNums(0.3f); sd = 30 + i % 8; } else if (JingW <= 4.4f) { print("XXXX2 jingW " + JingW + " _w " + _w); _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f); _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.5f); _z = -0.6f + -GlobalTools.GetRandomDistanceNums(0.6f); sd = 50 + i % 8; } else { _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f); _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f); _z = -GlobalTools.GetRandomDistanceNums(0.3f); sd = 40 + i % 8; } } else if (touName == "Qiang") { //墙 越宽 越靠前 if (JingW >= 8f) { _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f); _y = _topPosY + GlobalTools.GetRandomDistanceNums(JingH * 0.2f); _z = -0.3f - GlobalTools.GetRandomDistanceNums(0.3f); sd = -10 - i % 8; } else if (JingW <= 4.4f) { _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f); _y = _topPosY - GlobalTools.GetRandomDistanceNums(JingH * 0.5f); _z = 0.8f + GlobalTools.GetRandomDistanceNums(0.6f); sd = -70 - i % 8; } else { _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f); _y = _topPosY - GlobalTools.GetRandomDistanceNums(JingH * 0.5f); _z = 0.4f + GlobalTools.GetRandomDistanceNums(0.6f); sd = -60 - i % 8; } } else { //顶部的 零碎景 _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f); _y = _topPosY - JingH * 0.3f + GlobalTools.GetRandomDistanceNums(JingH * 0.8f); _z = GlobalTools.GetRandomDistanceNums(0.3f); //前 还是后 _z = GlobalTools.GetRandomNum() > 50 ? _z : -_z; if (_z >= 0) { sd = 22 + i % 8; } else { sd = -10 - i % 8; //_z = -GlobalTools.GetRandomDistanceNums(0.3f); } } if (touName == "wy" || touNmae2 == "wy") { JingNameList.Remove(objName); } if (jingObj.GetComponent <JingBase>()) { jingObj.GetComponent <JingBase>().SetSD(sd); } else { GlobalTools.SetMapObjOrder(jingObj, sd); } jingObj.transform.position = new Vector3(_x, _y, _z); } }
protected override void Zhuangshiwu(string JName = "Zhuangshiwu_1") { //print("zsw JName " + JName); string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName); //print("zsw zswArrName " + zswArrName); if (zswArrName == "") { return; } //判断是否有装饰物 只有一个 if (GlobalTools.GetRandomNum() < 20) { return; } Vector2 pos1 = tl.position; Vector2 pos2 = new Vector2(rd.position.x, tl.position.y); //float _y = pos1.y - 1.5f; //int nums = 1 + GlobalTools.GetRandomNum(2); //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u"); GameObject Jobj = GetJObjByListName(zswArrName); string jingNameKey = Jobj.name.Split('_')[0]; float jingW = 0; float jingH = 0; if (Jobj.GetComponent <J_SPBase>()) { jingW = Jobj.GetComponent <J_SPBase>().GetWidth(); if (Jobj.GetComponent <J_SPBase>().light2d != null) { Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor(); } Jobj.GetComponent <J_SPBase>().SetSD(-10); } else { jingW = GlobalTools.GetJingW(Jobj); jingH = GlobalTools.GetJingH(Jobj); } float _w = GetWidth() - jingW; float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w); float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1); if (jingNameKey == "lj") { if (Jobj.GetComponent <J_SPBase>()) { __x = tl.position.x; __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f); } else { jingW = GlobalTools.GetJingW(Jobj); //Jobj.GetComponent<SpriteRenderer>().bounds.; jingH = GlobalTools.GetJingH(Jobj); __x = tl.position.x + jingW * 0.5f; //__y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) + 0.2f; if (JName == "Zhuangshiwu_1") { __y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) + 0.2f; } else { __y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) - 0.7f; } } if (GlobalTools.GetRandomNum() > 40) { //限制 出的几率 免得 太多 Jobj.transform.position = new Vector3(__x, __y, 0); return; } int nums = (int)(_w / jingW) - 1; if (nums > 1) { int maxNums = 1 + GlobalTools.GetRandomNum(nums); //print(" zsw 1> maxNums "+ maxNums); string JingName = GlobalTools.GetNewStrQuDiaoClone(Jobj.name); //print(" zsw 2> JingName=Jobj.name> " + JingName); string jingNameTou = JingName.Split('-')[0]; //print(" zsw 3> jingNameTou " + jingNameTou); for (int i = 0; i < maxNums; i++) { string LJJingName = jingNameTou + "-" + (i + 1); //print(i+ " zsw 4> LJJingName " + LJJingName); GameObject ljJing; ljJing = GlobalTools.GetGameObjectByName(LJJingName); if (ljJing == null) { //continue; LJJingName = jingNameTou + "-1"; ljJing = GlobalTools.GetGameObjectByName(LJJingName); } //print("LJJingName " + LJJingName); float _ljx = tl.position.x + (i + 1) * jingW; if (!Jobj.GetComponent <J_SPBase>()) { _ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f; } ljJing.transform.position = new Vector3(_ljx, __y, 0); ljJing.transform.parent = maps.transform; } } } else if (jingNameKey == "deng") { //灯 放路中间 左右偏移一点的位置 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = tl.position.x + GetWidth() * 0.5f + _pianyi; } else if (jingNameKey == "guangHua") { //发光的花 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = tl.position.x + GetWidth() * 0.5f + _pianyi; __y = tl.position.y + 2.2f; } if (JName == "QianZhuangshiwu_1") { __y -= 0.9f; } Jobj.transform.position = new Vector3(__x, __y, 0); }
protected virtual void Zhuangshiwu2(string JName = "zsw") { string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName); if (zswArrName == "") { return; } //中间 向两边扩散的 方法 //靠内一点的 平铺 //判断是否有装饰物 只有一个 //if (GlobalTools.GetRandomNum() < 20) return; Vector2 pos1 = tl.position; Vector2 pos2 = new Vector2(rd.position.x, tl.position.y); //float _y = pos1.y - 1.5f; //int nums = 1 + GlobalTools.GetRandomNum(2); //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u"); GameObject Jobj = GetJObjByListName(zswArrName); string jingNameKey = Jobj.name.Split('_')[0]; float jingW = 0; float jingH = 0; if (Jobj.GetComponent <J_SPBase>()) { jingW = Jobj.GetComponent <J_SPBase>().GetWidth(); if (Jobj.GetComponent <J_SPBase>().light2d != null) { Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor(); } Jobj.GetComponent <J_SPBase>().SetSD(-10); } else { jingW = GlobalTools.GetJingW(Jobj); jingH = GlobalTools.GetJingH(Jobj); } float _w = GetWidth() - jingW; print("剩余的 w 是多少宽度 " + _w); float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w * 0.5f); //__x = tl.position.x + _w * 0.5f; print(" __x 起始位置 " + __x); _w -= (__x - tl.position.x); print(" 除去 起始X后 剩余的 w 是多少宽度 " + _w); float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1); if (jingNameKey == "lj") { if (Jobj.GetComponent <J_SPBase>()) { __x = tl.position.x; __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f); } else { //print(" Jobj "+ Jobj.name); //jingW = GlobalTools.GetJingW(Jobj); //Jobj.GetComponent<SpriteRenderer>().bounds.; //jingH = GlobalTools.GetJingH(Jobj); //__x = tl.position.x + jingW * 0.5f; __y = tl.position.y + jingH * 0.5f - 0.2f; } Jobj.transform.position = new Vector3(__x, __y, 0); //if (GlobalTools.GetRandomNum() > 40) //{ // //限制 出的几率 免得 太多 // return; //} int nums = (int)(_w / jingW) - 1; print(" ------------------------------> _w " + _w + " jingW " + jingW + " xxxxx " + Jobj.transform.position.x); if (nums > 1) { int maxNums = 1 + GlobalTools.GetRandomNum(nums); string JingName = GlobalTools.GetNewStrQuDiaoClone(Jobj.name); string jingNameTou = JingName.Split('-')[0]; for (int i = 0; i < maxNums; i++) { string LJJingName = jingNameTou + "-" + (i + 1); GameObject ljJing; ljJing = GlobalTools.GetGameObjectByName(LJJingName); if (ljJing == null) { LJJingName = jingNameTou + "-1"; ljJing = GlobalTools.GetGameObjectByName(LJJingName); } //print("LJJingName " + LJJingName); //记录上一个 景位置 来算下一个位置 float _ljx = tl.position.x + (i + 1) * jingW; if (!Jobj.GetComponent <J_SPBase>()) { //_ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f; print("i " + i + " --->_ljx: " + _ljx + " jingW " + jingW); _ljx = Jobj.transform.position.x + (i + 1) * jingW; __y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.4f) - 0.15f; print(" ----------> __y " + __y + " tly " + tl.position.y); } else { _ljx = tl.position.x + (i + 1) * jingW; } if (JName == "qZsw") { ljJing.GetComponent <SpriteRenderer>().sortingOrder = 40 + i % 3; __y -= (0.6f + GlobalTools.GetRandomDistanceNums(0.4f)); } ljJing.transform.position = new Vector3(_ljx, __y, 0); ljJing.transform.parent = maps.transform; } } } else if (jingNameKey == "deng") { //灯 放路中间 左右偏移一点的位置 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = tl.position.x + GetWidth() * 0.5f + _pianyi; Jobj.transform.position = new Vector3(__x, __y, 0); } else if (jingNameKey == "guangHua") { //发光的花 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = tl.position.x + GetWidth() * 0.5f + _pianyi; __y = tl.position.y + 2.2f; Jobj.transform.position = new Vector3(__x, __y, 0); } if (JName == "qZsw") { __y = tl.position.y - (0.4f + GlobalTools.GetRandomDistanceNums(0.4f)); Jobj.GetComponent <SpriteRenderer>().sortingOrder = 40; Jobj.transform.position = new Vector3(__x, __y, 0); } }
protected override void Zhuangshiwu(string JName = "zsw") { //水面地板 GetDBShuiMian(); //出水面怪 ShuiMianChuGuai(); string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName); if (zswArrName == "") { return; } //判断是否有装饰物 只有一个 if (GlobalTools.GetRandomNum() < 20) { return; } Vector2 pos1 = tl.position; Vector2 pos2 = new Vector2(rd.position.x, tl.position.y); //float _y = pos1.y - 1.5f; //int nums = 1 + GlobalTools.GetRandomNum(2); //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u"); GameObject Jobj = GetJObjByListName(zswArrName); string jingNameKey = Jobj.name.Split('_')[0]; float jingW = 0; float jingH = 0; if (Jobj.GetComponent <J_SPBase>()) { jingW = Jobj.GetComponent <J_SPBase>().GetWidth(); if (Jobj.GetComponent <J_SPBase>().light2d != null) { Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor(); } Jobj.GetComponent <J_SPBase>().SetSD(-10); } else { jingW = GlobalTools.GetJingW(Jobj); jingH = GlobalTools.GetJingH(Jobj); } float _w = GetWidth() - jingW; float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w); float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1); if (jingNameKey == "lj") { if (Jobj.GetComponent <J_SPBase>()) { __x = tl.position.x; __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f); } else { jingW = GlobalTools.GetJingW(Jobj); //Jobj.GetComponent<SpriteRenderer>().bounds.; jingH = GlobalTools.GetJingH(Jobj); __x = tl.position.x + jingW * 0.5f; __y = tl.position.y + jingH * 0.5f + GlobalTools.GetRandomDistanceNums(0.5f); } if (GlobalTools.GetRandomNum() > 40) { //限制 出的几率 免得 太多 Jobj.transform.position = new Vector3(__x, __y, 0); return; } int nums = (int)(_w / jingW) - 1; if (nums > 1) { int maxNums = 1 + GlobalTools.GetRandomNum(nums); string JingName = GlobalTools.GetNewStrQuDiaoClone(Jobj.name); string jingNameTou = JingName.Split('-')[0]; for (int i = 0; i < maxNums; i++) { string LJJingName = jingNameTou + "-" + (i + 1); GameObject ljJing; ljJing = GlobalTools.GetGameObjectByName(LJJingName); if (ljJing == null) { LJJingName = jingNameTou + "-1"; ljJing = GlobalTools.GetGameObjectByName(LJJingName); } //print("LJJingName " + LJJingName); float _ljx = tl.position.x + (i + 1) * jingW; if (!Jobj.GetComponent <J_SPBase>()) { _ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f; } ljJing.transform.position = new Vector3(_ljx, __y, 0); ljJing.transform.parent = maps.transform; } } } else if (jingNameKey == "deng") { //灯 放路中间 左右偏移一点的位置 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = tl.position.x + GetWidth() * 0.5f + _pianyi; } else if (jingNameKey == "guangHua") { //发光的花 float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(0.2f) : -GlobalTools.GetRandomDistanceNums(0.2f); //__x = tl.position.x + GetWidth() * 0.5f + _pianyi; if (GlobalTools.GetRandomNum() > 50) { //左边 __x = pos1.x + (this.thePos1.position.x - pos1.x) * 0.5f + _pianyi; } else { __x = thePos2.position.x + (pos2.x - thePos2.position.x) * 0.5f + _pianyi; } __y = tl.position.y + 2.6f; } Jobj.transform.position = new Vector3(__x, __y, 0); //水下 是否有 if (GlobalTools.GetRandomNum() > 0) { float _pianyi = 0; GameObject Jobj2; if (ShuiMianDBNums == 100) { int zswNums = 5; float _distances = Mathf.Abs(thePos2.position.x - thePos1.position.x) / (zswNums + 1); for (int i = 0; i < zswNums; i++) { Jobj2 = GetJObjByListName(zswArrName); _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = pos1.x + (i + 1) * _distances + _pianyi; __y = tl.position.y - 1.6f - GlobalTools.GetRandomDistanceNums(1f); Jobj2.transform.position = new Vector2(__x, __y); } } else { Jobj2 = GetJObjByListName(zswArrName); _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f); __x = pos1.x + (pos2.x - pos1.x) * 0.5f + _pianyi; __y = tl.position.y - 1.6f - GlobalTools.GetRandomDistanceNums(0.4f); Jobj2.transform.position = new Vector3(__x, __y, 0); } } }