public NormalPointer CheckChoisePointer() { NormalPointer p = null; foreach (KeyValuePair <int, Dictionary <int, Transform> > item in normalmodelInSceneMap) { int group = item.Key; List <NormalPointer> temppointers = new List <NormalPointer>(); for (int i = 0; i < item.Value.Count; i++) { temppointers.Add(item.Value[i].GetComponent <NormalPointer>()); } for (int i = 0; i < temppointers.Count; i++) { int index = i; if (temppointers[i].IsMe(currentgroup, currentindex)) { NormalPointer tempp = temppointers[i]; p = tempp; return(p); } } } return(p); }
void CreateNormalOwnedPointer(NormalPointer p, Vector3 hitinfopoint, int _group, int _index, bool avtive = true) { p.CreateOwnedUserPointer(materialmap, hitinfopoint, userimport.transform, avtive, (_localpos, _g, _i) => { Vector3 localpos = _localpos; int group = _g; int index = _i; PointHelper.GetInstance().AddPoint(group, index, localpos); }); }
void HighLightPoint(string message) { if (lasthighlight) { lasthighlight.SetMaterialOrigin(); } NormalPointer p = PointHelper.GetInstance().CheckChoisePointer(); p.SetMaterialHighlight(); lasthighlight = p; }
private void RePlay(string message) { avoidvacancymap.Clear(); map.Clear(); currenteditvacancyindex = -1; foreach (KeyValuePair <int, Dictionary <int, Transform> > item in normalmodelInSceneMap) { foreach (KeyValuePair <int, Transform> it in item.Value) { NormalPointer p = it.Value.GetComponent <NormalPointer>(); p.RePlay(); } } }
/// <summary> /// 控制所有gizmopointer(标准,用户输入,指示器) /// </summary> /// <param name="active"></param> /// <param name="trans"></param> void ControlAllPointGizmo(bool active, List <Transform> trans) { List <Transform> tempgos = trans; for (int i = 0; i < tempgos.Count; i++) { GameObject go = tempgos[i].gameObject; //go.SetActive(active); NormalPointer np = go.GetComponent <NormalPointer>(); if (np) { np.ShowOrDisabelme(active); } } }
List <int> CheckAllMatchDone() { List <int> nomatchinglist = new List <int>(); foreach (KeyValuePair <int, Dictionary <int, Transform> > item in normalmodelInSceneMap) { foreach (KeyValuePair <int, Transform> it in item.Value) { NormalPointer np = it.Value.GetComponent <NormalPointer>(); if (!np.OwnedPointer()) { if (!nomatchinglist.Contains(item.Key)) { nomatchinglist.Add(item.Key); } break; } } } return(nomatchinglist); }
private void PointerSaveCancleCallback(string message) { Enums.MatchigPointGizmoControll gpc = (Enums.MatchigPointGizmoControll)Enum.Parse(typeof(Enums.MatchigPointGizmoControll), message); NormalPointer p = PointHelper.GetInstance().CheckChoisePointer(); if (p) { switch (gpc) { case Enums.MatchigPointGizmoControll.SaveMatchingpoint: p.SaveOwned(); break; case Enums.MatchigPointGizmoControll.Cancle: p.ReleaseOwned(); break; default: break; } } }
/// <summary> /// 从服务器过来的数据刷新 /// </summary> void LoadUserPointerAndPieceProtect() { Dictionary <int, Dictionary <int, Vector3> > userdata = PointHelper.GetInstance().userdataformweb;// Tool.ParseXML(Enums.PointMode.UserImport); if (userdata.Count <= 0) { MSGCenter.Execute(Enums.MainProcess.MainProcess_loadedUserPointDone.ToString()); return; } int group = -1; int index = -1; foreach (KeyValuePair <int, Dictionary <int, Vector3> > item in userdata) { group = item.Key; foreach (KeyValuePair <int, Vector3> it in item.Value) { index = it.Key; Vector3 localpos = it.Value; PointHelper.GetInstance().currentgroup = group; PointHelper.GetInstance().currentindex = index; NormalPointer p = PointHelper.GetInstance().CheckChoisePointer(); if (p) { CreateNormalOwnedPointer(p, localpos, group, index, false); //MSGCenter.Execute(Enums.MatchigPointGizmoControll.SaveMatchingpoint.ToString()); } } } PointHelper.GetInstance().DownloadSave(PlayerDataCenter.PieceProtectorURL); MSGCenter.Execute(Enums.MainProcess.MainProcess_loadedUserPointDone.ToString()); }
void AddMatchingPoint() { NormalPointer p = PointHelper.GetInstance().CheckChoisePointer(); if (p) { Vector3 localpos = userimport.transform.InverseTransformPoint(hitinfo.point); CreateNormalOwnedPointer(p, localpos, PointHelper.GetInstance().currentgroup, PointHelper.GetInstance().currentindex); lastchoisePointer = p; //如果自动下一步,才执行这里 if (autoadd && !PointHelper.GetInstance().IsCurrentGroupMax()) { //保存 MSGCenter.Execute(Enums.MatchigPointGizmoControll.SaveMatchingpoint.ToString()); //增加序号 PointHelper.GetInstance().AutoAddIndex(); } else if (autoadd && PointHelper.GetInstance().IsCurrentGroupMax()) { //保存 MSGCenter.Execute(Enums.MatchigPointGizmoControll.SaveMatchingpoint.ToString()); } } }