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);
     });
 }
Beispiel #3
0
    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();
            }
        }
    }
Beispiel #5
0
    /// <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());
            }
        }
    }