示例#1
0
    private void CreatePortal(IEntityDataStruct entityDataStruct)
    {
        var    sMsgPropCreateEntity_SC_Channel = (SMsgPropCreateEntity_SC_Channel)entityDataStruct;
        string portalName   = "chuansongdian";
        var    portalPrefab = this.FindByName(portalName);
        var    pos          = Vector3.zero;

        TraceUtil.Log("传送门的生成UID" + sMsgPropCreateEntity_SC_Channel.SMsg_Header.uidEntity + " -- responseOn:" + GameManager.Instance.ResponseHandlerOn.ToString());

        sMsgPropCreateEntity_SC_Channel.ChannelValue.MAST_FIELD_VISIBLE_TYPE =
            EctypeConfigManager.Instance.PortalConfigList[sMsgPropCreateEntity_SC_Channel.BaseValue.OBJECT_FIELD_ENTRY_ID]._portalType;

        pos = pos.GetFromServer(sMsgPropCreateEntity_SC_Channel.ChannelX, sMsgPropCreateEntity_SC_Channel.ChannelY);

        var portal          = (GameObject)GameObject.Instantiate(portalPrefab, pos, Quaternion.identity);
        var portalBehaviour = portal.GetComponent <PortalBehaviour>();

        //加入箭头挂载脚本
        if (ArrowManager.Instance == null)
        {
            TraceUtil.Log(SystemModel.Common, TraceLevel.Error, "[ArrowManager.Instance == null]");
        }
        else
        {
            ArrowManager.Instance.AddChunnelArrow(portal);
        }

        portalBehaviour.PortalDataModel = sMsgPropCreateEntity_SC_Channel;

        bool Active = sMsgPropCreateEntity_SC_Channel.ChannelValue.MAST_FIELD_VISIBLE_STATE == 0 ? true : false;

        if (portal.activeSelf != Active)
        {
            portal.SetActive(Active);
        }



        EntityModel portalDataModel = new EntityModel();

        portalDataModel.GO               = portal;
        portalDataModel.Behaviour        = portalBehaviour;
        portalDataModel.EntityDataStruct = sMsgPropCreateEntity_SC_Channel;

        PortalManager.GetInstance();
        EntityController.Instance.RegisteEntity(entityDataStruct.SMsg_Header.uidEntity, portalDataModel);

        //if (!AddPortalObjToList(portalDataModel)) { TraceUtil.Log(SystemModel.Common,TraceLevel.Error,"传送门列表已满:PortalFactory.PortalFactoryObjcetList"); }
    }