Пример #1
0
        public Vector3 GetHeroModelPosition(PERSONMODELVIEWID viewId, int nHeroId)
        {
            HeroModelTransFormInfo heroInfo = GetHeroModelInfo(viewId, nHeroId);

            if (heroInfo == null)
            {
                return(new Vector3(50, -600, -400));
            }
            else
            {
                return(heroInfo.Position);
            }
        }
Пример #2
0
        public Vector3 GetHeroModelScale(PERSONMODELVIEWID viewId, int nHeroId)
        {
            HeroModelTransFormInfo heroInfo = GetHeroModelInfo(viewId, nHeroId);

            if (heroInfo == null)
            {
                return(new Vector3(600, 600, 600));
            }
            else
            {
                return(heroInfo.Scale);
            }
        }
Пример #3
0
        public Vector3 GetHeroModelRotation(PERSONMODELVIEWID viewId, int nHeroId)
        {
            HeroModelTransFormInfo heroInfo = GetHeroModelInfo(viewId, nHeroId);

            if (heroInfo == null)
            {
                return(new Vector3(0, 180, 0));
            }
            else
            {
                return(heroInfo.Rotation);
            }
        }
Пример #4
0
        public HeroModelTransFormInfo GetHeroModelInfo(PERSONMODELVIEWID viewId, int nHeroId)
        {
            if (allPersonModelTransFormInfoTable == null || !allPersonModelTransFormInfoTable.ContainsKey((int)viewId))
            {
                return(null);
            }

            ViewHeroModelInfo viewInfo = allPersonModelTransFormInfoTable[(int)viewId] as ViewHeroModelInfo;

            if (viewInfo == null || !viewInfo.dicAllViewHeroModel.ContainsKey(nHeroId))
            {
                return(null);
            }

            HeroModelTransFormInfo heroInfo = viewInfo.dicAllViewHeroModel[nHeroId];

            return(heroInfo);
        }
Пример #5
0
    public static bool SetChangeHeroSkinEffect(int nSkinId, ref SceneEffectParamBase lastSkinEffectParam, ref int nLastSkinId, Transform parentTrans, PERSONMODELVIEWID viewType = PERSONMODELVIEWID.PERSONMODELVIEWID_GAMEWAITINGROOM, Action <object> resLoadFinished = null, object userObj = null)
    {
        if (lastSkinEffectParam != null)
        {
            SceneEffectManager.Instance.DestroySceneEffect(ref lastSkinEffectParam);
            lastSkinEffectParam = null;
            nLastSkinId         = 0;
        }

        if (nSkinId < 0)
        {
            return(false);
        }

        int nSelectEffectID = GameLogicAPI.getSelectEffectID(nSkinId);
        //SceneEffectParamBase effectParam = new SceneEffectParamAsync(nSelectEffectID, parentTrans, _onResLoadFinished: resLoadFinished, _resLoadUserObject: userObj);
        SceneEffectParamBase effectParam = new SceneEffectParamAsync(nSelectEffectID, parentTrans, AssetLoadPriority.Priority_Exclusive, _onResLoadFinished: resLoadFinished, _resLoadUserObject: userObj);

        SceneEffectManager.Instance.CreateSceneEffect(ref effectParam);

        lastSkinEffectParam = effectParam;
        nLastSkinId         = nSkinId;

        return(true);
    }
Пример #6
0
    public static bool SetChangeHeroSkin(int nSkinId, int nHeroId, ref SkinInstance objLastSkin, ref int nLastSkinId, Transform transHeroFrame, HEROSKIN_RENDER_TYPE renderType = HEROSKIN_RENDER_TYPE.SCENE, PERSONMODELVIEWID viewType = PERSONMODELVIEWID.PERSONMODELVIEWID_GAMEWAITINGROOM)
    {
        SkinManager.DeleteSkin(ref objLastSkin);

        nLastSkinId = 0;
        objLastSkin = null;

        if (nSkinId < 0)
        {
            Debug.LogWarning("SetChangeHeroSkin---皮肤ID小于0");
            return(false);
        }


        SkinInstance si = SkinManager.GetSkin(nSkinId);

        if (si == null || !si.isValid)
        {
            Trace.LogWarning("切换皮肤失败,找不到对应的皮肤ID:" + nSkinId + ",请[--策划--]检查配置文件");
            return(false);
        }

        GameObject goc = si.SkinObj;

        // 动画
        if (viewType == PERSONMODELVIEWID.PERSONMODELVIEWID_SHOP)
        {
            si.MainAnimator.Play("loginr");
        }


        //effectNodeHero.PlayEffect(0, null, null);
        PersonModelTransFormInfo instance = PersonModelTransFormInfo.Instance;
        Vector3 pos      = instance.GetHeroModelPosition(viewType, nHeroId);
        Vector3 scale    = instance.GetHeroModelScale(viewType, nHeroId);
        Vector3 rotation = instance.GetHeroModelRotation(viewType, nHeroId);

        if (renderType == HEROSKIN_RENDER_TYPE.CAMERA)
        {
            GameUtil.SetLayer(LayerMask.NameToLayer(Config.LayerUI), goc, true);
            Vector2 size = new Vector2(1280f, 720f);

            UEffectMeshObject MeshObject = new UEffectMeshObject(si.SkinObj, pos, rotation, scale, _bIsSceneObj: true);
            UEffectMeshCamera MeshCamera = new UEffectMeshCamera();
            UEffectParamBase  param      = new UEffectMeshParam(size, new List <UEffectMeshObject>()
            {
                MeshObject
            }, MeshCamera, transHeroFrame);
            UEffectManager.Instance.CreateEffect(UEffectType.UET_EffectMesh, ref param);
        }
        else if (renderType == HEROSKIN_RENDER_TYPE.SCENE)
        {
            GameUtil.SetLayer(LayerMask.NameToLayer(Config.LayerHero), goc, true);
            goc.transform.parent           = transHeroFrame;
            goc.transform.localPosition    = pos;
            goc.transform.localEulerAngles = rotation;
            goc.transform.localScale       = scale;
        }
        nLastSkinId = nSkinId;
        objLastSkin = si;

        return(true);
    }