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); } }
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); } }
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); } }
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); }
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); }
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); }