//绑定所有按钮事件 public void butclick() { if (mapcontroll.CURRENTBUT.Equals(Name)) { return; } else { InstallAll(); UnInstallAll(); mapcontroll.CURRENTBUT = Name; UImanager.GetInstance.CleanButtons(); ObjectPool.GetInstance.UnspawnAll(); for (int i = 0; i < selfModles.Count; i++) { RealObj real = selfModles[i].GetComponent <RealObj>(); GameObject bu = ObjectPool.GetInstance.Spawn("Button") as GameObject; RefreshSelfButton(bu); UImanager.GetInstance.buttons.Add(bu.GetComponent <Button>()); bu.transform.SetParent(UImanager.GetInstance.content); bu.transform.localScale = Vector3.one; bu.GetComponent <SelfButtonController>().Init(i + 1, selfModles[i].name, Buck); real.selfbutton = bu.GetComponent <Button>(); } mapcontroll.PlayMap(false, -1, "", null); //SetStep (0, InstallSpeed.fasterspeed, false); UImanager.GetInstance.SetDelegate(this, Name); } }
//设置自身执行步骤 public void SetStep(int targetstep, InstallSpeed _ins = InstallSpeed.slowspeed, bool issingle = false) { // Debug.Log (Name+"执行步骤::::"+targetstep ); Stack <RealObj> rstack = new Stack <RealObj>(); if (issingle) { targetstep = this.step + targetstep; if (targetstep > this.step) { realstack = PushToStack(targetstep - 1, this.step - 1); } else { realstack = PushToStack(targetstep, this.step); } } else { if (targetstep > this.step) { realstack = PushToStack(targetstep - 1, this.step - 1); } else { realstack = PushToStack(targetstep, this.step); } UImanager.GetInstance.SetOtherButtonDisable(false); } if (realstack.Count == 0) { return; } RealObj re = realstack.Pop(); //Debug.Log("现在步数"+step+">>>>>>共推出多少个元素???"+realstack.Count+"第一次退出:::::"+re.name); re.Excute(targetstep >= this.step, _ins, ModelMoveEnd); if (issingle) { re.Spark(); } }
//回调执行 private void ModelMoveEnd(int aspeacket, InstallSpeed ins) { step += aspeacket; // Debug.Log ("有没有执行步骤添加?"+ step); if (realstack.Count > 0) { RealObj re = realstack.Pop(); lastobj = re; re.Excute(aspeacket > 0, ins, ModelMoveEnd); } else { if (lastobj != null) { CameraBess.GetInstance.ChoiseCamera(false, new PathObjects(lastobj.transform.position, lastobj.transform.eulerAngles)); } UImanager.GetInstance.SetOtherButtonDisable(); mapcontroll.SetAllChildActive(true); LimitStep(); // NextModelSparking(aspeacket); } }
private void InitSelfModels(List <GameObject> lis) { // Debug.Log(Name +"lis.count||||||||"+lis.Count); for (int i = 0; i < lis.Count; i++) { if (lis[i].name.Equals("J6箱体壳体")) { Debug.Log("<<<<<<<<<<<<<<"); } if (!lis[i].GetComponent <RealObj>()) { lis[i].AddComponent <RealObj>(); } List <ShowMessage> mats = new List <ShowMessage>(); MeshRenderer[] meshs = lis[i].GetComponentsInChildren <MeshRenderer>(); for (int j = 0; j < meshs.Length; j++) { BoxCollider box = null; if (!meshs[j].gameObject.GetComponent <BoxCollider>()) { box = meshs[j].gameObject.AddComponent <BoxCollider>(); } box = meshs[j].gameObject.GetComponent <BoxCollider>(); if (!meshs[j].gameObject.GetComponent <ShowMessage>()) { meshs[j].gameObject.AddComponent <ShowMessage>(); } ShowMessage showMessage = meshs[j].gameObject.GetComponent <ShowMessage>(); showMessage.Init(my[lis[i].name]); mats.Add(showMessage); //矫正boxcollider尺寸 switch (meshs[j].name) { case "旋转座none001": showMessage.contect = showMessage.transform.parent.GetComponent <ShowMessage>(); showMessage.transform.parent.GetComponent <ShowMessage>().contect = showMessage; break; case "底座限位座-DC_Shell": box.size = new Vector3(box.size.x, box.size.y, 0.08f); break; case "J4电机-02-DC_Shell": box.size = new Vector3(0.15f, 0.2f, box.size.z); break; case "J3减速机压垫-DC_Shell": box.center = new Vector3(box.center.x, box.center.y, -0.03f); box.size = new Vector3(box.size.x, box.size.y, 0.11f); break; case "J2减速机压垫-DC_Shell": box.center = new Vector3(box.center.x, box.center.y, 0.06f); box.size = new Vector3(box.size.x, box.size.y, 0.11f); break; default: break; } } RealObj real = lis[i].GetComponent <RealObj>(); foreach (string item in my.Keys) { if (item.Equals(lis[i].name)) { real.Init(my[item], mats); } } } }