// 产生数字 wz_ss_=产生位置 sz_=数字 void copy_sz_(Vector2 wz_ss_, int sz_) { bool cs_ok_ = false; if (cs_ok_) { // msz_=数字 复制组件 Transform szs_ = Instantiate(msz_, new Vector3(wz_ss_.x, 0.2f, wz_ss_.y), Quaternion.Euler(0, 0, 0)) as Transform; // 将新组件物体层级修改到原来组件层 szs_.parent = msz_.parent; // 获取附带在组件的脚本 _ge ge_ = szs_.GetComponent <_ge>(); // 将类 tag 改成 jjgam 方便以后群体删除 szs_.tag = "jjgam"; // 设置数值 ge_.xfg_ = sz_; } }
void Update() { // A*算法寻路 if (Input.GetKeyUp(KeyCode.Space)) { // 开始点、结束点 必须在地图上 Vector3 v3_begin = _begin.position, v3_end = _end.position; if (v3_begin.x >= -10 && v3_begin.x <= 10 && v3_begin.z >= -10 && v3_begin.z <= 10 && v3_end.x >= -10 && v3_end.x <= 10 && v3_end.z >= -10 && v3_end.z <= 10) { // 调用公式,返回路程数组 Vector2[] ok_v2_ = _Asuan_gs_(wt_yn_, new Vector2(v3_begin.x, v3_begin.z), new Vector2(v3_end.x, v3_end.z)); int bcc_ = ok_v2_.Length; if (bcc_ > 0) { Debug.Log("步长:" + bcc_); if ((int)ok_v2_[0].x == (int)v3_end.x && (int)ok_v2_[0].y == (int)v3_end.z) { for (int vxy_ = 0; vxy_ < bcc_; vxy_++) { // Debug.Log("vxy_:" + vxy_ + " x:" + ok_v2_[vxy_].x + " y:" + ok_v2_[vxy_].y); // msz_=数字 复制组件 Transform szs_ = Instantiate(lsz_, new Vector3(ok_v2_[vxy_].x, 0.2f, ok_v2_[vxy_].y), Quaternion.Euler(0, 0, 0)) as Transform; // 将新组件物体层级修改到原来组件层 szs_.parent = msz_.parent; // 将类 tag 改成 jjgam 方便以后群体删除 szs_.tag = "jjgam"; } Debug.Log("A*算法完成 QQ:23331122 小健 2014-04-06"); } else { Debug.Log("无解_A_ QQ:23331122 小健 2014-04-06"); } } else { Debug.Log("无解_B_ QQ:23331122 小健 2014-04-06"); } } else { Debug.Log("无解 _ 开始点、结束点 必须在地图上 QQ:23331122 小健 2014-04-06"); } } // 产生随机物体 if (Input.GetKeyUp(KeyCode.A)) { Initialize_we_(); // 初始化物体位置 //地图大小 20*20 中心点 0,0 从 -10,-10 到 10,10 for (int zc_ = 0; zc_ < wtsl_; zc_++) { bool gok_ = true; while (gok_) { sjx_ = suiji(0, 20); sjy_ = suiji(0, 20); if (wt_yn_[sjx_, sjy_] == false) { wt_yn_[sjx_, sjy_] = true; gok_ = false; break; // 跳出 } } // 复制组件 xso_[zc_] = Instantiate(copy_wt_, new Vector3(sjx_ - 10, 0.2f, sjy_ - 10), Quaternion.Euler(0, 0, 0)) as Transform; // 将新组件物体层级修改到原来组件层 xso_[zc_].parent = copy_wt_.parent; // 获取附带在组件的脚本 _ge ge_ = xso_[zc_].GetComponent <_ge>(); // 设置数值 ge_.xfg_ = suiji(0, 99); } } if (Input.GetMouseButtonUp(0)) // 左键按下 { Vector2 xxyy_ = PlayerMove(); // 获取世界坐标 // Debug.Log("xxyy_x_" + xxyy_.x + " xxyy_y_" + xxyy_.y); if ((int)xxyy_.x != -99 && wt_yn_[(int)xxyy_.x + 10, (int)xxyy_.y + 10] == false) { _begin.position = new Vector3(xxyy_.x, 0.2f, xxyy_.y); } } if (Input.GetMouseButtonUp(1)) // 右键按下 { Vector2 xxyy_ = PlayerMove(); // 获取世界坐标 // Debug.Log("xxyy_x_" + xxyy_.x + " xxyy_y_" + xxyy_.y); if ((int)xxyy_.x != -99 && wt_yn_[(int)xxyy_.x + 10, (int)xxyy_.y + 10] == false) { _end.position = new Vector3(xxyy_.x, 0.2f, xxyy_.y); } } }