Пример #1
0
 public void SetContainerStatus(MsgEntryLocal me)
 {
     //cv_originContainer.TransformToTarget(me.pr);
     if (me.show_id.Equals(ContainerView.ContainerType.OriginContainer.ToString()))
     {
         cv_originContainer.TransformToTarget(me.pr);
         //Debug.Log("origin set to:"+me.pr[7]);
     }
     else
     {
         cv_selected.TransformToTarget(me.pr);
         //Debug.Log("selected moved");
     }
 }
Пример #2
0
    public void SetPlanetStatus(MsgEntryLocal me)
    {
        float[] data = me.pr;
        //Debug.Log("星球序号为:" + data[0] + ":" + (PlanetObject.PlanetType)(int)data[0]);
        //Debug.Log("切换动画开始时间为:" + data[1]);

        PlanetObject po = null;

        if (((int)data[0]) != (int)PlanetObject.PlanetType.NOTSELECTED)
        {
            //有星球被选择
            po = planetMap[Enum.GetName(typeof(PlanetObject.PlanetType), (PlanetObject.PlanetType)data[0])];
        }

        RefreshPlanetStatus(po, data[1]);
    }
Пример #3
0
    public void DealMsgEntries(MsgEntryLocal[] messages, bool is_full)
    {
        if (is_full && connectToServer)
        {
            // 全场景同步!
            Debug.Log("全场景同步!roomInitTime:" + cm.roomInitTime);
            long timeCut           = new DateTime(1970, 1, 1).Ticks;
            long timeNow           = DateTime.UtcNow.Ticks;
            long universeTimeTicks = timeNow - timeCut - cm.roomInitTime;

            timeDelay = cm.GetSyncDelay() * 1.0f / 10000000;
            //Debug.Log("time delay:" + timeDelay);
            this.universeView.universeTime = timeDelay + universeTimeTicks * 1.0f / 10000000;
        }

        if (messages != null)
        {
            for (int i = 0; i < messages.Length; i++)
            {
                MsgEntryLocal msgEntry = messages[i];
                switch (msgEntry.obj_type)
                {
                case PlanetObject.OBJECT_TYPE:
                {
                    //如果是行星的情况
                    //Debug.Log("get planet");
                    //PlanetView pv = msg
                    SetPlanetStatus(msgEntry);
                    break;
                }

                case ContainerObject.OBJECT_TYPE:
                {
                    //如果是行星容器的情况
                    //Debug.Log("get container");
                    SetContainerStatus(msgEntry);
                    break;
                }
                }
            }
        }
    }
Пример #4
0
    protected void DealMessage(SyncProto proto)
    {
        Google.Protobuf.Collections.RepeatedField <MsgEntry> messages = proto.SyncMsg.MsgEntry;

        if (messages == null)
        {
            return;
        }

        MsgEntryLocal[] messages_local = new MsgEntryLocal[messages.Count];
        for (int i = 0; i < messages.Count; i++)
        {
            float[] Pr_message = new float[messages[i].Pr.Count];
            for (int prI = 0; prI < messages[i].Pr.Count; prI++)
            {
                Pr_message[prI] = messages[i].Pr[prI];
            }

            messages_local[i] = new MsgEntryLocal(messages[i].ShowId, messages[i].Info.ObjType, Pr_message);
        }
        DealMsgEntries(messages_local, proto.SyncMsg.IsFull);
    }