Example #1
0
    /// <summary>
    /// 显示角色模型
    /// </summary>
    public void ShowCharacter()
    {
        int tid = m_ServerListProxy.GetCurrentCharacterVO().Tid;

        if (m_CfgEternityProxy.GetPlayerByItemTId(tid) != null)
        {
            Model          m_Model       = m_CfgEternityProxy.GetItemModelByKey((uint)tid);
            Effect3DViewer m_npc3DViewer = m_CharacterModel.GetOrAddComponent <Effect3DViewer>();
            if (m_npc3DViewer != null)
            {
                m_npc3DViewer.ClearModel();
                m_npc3DViewer.LoadModel
                    (AssetAddressKey.PRELOADUI_UI3D_ESCCHARACTERPANEL,
                    m_Model.AssetName,
                    AssetAddressKey.FX_UI_CHARACTER_SCANNING,
                    GetNpcPos(m_Model),
                    GetNpcRotation(m_Model),
                    GetNpcScale(m_Model));
            }
        }
        else
        {
            Debug.Log("tid错误" + tid);
        }
    }
Example #2
0
    /// <summary>
    /// 加载特效Prefab
    /// </summary>
    private void LoadEffect()
    {
        uint   reloadID = m_ReloadID;
        string path     = m_EffectPath;

        EffectArray = new EffectController[ModelArray.Length];
        for (int i = 0; i < ModelArray.Length; i++)
        {
            GameObject model = ModelArray[i];
            if (model)
            {
                EffectController effectController = EffectManager.GetInstance().CreateEffect(m_EffectPath, EffectManager.GetEffectGroupNameInSpace(true),
                                                                                             (effect, usedata) =>
                {
                    Effect3DViewer viewer = (Effect3DViewer)usedata;
                    if (viewer != null)
                    {
                        if (reloadID != viewer.m_ReloadID)
                        {
                            return;
                        }
                        if (viewer.m_LightEnvirontment == null)
                        {
                            return;
                        }
                        if (viewer.ModelArray == null)
                        {
                            return;
                        }
                        if (!path.Equals(viewer.m_EffectPath))
                        {
                            return;
                        }

                        viewer.InstallModelAndEffect();
                        effect.PlayFX();    //加载完特效再显示
                    }
                }
                                                                                             , this);

                if (ModelArray != null)
                {
                    effectController.transform.SetParent(model.transform, false);
                    effectController.SetCreateForMainPlayer(true);
                    effectController.StopFX(true);                    //特效未加载完不显示
                }
                else
                {
                    effectController.StopFX(true);
                }

                EffectArray[i] = effectController;
            }
            else
            {
                EffectArray[i] = null;
            }
        }
    }
Example #3
0
    /// <summary>
    /// 部件卸载时
    /// </summary>
    protected override void OnViewPartUnload()
    {
        OwnerView.State.OnModelInfoChanged -= OnModelInfoChanged;

        if (m_3DViewer)
        {
            m_3DViewer.ClearModel();
            m_3DViewer = null;
        }
    }
Example #4
0
    /// <summary>
    /// 显示模型
    /// </summary>
    public void ShowModel()
    {
        CfgEternityProxy m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        Effect3DViewer   m_Model3DViewer    = m_Model.GetOrAddComponent <Effect3DViewer>();
        UiModel          m_UiModel          = m_CfgEternityProxy.GetUiModel("Esc_1002");

        if (m_Model3DViewer != null)
        {
            //m_Model3DViewer.AutoAdjustBestRotationAndDistance = true;
            m_Model3DViewer.ClearModel();
            m_Model3DViewer.LoadModel
                (m_UiModel.Light, m_UiModel.ModelName,
                m_CfgEternityProxy.GetUiModelPos(m_UiModel), m_CfgEternityProxy.GetUiModelRotation(m_UiModel), m_CfgEternityProxy.GetUiModelScale(m_UiModel));
        }
    }
    protected override void OnViewPartLoaded()
    {
        Animator shipAnimator = GetTransform().GetComponent <Animator>();

        shipAnimator.enabled = false;

        RawImage rawImage = FindComponent <RawImage>("Model");

        rawImage.raycastTarget = false;

        m_ShipViewer    = rawImage.GetComponent <Effect3DViewer>() ?? rawImage.gameObject.AddComponent <Effect3DViewer>();
        m_ShipTransform = rawImage.GetComponent <RectTransform>();

        UpdateModelViewer();
    }
Example #6
0
    /// <summary>
    /// 显示模型
    /// </summary>
    public void ShowModel()
    {
        CfgEternityProxy m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;
        ShipProxy        m_ShipProxy        = GameFacade.Instance.RetrieveProxy(ProxyName.ShipProxy) as ShipProxy;
        IShip            m_Ship             = m_ShipProxy.GetAppointWarShip();
        Effect3DViewer   m_Model3DViewer    = m_Model.GetOrAddComponent <Effect3DViewer>();
        Model            m_UiModel          = m_CfgEternityProxy.GetModel((int)m_Ship.GetBaseConfig().Model);

        if (m_Model3DViewer != null)
        {
            m_Model3DViewer.AutoAdjustBestRotationAndDistance = true;
            m_Model3DViewer.ClearModel();
            m_Model3DViewer.LoadModel
                (AssetAddressKey.PRELOADUI_UI3DSHIP, m_UiModel.AssetName);
        }
    }
    public override void OnShow(object msg)
    {
        base.OnShow(msg);

        if (m_TargetImage)
        {
            m_TargetViewer = m_TargetImage.gameObject.GetComponent <Effect3DViewer>();
            if (m_TargetViewer == null)
            {
                m_TargetViewer = m_TargetImage.gameObject.AddComponent <Effect3DViewer>();
            }
            m_TargetViewer.AutoAdjustBestRotationAndDistance = true;
            m_TargetViewer.TextureSize = 256;
        }
        m_NearestTargetCounter = 0;

        StartUpdate();
    }
Example #8
0
    /// <summary>
    /// 部件加载时
    /// </summary>
    protected override void OnViewPartLoaded()
    {
        RawImage rawImage = FindComponent <RawImage>("Content/Viewer");

        if (rawImage)
        {
            m_3DViewer = rawImage.GetComponent <Effect3DViewer>();
            if (!m_3DViewer)
            {
                m_3DViewer = rawImage.gameObject.AddComponent <Effect3DViewer>();
                m_3DViewer.AutoAdjustBestRotationAndDistance = false;
            }
        }

        OwnerView.State.OnModelInfoChanged -= OnModelInfoChanged;
        OwnerView.State.OnModelInfoChanged += OnModelInfoChanged;

        OnModelInfoChanged();
    }
    public override void OnHide(object msg)
    {
        m_TargetViewer = null;

        base.OnHide(msg);
    }